Sqoop:强制Sqoop创建目标目录

时间:2018-12-07 19:21:30

标签: sqoop

仍然是整个Hadoop系统的新手。顾名思义,有没有一种方法可以使Sqoop在导入期间创建目标目录?还是在将目标目录发送到HDFS之前始终必须存在目标目录。

谢谢。

1 个答案:

答案 0 :(得分:0)

如果目标目录不存在,则sqoop根据sqoop命令中指定的路径创建目标目录

--target-dir <dir>

如果您已经有一个目录,并且尝试运行sqoop命令,它将失败并避免必须指定以下选项,并且如果存在该目录,它将删除该目录。

--delete-target-dir

cloudera vm框中的示例,该示例具有带有示例数据的默认mysql

sqoop import \
--connect jdbc:mysql://localhost:3306/retail_db \
--username root \
--password cloudera \
--target-dir /user/cloudera/sqoop_import/orders \
--delete-target-dir \
--num-mappers 2 \
 --query "select * from orders " \
--split-by order_id

或者,您也可以指定父目录,并使用表名创建所有表文件夹。在这种情况下,--target-dir与--warehouse-dir

不兼容
sqoop import \
--connect jdbc:mysql://localhost:3306/retail_db \
--username root \
--password cloudera \
--table orders \
--warehouse-dir /user/cloudera/sqoop_import/