Sqoop笔记二之命令使用

本文介绍了如何使用Sqoop将MySQL数据库中的数据导入到HDFS,包括`list-databases`命令查看数据库,`import`命令及其参数如`-m`, `--target-dir`, `--append`, `--where`, `--null-string`, `--null-non-string`等的用法,以及追加数据和过滤数据的策略。Sqoop默认会按记录生成多个文件,通过指定参数可以控制生成文件的数量和压缩格式。" 113086063,10543714,LINQ与SQL:ROW_NUMBER() OVER() 分区排序获取最新数据,"['数据库查询', 'LINQ', 'SQL语法', '数据操作', '数据筛选']
ist-databases命令查看所有的数据库

linux下执行:

sqooplist-databases --connect jdbc:mysql://192.168.172.1:3306/ -username root-password password

  -P 不显示密码执行中需要手动输入密码



import

         sqoop命令实际上都是转换为map任务。Import命令是将DB数据导入hdfs,我的数据库中有一个staff表内有若干数据。

staff表


执行sqoop命令

sqoop import --connectjdbc:mysql://192.168.172.1:3306/shb02 -username root -password password --tablestaff



Sqoop默认会生成4个文件,一条记录一个文件,大于4条记录则最多生成4个文件。


-m –target-dir

sqoop import --connectjdbc:mysql://192.168.172.1:3306/shb02 -username root -password password --tablestaff -m 1 --target-dir sqoop_import_staff

-m 表示只生成一个文件

--target-dir sqoop_import_staff 表示指定生成文件的名称,在hdfs中的路径为/user/root/sqoop_import_staff/part-m-00000

--target-dir  import_staff 在hdfs中的路径为/import_staff/part-m-00000

如下图显示3条记录都存在于一个文件中


-z –append --where

sqoop import --connectjdbc:mysql://192.168.172.1:3306/shb02 -username root -password password --tablestaff -m 1 --target-dir /import_staff --append --where "id=3" –z

-append 追加数据,如果指定路径下存在文件part-m-00000则会生成新的文件,如part-m-00001

-z 使用压缩格式导入,导入的文件使用-text查看

--where 根据字段过滤,先全部从数据库读出然后再根据条件过滤将符合要求的记录写入hdfs

 

--null-string  --null-non-string

sqoop import --connectjdbc:mysql://192.168.172.1:3306/shb02 -username root -password password --tablestaff -m 1 --target-dir /import_staff --append --null-string "#"--null-non-string "-1"

--null-string "#" 表示当vchar字段为null时以#代替

--null-non-string "-1"  表示当非vchar字段为null以-1代替

 

--where

sqoop import --connectjdbc:mysql://192.168.172.1:3306/shb02 -username root -password password -m 1--target-dir /import_staff --append --null-string "#"--null-non-string "-1" --query "select * from staff where id=3and \$CONDITIONS"

--where 后面跟sql语句,但是有无where都必须有\$CONDITIONS


注意:以上操作需要启动hadoop集群不能只启动hdfs否则会报错


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值