【问题标题】:sqoop job warehouse dir already existssqoop 作业仓库目录已存在
【发布时间】:2018-05-26 08:57:26
【问题描述】:
Sqoop command arguments :
             job
             --meta-connect
             jdbc:hsqldb:hsql://IP:16000/sqoop
             --exec
             price_range
             --
             --warehouse-dir
             folder/transit/2018-04-16--11-48

日志:

Fetching child yarn jobs
tag id : oozie-e678030f4db3e129377fc1efdcc34e9a
2018-04-16 11:49:36,693 [main] INFO  org.apache.hadoop.yarn.client.RMProxy  - Connecting to ResourceManager at ip-172-31-4-192.ap-south-1.compute.internal/172.31.4.192:8032
Child yarn jobs are found - application_1519975798846_265571

Found [1] Map-Reduce jobs from this launcher

Killing existing jobs and starting over:
2018-04-16 11:49:37,314 [main] INFO  org.apache.hadoop.yarn.client.RMProxy  - Connecting to ResourceManager at ip-172-31-4-192.ap-south-1.compute.internal/172.31.4.192:8032
Killing job [application_1519975798846_265571] ... 2018-04-16 11:49:37,334 [main] INFO  org.apache.hadoop.yarn.client.api.impl.YarnClientImpl  - Killed application application_1519975798846_265571 
Done​

这是我典型的 sqoop 工作的样子:

sqoop job -Dmapred.reduce.tasks=3--meta-connect jdbc:hsqldb:hsql://IP:16000/sqoop --create job_name -- import --driver com.mysql.jdbc.Driver --connect 'jdbc:mysql://ip2/erp?zeroDateTimeBehavior=convertToNull&serverTimezone=IST' --username username --password 'PASS' --table orders --merge-key order_num --split-by order_num  --hive-import --hive-overwrite  --hive-database Erp --hive-drop-import-delims --null-string '\\N' --null-non-string '\\N' --fields-terminated-by '\001' --input-null-string '\\N' --input-null-non-string '\\N' --input-null-non-string '\\N' --input-fields-terminated-by '\001' --m 12

这就是我在 oozie 中执行工作的方式

job --meta-connect jdbc:hsqldb:hsql://ip:16000/sqoop --exec JOB_NAME-- --warehouse-dir folder/transit/${DATE}

现在,我最近开始收到一个错误:无论我在 $DATE 变量中传递什么时间戳,输出目录都已经存在。这可能是因为服务器进程重新启动。昨天我可以看到节点管理器一遍又一遍地重启,但今天也不是这样。它会在 oozie 中的任何 sqoop 作业中随机给出。

我在执行作业时添加了 --warehouse-dir folder/Snapshots/${DATE},这样我就不会 GET 输出目录已经存在,但我昨天不知从何而来。

目前,我没有看到任何关于服务运行的标志,但是 namenode 暂停持续时间是定期发生的。我该如何解决这个问题?

这个错误消息非常直观,因为仓库目录在它尝试重新启动作业之前被创建,但是使用仓库目录的全部目的是创建一个过渡目录,这样我就不会收到这个错误.我该如何解决这个问题?

Found [1] Map-Reduce jobs from this launcher
Killing existing jobs and starting over:

【问题讨论】:

    标签: sqoop


    【解决方案1】:

    当您尝试将数据导入 hive 并且您正在使用 hive-overwrite 时,请尝试使用 —create-hive-table,因此当您在 hive 中而不是目录中有表时它将适用,因此请尝试从 sqoop 创建表因此,当您重新触发作业时,它将覆盖表数据。

    --warehouse-dir /user/cloudera/ingest/raw/helloworld
    --fields-terminated-by "," 
    --hive-import 
    --create-hive-table 
    --hive-table sqoop_workspace.helloworld
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多