0

我希望我的流式减速器任务的输出对于分区号 0 与其他分区不同。如何从我的脚本中判断它正在运行的减速器任务是什么?

4

2 回答 2

1

正如 Nonnib 所说,如果你在 MR2/Yarn 上运行你的工作: mapreduce_task_id没有设置。改为使用mapred_task_id

我唯一的参考是Vowpal Wabbit 脚本(另外,我在 Yarn 作业中使用它,它适用于 Hadoop 2.0.0-cdh4.6.0 的版本)

于 2014-10-07T19:16:15.883 回答
1

我刚刚发现有环境变量mapreduce_task_id并且mapreduce_task_partition可以从脚本中访问。这些对于不同的reduce任务将具有不同的值,例如,任务0具有:

mapreduce_task_id=task_1410791469618_0007_r_000000

而任务 1 具有:

mapreduce_task_id=task_1410791469618_0007_r_000001

同样,任务 0 具有:

mapreduce_task_partition=0

mapreduce_task_partition=1.

在 Python 中,可以按如下方式访问它们:

import os 
my_task_id = os.environ.get('mapreduce_task_partition')
于 2014-09-16T16:36:01.330 回答