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