sqoop job仓库目录已经存在

时间:2018-04-18 10:15:38

标签: sqoop

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文件夹/ Snapshots / $ {DATE},这样我就不会GET输出目录已存在,但我昨天开始无处可去。

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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