zoukankan      html  css  js  c++  java
  • sqoop工具介绍(hdfs与关系型数据库进行数据导入导出)

    数据表

    第一类:数据库中的数据导入到HDFS上

    #数据库驱动jar包用mysql-connector-java-5.1.31-bin,否则有可能报错!
      ./sqoop import --connect jdbc:mysql://localhost:3306/erpdb --username root --password 123456 --table tbl_dep --columns 'uuid, name, tele'
    :<<!
      输出:
        part-m-00000:
          1,总裁办,8888
          2,采购部,6668
          3,销售部,6888
        part-m-00001:
          4,运输中心,3434
          5,库管中心,5666
          6,人力资源,1234
        part-m-00002:
          7,财务部,9999
        part-m-00003:
          13,222,222
      !

    #指定输出路径、指定数据分隔符   ./sqoop import --connect jdbc:mysql://localhost:3306/erpdb --username root --password 123456 --table tbl_dep --target-dir '/sqoop/td' --fields-terminated-by ' ' :<<!   输出:     part-m-00000:       1 总裁办 8888       2 采购部 6668       3 销售部 6888     part-m-00001:       4 运输中心 3434       5 库管中心 5666       6 人力资源 1234     part-m-00002:       7 财务部 9999     part-m-00003:       13 222 222   !

    #指定Map数量 -m   ./sqoop import --connect jdbc:mysql://localhost:3306/erpdb --username root --password 123456 --table tbl_dep --target-dir '/sqoop/td1' --fields-terminated-by ' ' -m 2 :<<!   输出:     part-m-00000:       1 总裁办 8888       2 采购部 6668       3 销售部 6888       4 运输中心 3434       5 库管中心 5666       6 人力资源 1234     part-m-00001:       7 财务部 9999       13 222 222   !

    #增加where条件, 注意:条件必须用引号引起来   ./sqoop import --connect jdbc:mysql://localhost:3306/erpdb --username root --password 123456 --table tbl_dep --where 'uuid>3' --target-dir '/sqoop/td2' :<<!   输出:     part-m-00000:       4 运输中心 3434       5 库管中心 5666       6 人力资源 1234     part-m-00001:       7 财务部 9999     part-m-00002:     part-m-00003:       13 222 222   !

    #增加query语句(可使用 将语句换行)   ./sqoop import --connect jdbc:mysql://localhost:3306/erpdb --username root --password 123456 --query 'SELECT * FROM tbl_dep where uuid > 2 AND $CONDITIONS' --split-by tbl_dep.uuid --target-dir '/sqoop/td3' :<<!   输出:     part-m-00000:       3 销售部 6888       4 运输中心 3434       5 库管中心 5666     part-m-00001:       6 人力资源 1234       7 财务部 9999     part-m-00002:     part-m-00003:       13 222 222   注意:如果使用--query这个命令的时候,需要注意的是where后面的参数,AND $CONDITIONS这个参数必须加上,而且存在单引号与双引号的区别,如果--query后面使用的是双引号,那么需要在$CONDITIONS前加上即$CONDITIONS,如果设置map数量为1个时即-m 1,不用加上--split-by ${tablename.column},否则需要加上 !


    第二类:将HDFS上的数据导出到数据库中(不要忘记指定分隔符)

    ./sqoop export --connect jdbc:mysql://localhost:3306/erpdb --username root --password 123456 --export-dir '/sqoop/td3' --table aaa -m 1 --fields-terminated-by ','
  • 相关阅读:
    JavaScript面试库
    JS事件委托的原理和应用
    缓存ABC
    网络模型探究
    持续集成配置之Nuget
    angular应用容器化部署
    微服务随想
    .NET性能优化小技巧
    博客园博客小优化
    Emmet 简介
  • 原文地址:https://www.cnblogs.com/fengmingyue/p/6366827.html
Copyright © 2011-2022 走看看