sqoop工具使用大全

=====================================================

一、将数据从关系型数据库导入Hadoop中

=====================================================

1、Sqoop import使用

sqoop import \
--connect jdbc:mysql://mysql.example.com/sqoop \
--username sqoop \
--password sqoop \
--table cities


 --connnect: 指定JDBC URL
 --username/password:mysql数据库的用户名
 --table:要读取的数据库表

2、Sqoop import使用—指定输出HDFS目录

sqoop import \ 
 --connect jdbc:mysql://mysql.example.com/sqoop \ 
 --username sqoop \ 
 --password sqoop \ 
 --table cities \ 
 --target-dir /etl/input/cities
sqoop import \ 
 --connect jdbc:mysql://mysql.example.com/sqoop \ 
 --username sqoop \ 
 --password sqoop \ 
 --table cities \ 
 --warehouse-dir /etl/input/

3、Sqoop import使用—导出部分数据

sqoop import \
--connect jdbc:mysql://mysql.example.com/sqoop \
--username sqoop \
--password sqoop \
--table cities \
--where "country = 'USA'"

4、Sqoop import使用—保护数据库密码

sqoop import \ 

--connect jdbc:mysql://mysql.example.com/sqoop \ 

--username sqoop \ 

--table cities \

 -P
sqoop import \
--connect jdbc:mysql://mysql.example.com/sqoop \
--username sqoop \
--table cities \
--password-file my-sqoop-password

5、Sqoop import使用—更改导出的文件

sqoop import \ 
--connect jdbc:mysql://mysql.example.com/sqoop \ 
--username sqoop \ 
--password sqoop \ 
--table cities \ 
--as-sequencefile
sqoop import \ 
--connect jdbc:mysql://mysql.example.com/sqoop \ 
--username sqoop \ 
--password sqoop \ 
--table cities \ 
--as-avrodatafile

6、Sqoop import使用—控制并发度、处理NULL

sqoop import \ 
--connect jdbc:mysql://mysql.example.com/sqoop \ 
--username sqoop \ 
--password sqoop \ 
--table cities \ 
--num-mappers 10
sqoop import \ 
--connect jdbc:mysql://mysql.example.com/sqoop \ 
--username sqoop \ 
--password sqoop \ 
--table cities \ 
--null-string '\\N' \ 
--null-non-string '\\N'

7、Sqoop import使用—增量数据导入

sqoop import \ 
--connect jdbc:mysql://mysql.example.com/sqoop \ 
--username sqoop \ 
--password sqoop \ 
--table visits \ 
--incremental append \ 
--check-column id \ 
--last-value 1

==============================================================

二、将数据从Hadoop导入关系型数据库导中

==============================================================

1、Sqoop export使用

sqoop export \ --connect jdbc:mysql://mysql.example.com/sqoop \ --username sqoop \ --password sqoop \ --table cities \ --export-dir cities
--connnect: 指定JDBC URL
--username/password:mysql数据库的用户名
--table:要导入的数据库表
--export-dir:数据在HDFS上存放目录

2、Sqoop export使用—批量导入

sqoop export \
-Dsqoop.export.records.per.statement=10 \
--connect jdbc:mysql://mysql.example.com/sqoop \
--username sqoop \
--password sqoop \
--table cities \
--export-dir cities \
--batch

3、Sqoop export使用—保证原子性

sqoop export \ 
--connect jdbc:mysql://mysql.example.com/sqoop \ 
--username sqoop \ 
--password sqoop \ 
--table cities \ 
--staging-table staging_cities

4、Sqoop export使用—更新已有数据

sqoop export \
--connect jdbc:mysql://mysql.example.com/sqoop \
--username sqoop \
--password sqoop \
--table cities \
--update-key id


sqoop export \ 
--connect jdbc:mysql://mysql.example.com/sqoop \ 
--username sqoop \ 
--password sqoop \ 
--table cities \ 
--update-key id \ 
--update-mode allowinsert

5、Sqoop export使用—仅插入某几列数据

sqoop export \ 
--connect jdbc:mysql://mysql.example.com/sqoop \ 
--username sqoop \ 
--password sqoop \ 
--table cities \ 
--columns country,city

6、Sqoop export使用—处理null数据

sqoop export \ 
--connect jdbc:mysql://mysql.example.com/sqoop \ 
--username sqoop \ 
--password sqoop \ 
--table cities \ 
--input-null-string '\\N' \ 
--input-null-non-string '\\N'

=============================================================

三、Sqoop 与其他系统结合

=============================================================

Sqoop可以与Oozie、Hive、Hbase等系统结合;
用户需要在sqoop-env.sh中增加HBASE_HOME、HIVE_HOME等环境变量

1、Sqoop 与Hive结合

sqoop import \ 
--connect jdbc:mysql://mysql.example.com/sqoop \ 
--username sqoop \ 
--password sqoop \ 
--table cities \ 
--hive-import

2、Sqoop 与HBase结合

sqoop import \ 
--connect jdbc:mysql://mysql.example.com/sqoop \ 
--username sqoop \ 
--password sqoop \ 
--table cities \ 
--hbase-table cities \ 
--column-family world

=============================================================

四、Sqoop2使用(Shell命令行)

=============================================================

步骤1:启动Sqoop Client  

启动Client ./bin/sqoop.sh client
连接Sqoop Server set server --host your.host.com --port 12000 --webapp sqoop
验证是否连接成功 show version --all

步骤2:创建Connection Object  

sqoop:000> show connector --all
sqoop:000> create connection --cid 1

步骤3:创建Job Object  

sqoop:000> show connector --all

sqoop:000> create job --xid 1 --type import
步骤4:启动Job

sqoop:000> submission start --jid 1

步骤5:终止Job

sqoop:000> submission stop --jid 1


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值