设置Hadoop作业名称不在JobConf中

设置Hadoop作业名称不在JobConf中,hadoop,yarn,Hadoop,Yarn,我正在编写一个小型web界面,允许用户提交工作。我想让他们有可能说出自己的工作,以便以后观察自己的进步 所使用的jar始终是相同的,它只会对不同的输入数据进行操作。目前,我正在run()方法中将作业名称设置为常量 我要找的是类似于hadoop jar myjar.jar的东西--jobName=MyJob*myParameters 这可能吗 你试过简单的方法吗 -Dmapred.job.name=your_job_name 命令行选项 当然,这意味着您使用ToolRunner,因此您的主要功能

我正在编写一个小型web界面,允许用户提交工作。我想让他们有可能说出自己的工作,以便以后观察自己的进步

所使用的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()

带sqoop的ex

sqoop导入\
-Dmapred.job.name='sqoop sequencefile'\
--连接jdbc:mysql://ms.itversity.com:3306/retail_db \
--用户名零售用户\
--密码版本\
--表orders——目标目录/user/mamatucci/sqoop/orders/as sequencefile\
-M2\
--删除目标目录\
--作为序列文件

我做了,但是这似乎并没有覆盖job.setJobName()中设置的默认名称哦,明白了。我不明白。哦,超过5分钟。。。哦,明白了:您已经在myjar.jar中使用了setJobName。我更新了我的答案以涵盖这一点。在MR2中,该选项称为
mapreduce.job.name
Job job = Job.getInstance(configuration);
job.setJobName("the job name");