【问题标题】:Difference between Launched reduce tasks and number of times reduces function called?启动减少任务和减少函数调用次数之间的区别?
【发布时间】:2014-11-21 18:42:37
【问题描述】:

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

【问题讨论】:

    标签: hadoop mapreduce reduce hadoop-partitioning


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-06-28
      • 1970-01-01
      • 2012-08-22
      • 1970-01-01
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      • 2016-01-22
      • 2020-09-07
      相关资源
      最近更新 更多