Hadoop作业的描述

时间:2013-02-21 13:15:22

标签: python hadoop mapreduce hadoop-streaming

我有一个Hadoop集群,不同的进程可以向这个集群提交mapreduce作业(它们都使用相同的用户帐户)。

有没有办法区分这些工作?某种描述,可以在提交过程中添加到工作中,如“这是一个过程的工作”1234“,不要触摸'?

我正在使用Python和HadoopStreaming,并希望使用简单的hadoop job -list(或至少使用Web管理界面)区分作业。

2 个答案:

答案 0 :(得分:0)

是的,您可以使用job.setJobName(String)为每个作业指定名称。

如果您要将作业名称设置为区别对象,则应该能够区分它们。

例如,通过使用类似ManagementFactory.getRuntimeMXBean().getName()的内容,您可以以1234@localhost的格式获取进程ID和计算机名称(无论如何在Linux上,不确定其他操作系统上的行为),其中1234 1}}是进程ID,您可以将其设置为作业名称以区分它们。

答案 1 :(得分:0)

对于交叉兼容的解决方案,您始终可以使用mapred.job.name指定作业的名称,这样您就可以在以后使用hadoop job -list轻松区分所有内容。

在Hadoop流式传输的情况下,这应该是这样的:

hadoop jar $HADOOP_STREAMING_JAR -Dmapred.job.name='something' -mapper mapper.py -reducer reducer.py -input /path/to/input -output /path/to/output