[雪峰磁针石博客]大数据Hadoop工具python教程3-MapReduce
MapReduce是一种编程模型,通过将工作分成独立的任务并在一组机器上并行执行任务,可以处理和生成大量数据。 MapReduce编程风格的灵感来自函数式编程结构map和reduce,它们通常用于处理数据列表。在高层MapReduce程序将输入数据元素列表转换为输出数据元素列表两次,一次在映射阶段,一次在还原阶段。 本章首先介绍MapReduce编程模型,并描述数据如何流经模型的不同阶段。然后示例如何使用Python编写MapReduce作业。 数据流 MapReduce框架由三个主要阶段组成:map,shuffle和sort,以及reduce。 map 在映射阶段,mapper函数处理一系列键值对。映射器按顺序处理键值对,产生零个或多个输出键值对。 比如将句子转换为单词。输入是包含句子的字符串,映射器将句子拆分为单词并输出单词。 Shuffle和Sort 映射阶段的中间输出将移动到reducer。将输出从映射器移动到reducer的过程称为洗(shuffling)。 Shuffling由分区函数处理,称为partitioner。partitioner用于控制从映射器到reducer的...