ChainMapper和ChainReducer的杀手级应用是什么?

时间:2013-10-09 04:14:16

标签: hadoop mapreduce distributed-computing

我无法弄清楚ChainMapper(map - > map - > map - > reduce)和ChainReducer(reduce - > map - > map - > map)的用例是什么到通常的链式任务(map - > reduce - > map - > reduce)。是否存在使用其中任何一个的规范示例或杀手级应用程序?或者,是否有一些众所周知的系统/应用程序使用其中任何一个?

1 个答案:

答案 0 :(得分:4)

我认为它们适合那些在作业管道中使用IdentityMapper或IdentityReducer的步骤很少的情况。

考虑到这一点,您在给定的管道中有2个工作步骤:

  • 步骤1
  • 步骤2

现在,Step1使用IdentityReducer。因此,步骤1的输出将写入磁盘,然后由Step2选择。为简化此过程,ChainMapper有助于消除此复制到磁盘并在Step2的映射器中读取。

因此,Step1可以成为第一个映射器M1,Step2的映射器可以成为第二个映射器M2。 所以它现在看起来像[M1 - > M2 - > R2]。

现在,就实际例子而言,有一个非常常见的用例,其中一个需要过滤掉记录然后进入处理过程。您可能会争辩说,为什么我们不能同时在同一个映射器中进行处理和过滤,我会说因为两个原因:

1 - 关注点分离

2 - 如果您已准备好管道,并且只需要为其添加预处理步骤,那么Chain Mapper会派上用场。