Sqoop的介绍、安装以及使用
sqoop下载地址:https://archive.apache.org/dist/sqoop/1.4.6/
一、Sqoop简介
sqoop 是 apache 旗下一款“Hadoop 和关系数据库服务器之间传送数据”的工具。
核心的功能有两个:导入、导出
导入数据:MySQL,Oracle 导入数据到 Hadoop 的 HDFS、HIVE、HBASE 等数据存储系统
导出数据:从 Hadoop 的文件系统中导出数据到关系数据库 mysql 等
sqoop本质是迁移数据, 迁移的方式:就是把sqoop的迁移命令转换成MR程序
hive本质就是执行计算,依赖于HDFS存储数据,把SQL转换成MR程序
二、Sqoop的安装
(1) 解压到指定目录:
tar -zxvf /bigData/software/sqoop-1.4.6.bin__hadoop-0.23 -C /bigData/install/
(2) 修改配置文件
cd /bigData/install/sqoop-1.4.6.bin__hadoop-0.23/conf/
将sqoop-env-template.sh文件复制一份命名为sqoop-env.sh
修改sqoop-env.sh文件,将相应路径地址都加上:
(3)配置环境变量
添加export SQOOP_HOME=/bigData/install/sqoop-1.4.6.bin__hadoop-0.23,在PATH路径下添加$SQOOP_HOME/bin路径。
(4)将mysql对应的jdbc上传到sqoop文件夹的lib目录下。
(5) 验证配置
sqoop list-databases --connect jdbc:mysql://node1:3306/ --username root --password Gqx123456. (这个是自己数据库的密码)
三、使用
1、将数据库中的数据导入到HDFS文件系统中
mysql的执行语句如下:
CREATE database test; use test; CREATE TABLE student( id int, name varchar(10), PRIMARY KEY(id )); insert into student values(1,'gqx'); insert into student values(2,'LiSi'); insert into student values(3,'WangWu');
查询的结果集如下:
输入命令:
sqoop import --connect jdbc:mysql://node1:3306/test --username root --password Gqx123456. --table student -m 1 --target-dir /usr/local/hadoop/result
可以看到运行结果中并没有报错:
同时,也可以看到hadoop的hdfs文件系统中会多出对应的文件信息:
2、将HDFS文件系统中的数据导入到mysql中
在hdfs中上传要处理的数据文件
执行如下命令:
sqoop export --connect jdbc:mysql://node1:3306/test --username root --password Gqx123456. --table student --export-dir /data.txt -m 1 --verbose --fields-terminated-by ','
同样未看到错误提示:
查看mysql数据库中的学生表信息,发现数据成功插入。