我正在尝试创建在特定队列中运行的 Sqoop作业,但它不起作用。
我尝试了两件事:
第一:在作业创建中声明队列
sqoop job \
--create myjob \
-- import \
--connect jdbc:teradata://RCT/DATABASE=MYDB \
-Dmapred.job.queue.name=shortduration \
--driver com.teradata.jdbc.TeraDriver \
--username DBUSER -P \
--query "$query" \
--target-dir /data/source/dest/$i \
--check-column DAT_CRN_AGG \
--incremental append \
--last-value 2001-01-01 \
--split-by NUM_CTR
但由于-Dmapred.job.queue.name=shortduration
第二次:删除作业创建的-Dmapred.job.queue.name=shortduration
。创造就业机会很好。但是无法指定应该使用哪个队列
我失去了在这个队列中完成工作的希望
感谢您提供的任何帮助!
编辑:导入使用sqoop import -Dmapred.job.queue.name=shortduration
,但sqoop作业无法正常工作
答案 0 :(得分:5)
我认为您的命令中有错误
-Dmapreduce.job.queuename=NameOfTheQueue
注意一个单词和顺序,根据文档,vm args需要在导入后直接进行。
https://sqoop.apache.org/docs/1.4.3/SqoopUserGuide.html#_using_generic_and_specific_arguments
通用Hadoop命令行参数: (必须在任何特定于工具的参数之前) 支持的通用选项是 -conf指定应用程序配置文件 -D使用给定属性的值
sqoop job -Dmapred.job.queuename=shortduration \
--create myjob \
-- import \
--connect jdbc:teradata://RCT/DATABASE=MYDB \
--driver com.teradata.jdbc.TeraDriver \
--username DBUSER -P \
--query "$query" \
--target-dir /data/source/dest/$i \
--check-column DAT_CRN_AGG \
--incremental append \
--last-value 2001-01-01 \
--split-by NUM_CTR
您可能只想尝试使用导入工具查看它是否正常工作然后执行作业命令即
sqoop import -Dmapred.job.queuename=shortduration \
--connect jdbc:teradata://RCT/DATABASE=MYDB \
--driver com.teradata.jdbc.TeraDriver \
--username DBUSER -P \
--query "$query" \
--target-dir /data/source/dest/$i \
--check-column DAT_CRN_AGG \
--incremental append \
--last-value 2001-01-01 \
--split-by NUM_CTR