当前位置: 首页 / 技术分享 / 正文
好程序员大数据培训分享MapReduce理解

2020-11-26

大数据培训 好程序员

  好程序员大数据培训分享MapReduce理解,本篇文章好程序员大数据培训小编就给大家分享一下大数据MapReduce理解。

大数据培训

  为什么需要MapReduce?因为MapReduce可以“分而治之”,将计算大数据的复杂任务分解成若干简单小任务。“简单”的意思是:计算规模变小、就近节点计算数据、并行任务。

  一句话版本:

  输入文件 ->map任务】split --> map --> partition --> sort --> combine(写内存缓冲区) ~~ spill(独立线程写磁盘) --> merge --> map输出结果 ~~~ reduce任务】copy --> merge -->reduce --> 输出文件

  Mmap任务开始并处理分配到的多个split数据。

  Partition

  作用:将map阶段的输出分配给相应的reducerpartition== reducer

  默认是HashPartitioner。之后将输出数据写入内存缓冲区memory buff

  spill:

  memory buff的数据到达一定阈值时,默认80%,将出发溢写spill,先锁住这80%的内存,将这部分数据写进本地磁盘,保存为一个临时文件。此阶段由单独线程控制,与写memory buff线程同步进行。

  sort & combine

  spill写文件之前,要对80%的数据(格式)进行排序,先partitionkey,保证每个分区内key有序,如果job设置了combine,则再进行combine操作,将 这样的数据合并成,最终输出一个spill文件。

  多个spill文件通过多路归并排序,再合并成一个文件,这是map阶段的最终输出。同时还有一个索引文件(file.out.index),记录每个partition的起始位置、长度。

  reduce阶段:

  copy:多线程并发从各个mapper上拉属于本reducer的数据块(根据partition),获取后存入内存缓冲区,使用率达到阈值时写入磁盘。

  merge:一直启动,由于不同map的输出文件是没有sort的,因此在写入磁盘前需要merge,知道没有新的map端数据写入。最后启动merge对所有磁盘中的数据归并排序,形成一个最终文件作为reducer输入文件,至此shuffle阶段结束。

  reduce:和combine类似,都是将相同的key合并计算,最终结果写到HDFS上。

  好了,对于大数据MapReduce的理解就先简单说这些,学习大数据不是一朝一夕的事情,对大数据分析感兴趣的小伙伴小编建议你选择专业的大数据培训机构学习,只有跟着专业的老师学才能保证你学到专业实用的技能。

大数据培训:http://www.goodprogrammer.org/bigdata.shtml

 

好程序员公众号

  • · 剖析行业发展趋势
  • · 汇聚企业项目源码

好程序员开班动态

More+
  • HTML5大前端 <高端班>

    开班时间:2021-04-12(深圳)

    开班盛况

    开班时间:2021-05-17(北京)

    开班盛况
  • 大数据+人工智能 <高端班>

    开班时间:2021-03-22(杭州)

    开班盛况

    开班时间:2021-04-26(北京)

    开班盛况
  • JavaEE分布式开发 <高端班>

    开班时间:2021-05-10(北京)

    开班盛况

    开班时间:2021-02-22(北京)

    开班盛况
  • Python人工智能+数据分析 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2020-09-21(上海)

    开班盛况
  • 云计算开发 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2019-07-22(北京)

    开班盛况
在线咨询
试听
入学教程
立即报名

Copyright 2011-2020 北京千锋互联科技有限公司 .All Right 京ICP备12003911号-5 京公网安备 11010802035720号