0

我刚刚开始学习 hadoop,并使用自定义分区器和比较器运行 hadoop map-reduce 程序(首先在单节点环境中尝试,稍后将在集群上部署),奇怪的行为(因为我不知道实际发生了什么)我观察到的是,根据我的分区器和比较器,调用了五次 reduce 方法,因为我也从日志中对其进行了检查。但是在控制台上,启动的 reduce 任务的计数仍然是“1”。我非常怀疑这五个函数调用是否并行运行?如果不是,那么我将如何为这些reduce函数调用实现分布式计算的优势,因为这些reduce函数调用收集的数据将很大。请澄清一下,我缺少什么概念?

4

1 回答 1

4

reduce函数是连接两条数据时调用的实际函数。reduce任务是在机器上运行的程序,它以串行方式多次执行 reduce 函数。

如果您希望实际并行处理数据,则必须(手动)启动多个 reduce 任务 - hadoop 将在它们之间分配工作。

于 2014-09-26T17:19:07.963 回答