Linux小白进阶之sqoop框架

**

Linux小白进阶之sqoop框架

1.Sqoop简介

在学习过zookeeper、hadoop、hive等框架后,我又开始接触sqoop框架,这一个框架的作用也是写的明明白白的,就是要实现hadoop(hive)与数据库之间的数据互通。废话不多说,直接进入正题:
这是sqoop的官网链接:http://sqoop.apache.org/
如果英语水平有限的话,建议不要去官网看天文一样的26个字母组合了
首先你需要下载一个sqoop的包,先行的sqoop有两个版本,分别是Sqoop1和Sqoop2,不过让人很无语的是,这两个版本互不兼容,本人用的是1.4的
这是下载链接:https://mirrors.tuna.tsinghua.edu.cn/apache/sqoop/

2.Sqoop的安装
首先将文件传至你的linux系统文件中,如果你的VMware安装了Tools,那么可以直接拖拽进虚拟机的磁盘中,如果没有,那还是老老实实的用FileZile上传到虚拟机的磁盘中

第一步解压:

tar -zxvf 压缩包存放路径  -C 要安装的目标路径

第二步修改配置文件:
进入到你的Sqoop目录下,找到conf目录,将其中的配置文件中的template去掉,你可以使用cp(复制命令),也可以使用mv等等,并用vim或vi编辑器在 sqoop-env.xml中配置上hadoop、hive、zookeeper等路径
这边推荐使用notepad++来修改配置文件
具体使用方法后面会讲到

第三步导入mysql连接包
将mysql连接驱动导入到lib文件下

第四步检查
在这里插入图片描述

bin/sqoop-help

如果出现帮助命令提示,恭喜安装完成
Linux小白进阶之sqoop框架_第1张图片

3.Sqoop导入导出
1 将mysql的文件导入到hdfs上,使用的关键词是import

bin/sqoop import \
--connect jdbc:mysql://主机名:3306/mysql_sqoop \  //默认端口号3306,连接数据库
--username root \
--password "123456" \
--table 表名 \  //表名
--num-mappers 1 \  //设置map个数
--target-dir /user/test \//指定hdfs上的存贮目录
--delete-target-dir \ 
--fields-terminated-by "\t" \  //以指定分隔符进行分割
--as-parquetfile //以指定格式存贮

支持的存贮格式有三种:parquetfile avrodatafile textfile
默认的存贮格式位文本(textfile)

2 将hdfs的文件数据导入到mysql中,使用关键词export

bin/sqoop export \
--connect jdbc:mysql://主机名:3306/数据库名\
--username root \
--password 123456 \
--table 表名\
--num-mappers 2 \
--input-fields-terminated-by "\t" \
--export-dir /user/test

前提是你建立相同数量、相同类型的字段的表

3 将mysql的表数据导入到hive表中

bin/sqoop import \
--connect jdbc:mysql://主机名:3306/mysql中数据库名\
--username root \
--password 123456 \
--table mysql中的表名\
--num-mappers 1 \
--fields-terminated-by "\t" \
--delete-target-dir \
--hive-database hive中的数据库名 \
--hive-import \
--hive-table hive中的表名

前提是你建立相同数量、相同类型的字段的表

4 将hive表数据导入到mysql中

bin/sqoop export \
--connect jdbc:mysql://主机名:3306/mysql中数据库名 \
--username root \
--password 123456 \
--table mysql中表名\
--num-mappers 1 \
--input-fields-terminated-by "\t" \
--export-dir hive中表在hdfs上的存贮路径

导入和导出都是相对于hadoop(hive)来说的
其实到这里就很容易发现一个问题,这样写代码的复用性不高,实际上应用上时候,推荐将代码封装在shell脚本文件中。

额外:notepad++连接虚拟机
打开软件后,在插件管理栏中搜索NppFTP,安装插件,将show NppFTP插件勾上,然后在设置中加入你的链接即可
Linux小白进阶之sqoop框架_第2张图片
共勉共勉

你可能感兴趣的:(Linux,Sqoop)