搜索
查看: 3665|: 0

sqoop从关系型数据库导数据到hdfs和hbase上

[复制链接]

22

主题

4

回帖

157

积分

版主

积分
157
发表于 2014-9-25 16:40:17 | 显示全部楼层 |阅读模式
本帖最后由 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个进程处理

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

大数据中国微信

QQ   

版权所有: Discuz! © 2001-2013 大数据.

GMT+8, 2024-12-22 16:30 , Processed in 0.070529 second(s), 24 queries .

快速回复 返回顶部 返回列表