简介: 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