Sqoop导入命令目录

时间:2017-04-15 22:24:21

标签: sqoop

环境:CDH 工具:Sqoop

版本:Sqoop 1.4.6-cdh5.8.0

目标:从MySQL数据库导入表

  1. 使用源数据子集创建配置单元表(例如order_status ='CLOSED')
  2. 使用不在('CLOSED')中的order_status重新导入同一目录中的更多数据
  3. 结果: 1.目标1完成使用命令

    sqoop import --connect jdbc:mysql://xxx:000/xxxx_db
                 --username=xxxx_dba --P
                 --warehouse-dir=/user/hive/warehouse/hex.db/
                 -m 1
                 --table orders --compression-codec=snappy
                 --hive-import --as-textfile --create-hive-table
                 --hive-table closed_orders
                 --hive-overwrite
                 --where "order_status='CLOSED'"
                 --compress
                 --columns "order_id, order_customer_id, order_status"
    
      
        

    使用数据文件和带有“CLOSED”订单的配置单元表创建目录/user/hive/warehouse/hex.db/closed_orders。

      
    1. 我正在尝试重新导入更多数据 - 这次order_status not in ('CLOSED') - 这次没有创建一个hive表,只是将order_status!='CLOSED'导入到不同的目录(open_orders)。
    2. 问题:它创建了一个目录/user/hive/warehouse/hex.db/open_orders/orders/. 2.a如何将文件导入目录/user/hive/warehouse/hex.db/open_orders?

      2.b我们如何导入order_status的子集日期!='CLOSED'即。打开订单到步骤1中创建的同一目录即。 /user/hive/warehouse/hex.db/closed_orders?

      用于第2步的命令:

      sqoop import --connect jdbc:mysql://xxxx:0000/retail_db
                   --username=xxxx_dba --P --warehouse-dir=/user/hive/warehouse/hex.db/ -m 1 
                   --table orders --compression-codec=snappy  --hive-import
                   --as-textfile --hive-table open_orders
                   --where "order_status not in ('CLOSED')"
                   --compress --columns "order_id, order_customer_id, order_status"
      

      2.3使用--append命令时出错我在尝试将打开的订单导入到步骤1 /user/hive/warehouse/hex.db/closed_orders

      创建的目录中
      17/04/15 14:24:22 INFO tool.BaseSqoopTool: Using Hive-specific delimiters for output. You can override
      17/04/15 14:24:22 INFO tool.BaseSqoopTool: delimiters with --fields-terminated-by, etc.
      Append mode for hive imports is not  yet supported. Please remove the parameter --append-mode
      

1 个答案:

答案 0 :(得分:0)

当您执行#2即重新导入数据时,请使用

--target-dir /user/hive/warehouse/hex.db/open_orders

而不是

warehouse-dir