美文网首页
2019-03-13 Sqoop import data fro

2019-03-13 Sqoop import data fro

作者: 做一只乐观的小猴子 | 来源:发表于2019-03-13 18:55 被阅读0次

    Sqoop作为一个数据转移工具,必须要掌握其具体用法,下面将围绕Sqoop import to HDFS、增量导入、批脚本执行、Sqoop import to Hive、Sqoop import to Hbase、Sqoop export 几个方面进行介绍。

    1、Sqoop import to HDFS 

    说明:

    - -connect:指定JDBC的URL 其中database指的是(Mysql或者Oracle)中的数据库名

    - -table:指的是要读取数据库database中的表名

    - -username - -password:指的是Mysql数据库中的用户名和密码

    - -target-dir:指的是HDFS中导入表的存放目录(注意:是目录)

    - -fields-terminated-by :设定导入数据后每个字段的分隔符

    -m:并发的map数量

    - -null-string:导入的字段为空时,用指定的字符进行替换

    - -incremental append:增量导入

    - -check-column:指定增量导入时的参考列

    - -last-value:上一次导入的最后一个值

    shell命令:$ sqoop import --connect jdbc:mysql://hadoop80:3306/hive --table consumer --username root --password admin --target-dir /outdir/ --fields-terminated-by '\t' -m 1

    Hadoop中的结果

    上面的shell命令类似我们下面的shell操作:

    $hadoop jar copy.jar mysql://hadoop80:3306/hive/consumer /outdir/

    增量导入:

    $sqoop import --connect jdbc:mysql://hadoop80:3306/hive --table consumer --username root --password admin --target-dir /outdir/ --fields-terminated-by '\t' -m 1 --incremental append --check-column id --last-value 4

    输出结果多了一个part-m-00001.

    创建批脚本作业的shell命令:

    $sqoop job --create job001 -- import --connect jdbc:mysql://hadoop80:3306/hive --table consumer --username root --password admin --target-dir /outdir/ --fields-terminated-by '\t' -m 1 

    通过sqoop job –list可以查看生成的批脚本文件.

    $sqoop job –list

     job001

    sqoop job –exec 即可运行我们刚才生成的脚本文件.

    2. Sqoop rds import to hive (也可以先将数据库中的数据导入到HDFS的指定目录下,然后在Hive中创建一个外部表关联这个指定目录即可)

    - -hive-import 指的是将数据导入到hive数据仓库中

    - -create-hive-table 创建表,注意:如果表已经存在就不用写这个命令了,否则会报错

    - -hive-table 指定databasename.tablename (哪个数据库中的哪个表)

    $sqoop import --connect jdbc:mysql://hadoop80:3306/hive --table consumer --username root --password admin --hive-import --create-hive-table --hive-table d1.table1 --fields-terminated-by '\t' -m 1

    上面的shell命令类似我们下面的shell操作

    $ hadoop jar copy.jar mysql://hadoop80:3306/hive/consumer /hive/d1.table1

    3、Sqoop import to hbase 

    - -hbase-create-table:表示在hbase中建立表

    - -hbase-table A:指定在hbase中建立表A

    - -column-family infor:表示在表A中建立列族infor。

    - -hbase-row-key :表示表A的row-key是consumer表的id字段

    $ sqoop import --connect jdbc:mysql://hadoop80:3306/hive --table consumer --username root --password admin --hbase-create-table --hbase-table A --column-family infor --hbase-row-key id --fields-terminated-by '\t' -m 1

    结果:

    上面的shell命令类似我们下面的shell操作:

    hadoop jar copy.jar mysql://hadoop80:3306/hive/consumer /hbase/A

    作者:安静的技术控

    来源:CSDN

    原文:https://blog.csdn.net/a2011480169/article/details/51500156

    版权声明:本文为博主原创文章,转载请附上博文链接!

    相关文章

      网友评论

          本文标题:2019-03-13 Sqoop import data fro

          本文链接:https://www.haomeiwen.com/subject/oagtmqtx.html