sqoop:强制sqoop生成目标目录

uqdfh47h  于 2021-06-03  发布在  Sqoop
关注(0)|答案(1)|浏览(387)

还是整个hadoop系统的新手。正如标题所暗示的,有没有方法让sqoop在导入期间创建目标目录?或者目标目录在发送到hdfs之前必须存在。
谢谢您。

enxuqcxy

enxuqcxy1#

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

  1. --target-dir <dir>

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

  1. --delete-target-dir

cloudera vm box的一个示例,它具有带有示例数据的默认mysql

  1. sqoop import \
  2. --connect jdbc:mysql://localhost:3306/retail_db \
  3. --username root \
  4. --password cloudera \
  5. --target-dir /user/cloudera/sqoop_import/orders \
  6. --delete-target-dir \
  7. --num-mappers 2 \
  8. --query "select * from orders " \
  9. --split-by order_id

或者,也可以指定父目录,所有表文件夹都将使用表名创建。在本例中--target dir与--warehouse dir不兼容

  1. sqoop import \
  2. --connect jdbc:mysql://localhost:3306/retail_db \
  3. --username root \
  4. --password cloudera \
  5. --table orders \
  6. --warehouse-dir /user/cloudera/sqoop_import/
展开查看全部

相关问题