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

Hadoop ChainMapper和ChainReducer的杀手级应用是什么?,hadoop,mapreduce,distributed-computing,Hadoop,Mapreduce,Distributed Computing,我不知怎么搞不清楚,与通常的链式任务(map->reduce->map->map->reduce)相比,ChainMapper(map->map->map->reduce)和ChainReducer(reduce->map->map->map)的用例是什么。是否有使用这两种方法的典型示例或杀手级应用程序?或者,是否有一些著名的系统/应用程序使用了它们中的任何一种?我认为它们适用于在作业管道中使用IdentityMapper或IdentityReducer的步骤很少的情况 考虑到这一点,在给定管道

我不知怎么搞不清楚,与通常的链式任务(map->reduce->map->map->reduce)相比,ChainMapper(map->map->map->reduce)和ChainReducer(reduce->map->map->map)的用例是什么。是否有使用这两种方法的典型示例或杀手级应用程序?或者,是否有一些著名的系统/应用程序使用了它们中的任何一种?

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

考虑到这一点,在给定管道中有两个作业步骤:

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

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

现在作为一个实际的例子,有一个非常常见的用例,需要过滤掉记录,然后开始处理它。你可能会说,为什么我们不能在同一个映射器中同时进行处理和过滤,我会说原因有二:

1-关注点分离


2-如果您已经准备好了一个管道,并且只需要在其中附加一个预处理步骤,那么Chain Mapper就会派上用场

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

考虑到这一点,在给定管道中有两个作业步骤:

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

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

现在作为一个实际的例子,有一个非常常见的用例,需要过滤掉记录,然后开始处理它。你可能会说,为什么我们不能在同一个映射器中同时进行处理和过滤,我会说原因有二:

1-关注点分离

2-如果您已经准备好了一个管道,并且只需要在其中附加一个预处理步骤,那么Chain Mapper就会派上用场

我明白了:)谢谢你的回答!!我明白了:)谢谢你的回答!!