美文网首页
Hadoop大数据系列三 - MapReduce

Hadoop大数据系列三 - MapReduce

作者: adasfasfasrry | 来源:发表于2017-03-05 20:22 被阅读0次

    MapReduce:分布式计算框架

    MapReduce is a software framework for easily writing applications which process vast amounts of data (multi-terabyte data-sets) in-parallel on large clusters (thousands of nodes) of commodity hardware in a reliable, fault-tolerant manner.

    Why MapReduce

    如果想统计下过去10年计算机论文出现最多的几个单词,看看大家都在研究些什么,那收集好论文后,该怎么办呢?

    方法一:单机执行

    方法二:多线程招行

    方法三:多个计算机执行

    方法四:MapReduce计算框架执行

    相关件:

    JobClient : 提交相关mapreduce任务给JobTracker

    JobTracker:任务控制中心

    TaskTracker:任务执行

    整体流程

    Map -> Combiner -> Shuffle -> Reduce

    逻辑角度分析作业运行顺序:输入分片(input split)、map阶段、combiner阶段、shuffle阶段、reduce阶段

    map阶段:即执行map函数。

    Combiner阶段:这是一个可选择的函数,实质上是一种reduce操作。combiner是map的后续操作,主要是在map计算出中间文件前做一个简单的合并重复key值的操作。

    可以理解为在map任务在单机执行完毕后,可单独执行combiner操作

    Shuffle阶段:map输出到reduce输入,包括:

        1) map端的shuffle: 针对map输出的key进行排序又叫sort阶段。

        2) reduce端的shuffle:复制数据和归并数据,最终产生一个有序的reduce输入文件。

          Shuffle过程有许多可调优的参数来提高MapReduce的性能,其总原则就是给shuffle过程尽量多的内存空间。

    Reduce阶段:即执行reduce函数并将结果存储到hdfs文件系统中。

    相关python streaming代码示例



    关于shuffle的具体细节可参考

    考资料http://langyu.iteye.com/blog/992916

    相关文章

      网友评论

          本文标题:Hadoop大数据系列三 - MapReduce

          本文链接:https://www.haomeiwen.com/subject/zzsegttx.html