过滤
模式描述
与大多数基础模式类似,过滤作为一种抽象模式为其他模式服务。
目的
过滤掉不感兴趣的记录并将需要的记录保留下 ...
性能分析
这个作业是只有map的,因此这个模式的效率会达到MapReduce的最高性能。只有map的作业高效的原因基于如下两个理由:
因为没有reducer,所以就不需要在map阶段和reduce阶段之间传送数据。大多数map任务都是从它们本地磁盘读取数据并将结果写回到这个节点的磁盘。
因为没有reducer,排序阶段和reduce阶段都被删除了。这通常不会需要太长的事件,但对缩短整个作业的运行时长是有帮助的。
有一件需要注意的事情是:输出文件的大小和数目。因为作业只有mapper,每一个mapper将输出一个以part-m-为前缀的输出文件。如果小文件过多,长期积累会导致NameNode出现扩展性问题。
如果你关心小文件问题带来的负面影响,并且不介意你的作业执行更多一点的事件,你可以使用一个identity reducer来收集结果。