目录
一、概述
Sqoop是apache旗下的一款 ”Hadoop和关系数据库之间传输数据”的工具。
导入数据:将MySQL,Oracle导入数据到Hadoop的HDFS、HIVE、HBASE等数据存储系统。
导出数据:从Hadoop的文件系统中导出数据到关系数据库。
二、Sqoop的工作机制
-
将导入和导出的命令翻译成mapreduce程序实现;
-
在翻译出的mapreduce中主要是对inputformat和outputformat进行定制。
三、Sqoop1与Sqoop2架构对比
sqoop在发展中的过程中演进出来了两种不同的架构.架构演变史
Sqoop1架构:
版本号为1.4.x为sqoop1
在架构上:sqoop1使用sqoop客户端直接提交的方式
访问方式:CLI控制台方式进行访问
安全性:命令或脚本中指定用户数据库名及密码
Sqoop2架构:
版本号为1.99x为sqoop2
在架构上:sqoop2引入了sqoop server,对connector实现了集中的管理
访问方式:REST API、 JAVA API、 WEB UI以及CLI控制台方式进行访问
sqoop1与sqoop2比较:
四、Sqoop安装部署
Sqoop安装很简单,解压好进行简单的修改就可以使用:
第一步:下载安装包
第二步:上传并解压
将我们下载好的安装包上传到node03服务器的/xsluo/soft路径下,然后进行解压
cd /xsluo/soft/
tar -zxf sqoop-1.4.6-cdh5.14.2.tar.gz -C /xsluo/install/
第三步:修改配置文件
更改sqoop的配置文件:
cd /xsluo/install/sqoop-1.4.6-cdh5.14.2/conf
mv sqoop-env-template.sh sqoop-env.sh
vim sqoop-env.sh
#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=/xsluo/install/hadoop-2.6.0-cdh5.14.2
#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/xsluo/install/hadoop-2.6.0-cdh5.14.2
#set the path to where bin/hbase is available
export HBASE_HOME=/xsluo/install/hbase-1.2.0-cdh5.14.2
#Set the path to where bin/hive is available
export HIVE_HOME=/xsluo/install/hive-1.1.0-cdh5.14.2
第四步:添加两个必要的jar包
sqoop需要两个额外依赖的jar包,将以下两个jar包添加到sqoop的lib目录下:
第五步:配置sqoop的环境变量,添加如下内容:
sudo vim /etc/profile
export SQOOP_HOME=/xsluo/install/sqoop-1.4.6-cdh5.14.2
export PATH=:$SQOOP_HOME/bin:$PATH
让环境变量生效:
source /xsluo/profile
五、Sqoop的数据导入
1. 列举出所有的数据库
-
命令行查看帮助
bin/sqoop list-databases --help
-
列出node03主机所有的数据库
bin/sqoop list-databases --connect jdbc:mysql://node03:3306/ --username root --password 123456
-
查看某一个数据库下面的所有数据表
bin/sqoop list-tables --connect jdbc:mysql://node03:3306/hive --username root --password 123456
2. 准备表数据
在mysql中有一个库userdb中三个表:emp, emp_add和emp_conn
-
表emp:
id | name | deg | salary | dept |
---|---|---|---|---|
1201 | gopal | manager | 50,000 | TP |
1202 | manisha | Proof reader | 50,000 | TP |
1203 | khalil | php dev | 30,000 | AC |
1204 | prasanth | php dev | 30,000 | AC |
1205 | kranthi | admin | 20,000 | TP |
-
表emp_add:
id | hno | street | city |
---|---|---|---|
1201 | 288A | vgiri | jublee |
1202 | 108I | aoc | sec-bad |
1203 | 144Z | pgutta | hyd |
1204 | 78B | old city | sec-bad |
1205 | 720X | hitec | sec-bad |
-
表emp_conn:
id | phno | |
---|---|---|
1201 | 2356742 | [email protected] |
1202 | 1661663 | [email protected] |
1203 | 8887776 |