本帖最后由 bigdata 于 2014-9-25 16:42 编辑
本人最近弄了些sqoop导数据方法和命令,关于批量导入和一般导入,在本机器上linux环境运行正常; (一)Oracle导入到hdfs上
sqoop import --connect jdbcracle:thinip:端口号:databaseName --username userName --password password --query "sql语句 where \$CONDITIONS" --target-dir 目录名 --split-by 主键 -m 4
(二)Mysql导入到hbase上
(1)一般导入(新建hbase表)
sqoop import --connect jdbc:mysql://ip:端口号/databaseName?charset=utf-8 --username userName --password password --table tableName --hbase-table hbaseTableName --column-family 列族 --hbase-row-key HbaseRowKey --split-by 主键 -m 4 --hbase-create-table
(2)批量导入
sqoop import --connect jdbc:mysql://ip:端口号/databaseName?charset=utf-8 --username userName --password password --table tableName --hbase-table hbaseTableName --column-family 列族 --hbase-row-key hbaseRowKey --split-by 主键 -m 4 --incremental append --check-column 主键 --last-value 0 (三)Mysql导入到hdfs上 sqoop import --connect jdbc:mysql://ip:端口号/databaseName?charset=utf-8 --username userName --password password --table tableName --target-dir 目录名 --split-by 主键 -m 4 --incremental append --check-column 主键 --last-value 0
sqoop import --connect jdbc:mysql://ip:端口号/databaseName?charset=utf-8 --username userName --password password --query "SQL语句 where \$CONDITIONS " --target-dir 目录名 --split-by 主键 -m 4 --incremental append --check-column 主键 --last-value 0
总结一下: 1.列是可以选择的,根据需要来,但一定要用--columns参数。 2.oracle的用户名和表名必须大写,其他小写。 3.表可以预先创建也可以不建,使用--hbase-create-table来控制。 4.oracle表如果没主键,就不能使用并行的,必须显式-m 1 指定1个进程处理
|