当前位置:  开发笔记 > 后端 > 正文

sqoop使用例子

简介:sqoop是工具,一个可以把ORACLE、MYSQL中的数据导入到HDFS、HIVE、HBASE中(反过来也可以)的工具。下面是一些使用的例子。留下做个参考:#从Mysql中抽取数据到HDFS.问题:文件太多,全他妈是小文件;目标目录如果已经存在会报错sqoopimport--connectjdbc:my

简介: sqoop是工具,一个可以把ORACLE、MYSQL中的数据导入到HDFS、HIVE、HBASE中(反过来也可以)的工具。下面是一些使用的例子。留下做个参考:

#从Mysql中抽取数据到HDFS.问题:文件太多,全他妈是小文件;目标目录如果已经存在会报错
sqoop import --connect jdbc:mysql://10.10.244.137/test --username root --password test --table st --target-dir /user/test/sqoop
#向已经存在HDFS目录追加数据
sqoop import --connect jdbc:mysql://10.10.244.137/test --username root --password test --table st --append --target-dir /user/test/sqoop
#name 是string类型的,如果是null,导入的时候用zhixiang替换
sqoop import --connect jdbc:mysql://10.10.244.137/test --username root --password test --table st --null-string 'zhixiang' --append --target-dir /user/test/sqoop
#age是int类型,如果是null,导入的时候用-1替换
sqoop import --connect jdbc:mysql://10.10.244.137/test --username root --password test --table st --null-string 'zhixiang' --null-non-string -1 --append --target-dir /user/test/sqoop
#仅仅导入id,name两个字段
sqoop import --connect jdbc:mysql://10.10.244.137/test --username root --password test --table st --columns id,name  --null-string 'zhixiang' --append --target-dir /user/test/sqoop
#字段间以|分割
sqoop import --connect jdbc:mysql://10.10.244.137/test --username root --password test --table st --columns id,name --fields-terminated-by '|' --null-string 'zhixiang' --append --target-dir /user/test/sqoop
#只导入name不为null的id,name
sqoop import --connect jdbc:mysql://10.10.244.137/test --username root --password test --table st --columns id,name --where "name is not null" --fields-terminated-by '|' --null-string 'zhixiang' --append --target-dir /user/test/sqoop
#使用--query代替--table --cloumns --where
sqoop import --connect jdbc:mysql://10.10.244.137/test --username root --password test --query "select id,name from st where id > 10 and \$CONDITIONS" --split-by id  --fields-terminated-by '|' --null-string 'zhixiang' --append --target-dir /user/test/sqoop
#将所有数据放到一个文件中(东东那么少)
sqoop import --connect jdbc:mysql://10.10.244.137/test --username root --password test --query "select id,name from st where id > 10 and \$CONDITIONS" --split-by id  --fields-terminated-by '|' --null-string 'zhixiang' --append --target-dir /user/test/sqoop -m 1
#从Mysql中抽取数据到Hbase
sqoop import --connect jdbc:mysql://10.10.244.137/test --username root --password test --table mt --hbase-create-table --hbase-table mt --column-family cf --hbase-row-key year,month,day,sta_id
#查看Mysql有哪些数据库
sqoop list-databases --connect jdbc:mysql://10.10.244.137/ --username root --password test
#查看Mysql数据库mysql中有哪些表
sqoop list-tables --connect jdbc:mysql://10.10.244.137/mysql --username root --password test
#查看ORACLE数据库中有哪些数据库
sqoop list-databases --connect jdbc:oracle:thin:@10.10.244.136:1521:wilson --username system --password 123456
#将Oracle中system.ost表导入HDFS
sqoop import --connect jdbc:oracle:thin:@10.10.244.136:1521:wilson --username system --password 123456 --table SYSTEM.OST  --delete-target-dir --target-dir /user/test/sqoop
#只导入到一个文件中
sqoop import --connect jdbc:oracle:thin:@10.10.244.136:1521:wilson --username system --password 123456 --table SYSTEM.OST  --delete-target-dir --target-dir /user/test/sqoop -m 1
#将ORACLE中数据导入到Hbase
sqoop import --connect jdbc:oracle:thin:@10.10.244.136:1521:wilson --username system --password 123456 --table SYSTEM.OST  --hbase-create-table --hbase-table ost --column-family cf --hbase-row-key ID
#将oracle中数据导入到hbase,用多个字段做row-key
sqoop import --connect jdbc:oracle:thin:@10.10.244.136:1521:wilson --username system --password 123456 --table SYSTEM.OMT  --hbase-create-table --hbase-table omt  --column-family cf --hbase-row-key YEAR,MONTH,DAY,STA_ID -m 1


sqoop官方用户手册:

http://sqoop.apache.org/docs/1.4.5/SqoopUserGuide.html#_syntax

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有