我正在編寫一個小型Web界面以允許用戶提交YARN作業。我想讓他們有機會命名他們的工作,以便以後觀察他們的進展。將Hadoop作業名稱設置爲不在JobConf中
用過的jar永遠都是一樣的,它只會對不同的輸入數據進行操作。目前,我在我的run()方法中將作業名稱設置爲一個常量值。
我正在尋找的是類似hadoop jar myjar.jar --jobName=MyJob *myParameters
這可能嗎?
我正在編寫一個小型Web界面以允許用戶提交YARN作業。我想讓他們有機會命名他們的工作,以便以後觀察他們的進展。將Hadoop作業名稱設置爲不在JobConf中
用過的jar永遠都是一樣的,它只會對不同的輸入數據進行操作。目前,我在我的run()方法中將作業名稱設置爲一個常量值。
我正在尋找的是類似hadoop jar myjar.jar --jobName=MyJob *myParameters
這可能嗎?
您是否嘗試過簡單
-Dmapred.job.name=your_job_name
命令行選項?
當然,這意味着你使用ToolRunner所以你的主要功能是這樣的:
public static void main(String[] args) throws Exception {
int exitCode = ToolRunner.run(new Driver(), args);
System.exit(exitCode);
}
,並添加類似的東西:
Configuration conf = getConf();
Job job = new Job(conf, conf.get("job.name"));
創建你的工作運行中的功能
如果您使用mrv2並創建了作業,您可以使用setJobName()
Job job = Job.getInstance(configuration);
job.setJobName("the job name");
前與sqoop sqoop import \ -Dmapred.job.name='sqoop sequencefile' \ --connect jdbc:mysql://ms.itversity.com:3306/retail_db \ --username retail_user \ --password itversity \ --table orders --target-dir /user/mamatucci/sqoop/orders/as-sequencefile \ -m 2 \ --delete-target-dir \ --as-sequencefile
我沒有,但是這似乎並沒有覆蓋默認名稱在job.setJobName設置() – FAS
哦,明白了。我不明白。 – VirgileD
oups,超過5分鐘... 哦,明白了:您已經在您的myjar.jar中使用setJobName。 我更新了我的答案以覆蓋此問題。 – VirgileD