对于我的一个hadoop作业,输入到我的减速机任务中的数据量非常不平衡。例如,如果我有10个减速机任务,其中9个的输入大小将在50KB范围内,最后一个将接近200GB。我怀疑我的映射器正在为单个键生成大量值,但我不知道那个键是什么。这是一个遗留作业,我不再有权访问源代码。有没有办法在作业运行时看到键/值对,无论是映射器的输出还是减速机的输入?
尝试将此添加到您的CLI作业运行中:-D映射。减少。任务=0
这应该将还原器的数量设置为0,这实际上会使映射器将输出直接转储到HDFS。但是,可能有一些代码正在覆盖还原器的数量,而不管…所以这可能不起作用。
如果这有效,这将显示映射器的输出。
您可以随时使用不同的简单映射减少作业来计算键的值的总量。