Sqoop常用参数及其使用

本文详细介绍了Sqoop从MySQL到HDFS、Hive的导入过程,以及从HDFS、Hive导出到MySQL的操作,强调了各种参数的使用,包括--query、--split-by、--columns、--where等。还特别讨论了增量导入的配置,如--incremental、--check-column、--merge-key等,并提供了示例。此外,提到了从HDFS和Hive导出时的参数设置。

Sqoop的使用

1、 上传并解压

2、 修改sqoop/conf/sqoop=env.sh

分别输入hadoop,hadoop,hive,zookeeperconf的目录

3、 导入jdbc的jar包

4、 进入到sqoop/bin目录下

5、 从mysql到导入

(1)   mysql上传到hdfs


(2)   导入到hive中


注:如需指定hive的table名,需要添加--hive-table t_1

 

(3)   其他参数:

指定查询:

1)query

--query ‘selectid,name from t_1 where id<10 and $CONDITIONS’

--split-by‘id’   //以插入的哪一列作为主键

--target-dir‘/aa/bb’

2)columns

--columns ‘id,name’

3)where

--where ‘id>10’

         类型匹配:(把原来的类型转换成指定的类型)

--map-column-hive columnName=valueType

         空值转换:(把数据库中的”null”字符串替换成null)

--null-string'\\N' 

--null-non-string '\\N' 

         分隔符:

                   --lines-terminated-by‘\n’

                   --fields-terminated-by‘\t’

         封闭字符:(用于封闭每个字段的内容)

                   --enclosed-by”               //所有封闭

--optionally-enclosed-by ”        //选择性封闭

         增量导入:

                  

--check-column 
用来指定一些列,这些列在增量导入时用来检查这些数据是否作为增量数据进行导入,和关系型数据库中的自增字段及时间戳类似。
注意:这些被指定的列的类型不能使任意字符类型,如char、varchar等类型都是不可以的,同时–check-column可以去指定多个列。

--incremental 
用来指定增量导入的模式,两种模式分别为Append和Lastmodified

--last-value 

指定上一次导入中检查列指定字段最大值

--merge-key id

把id相同的数据汇总成一条数据,主要用于Lastmodified模式



例如:sqoop export --connect jdbc:mysql://192.168.80.11:3306/test \

--username root -P \

--export-dir ‘aa/bb’ \

--check-column ‘id’ \

--incremental append \

--last-value ‘5’

或者:

sqoop export --connectjdbc:mysql://192.168.80.11:3306/test \

--username root -P \

--export-dir ‘aa/bb’ \

--check-column ‘modifieddate’ \

--incremental lastmodified\

--last-value ‘2018-8-11 12:54’

但是这样会把所有时间大于2018-8-11 12:54的导入,包括修改的数据,所以就需要加入--merge-key id 这个选项,这样就变成了把id相同的数据汇总成一条数据。如下:

sqoop export --connectjdbc:mysql://192.168.80.11:3306/test \

--username root -P \

--export-dir ‘aa/bb’ \

--check-column ‘modifieddate’ \

--incremental lastmodified\

--last-value ‘2018-8-11 12:54’

--merge-key id


很详细的增量导入讲解https://blog.youkuaiyun.com/qq_26937525/article/details/53670213

 

6、 从hdfs(hive)导出

(1)   从hdfs导出:

sqoop export --connect jdbc:mysql://192.168.80.11:3306/test \

--username root -P \

--export-dir ‘aa/bb’ \

--input-fields-terminated-by ‘,’

(2)   从hive导出:

sqoop export --connect jdbc:mysql://192.168.80.11:3306/test \

--username root -P \

--export-dir ‘aa/bb’ \            //hive源文件存在hdfs的路径

--input-fields-terminated-by ‘\001’

--input-lines-terminated-by ‘\n’

(3)   其他参数:

--update-mode allowinsert              //可以插入,可以更新

--update-key ‘id’                          //按照哪一列进行更新或者插入

 


有更详细的介绍https://blog.youkuaiyun.com/zleven/article/details/53781111

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值