Sqoop安装部署和数据的导入导出案例详解

目录

一、概述

二、Sqoop的工作机制

三、Sqoop1与Sqoop2架构对比

四、Sqoop安装部署

五、Sqoop的数据导入

1. 列举出所有的数据库

2. 准备表数据

3. 导入数据库表数据到HDFS

4. 导入到HDFS指定目录

5. 导入到HDFS指定目录并指定字段之间的分隔符

6. 导入关系表到Hive

7. 导入关系表到Hive并自动创建Hive表

8. 将MySQL表数据导入到HBase当中去

9. 导入表数据子集

10. SQL语句查找导入HDFS

11. 增量导入

方式一:Append方式

方式二:LastModify方式

六、Sqoop的数据导出

1. 将数据从HDFS把文件导出到RDBMS数据库

2. 将数据从HBase导出到MySQL


一、概述

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安装很简单,解压好进行简单的修改就可以使用:

第一步:下载安装包

http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.6-cdh5.14.2.tar.gz

第二步:上传并解压

将我们下载好的安装包上传到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 email
1201 2356742 [email protected]
1202 1661663 [email protected]
1203 8887776
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值