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:
答案 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