环境:CDH 工具:Sqoop
目标:从MySQL数据库导入表
结果: 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。
order_status not in ('CLOSED')
- 这次没有创建一个hive表,只是将order_status!='CLOSED'导入到不同的目录(open_orders)。问题:它创建了一个目录/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
答案 0 :(得分:0)
当您执行#2即重新导入数据时,请使用
--target-dir /user/hive/warehouse/hex.db/open_orders
而不是
warehouse-dir