在Hadoop中,有没有办法查看为正在运行的任务发送到reducer的键/值对?

时间:2012-12-04 20:45:46

标签: hadoop mapreduce

对于我的一个hadoop作业,输入我的reducer任务的数据量非常不平衡。例如,如果我有10个reducer任务,其中9个的输入大小将在50KB范围内,最后一个将接近200GB。我怀疑我的映射器为单个密钥生成了大量值,但我不知道该密钥是什么。这是一项遗留工作,我无法访问源代码。有没有办法在作业运行时看到键/值对,作为映射器的输出还是输入到reducer?

2 个答案:

答案 0 :(得分:1)

尝试将此添加到您的CLI作业运行:-D mapred.reduce.tasks=0

这应该将reducers的数量设置为0,这实际上将使mappers转储输出直接到HDFS。但是,可能有一些代码会覆盖reducer的数量而不管......所以这可能不起作用。

如果这样做,这将显示映射器的输出。

答案 1 :(得分:0)

您始终可以使用不同的简单地图缩减作业计算键的总值。