2014-03-12 50 views
1

我正在編寫一個小型Web界面以允許用戶提交YARN作業。我想讓他們有機會命名他們的工作,以便以後觀察他們的進展。將Hadoop作業名稱設置爲不在JobConf中

用過的jar永遠都是一樣的,它只會對不同的輸入數據進行操作。目前,我在我的run()方法中將作業名稱設置爲一個常量值。

我正在尋找的是類似hadoop jar myjar.jar --jobName=MyJob *myParameters

這可能嗎?

回答

2

您是否嘗試過簡單

-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")); 

創建你的工作運行中的功能

+0

我沒有,但是這似乎並沒有覆蓋默認名稱在job.setJobName設置() – FAS

+0

哦,明白了。我不明白。 – VirgileD

+0

oups,超過5分鐘... 哦,明白了:您已經在您的myjar.jar中使用setJobName。 我更新了我的答案以覆蓋此問題。 – VirgileD

0

如果您使用mrv2並創建了作業,您可以使用setJobName()

Job job = Job.getInstance(configuration); 
job.setJobName("the job name"); 
0

前與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

相關問題