=====================================================
一、将数据从关系型数据库导入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