Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
对于我的一项 hadoop 工作,输入到我的 reducer 任务的数据量非常不平衡。例如,如果我有 10 个 reducer 任务,其中 9 个的输入大小将在 50KB 范围内,最后一个将接近 200GB。我怀疑我的映射器正在为单个键生成大量值,但我不知道该键是什么。这是一项遗留工作,我无法再访问源代码。有没有办法在作业运行时查看键/值对,无论是映射器的输出还是减速器的输入?
尝试将此添加到您的 CLI 作业运行中:-D mapred.reduce.tasks=0
-D mapred.reduce.tasks=0
这应该将 reducer 的数量设置为 0,这实际上会使映射器将输出直接转储到 HDFS。但是,可能有一些代码会覆盖减速器的数量……所以这可能不起作用。
如果可行,这将显示映射器的输出。
您始终可以使用不同的简单 map reduce 作业来计算键值的总数。