【问题标题】:Description of Hadoop jobHadoop作业描述
【发布时间】:2013-02-21 13:15:21
【问题描述】:

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

有没有办法区分这些工作?某种描述,可以在提交过程中添加到作业中,例如“这是进程“1234”的作业,请勿触摸”?

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

【问题讨论】:

  • 你在使用亚马逊的电子病历吗?
  • @Amar,不,只是普通的 Python

标签: python hadoop mapreduce hadoop-streaming


【解决方案1】:

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

如果您要将作业名称设置为可区分的名称,您应该能够将它们区分开来。

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

【讨论】:

  • 不幸的是,我使用的是 Python 并且无法访问 Java API。我已经更新了问题。
【解决方案2】:

对于交叉兼容的解决方案,您始终可以使用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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-21
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多