<strong id="8cmf8"><pre id="8cmf8"></pre></strong><progress id="8cmf8"><track id="8cmf8"></track></progress>

<button id="8cmf8"><object id="8cmf8"></object></button>

    <button id="8cmf8"><acronym id="8cmf8"></acronym></button>

  1. <button id="8cmf8"><acronym id="8cmf8"></acronym></button>

        当前位置: 首页 / 技术分享 / 正文
        MapReduce的运行流程(二)

        2022-11-17

        数据 文件 键值 进行

          Map阶段

          MapTask进程启动之后,会根据对应的输入分片来处理数据,每一个分片分配一个MapTask来处理。

        好程序员

          使用客户端指定的InputFormat来读取数据,常用的就是LineRecordReader对象。它会逐行读取分片中的数据,并形成一个键值对。键为行偏移量,值为行记录。我们通常称为

          将读取到的键值对数据输入到map方法中,进行用户自己的逻辑处理。并输出键值对,我们称为

          map方法输出的键值对,会被搜集进环形缓冲区。环形缓冲区是内存中的一个字节数组,默认的大小是100M。

          当环形缓冲区中被写入了80%的数据的时候,会将这80%的部分进行分区、排序,并溢写到磁盘,生成一个文件。在这个过程中,如果上游还有数据产生,将存储在剩余的20%的空间内。如果上游产生数据的速度非常快,剩余的20%也被填充满,并且80%的数据还没有溢写完成,此时任务将阻塞,上游不再读取数据,直到溢写文件完成。最终可能会生成多个溢写的磁盘文件。

          将每一个溢写的磁盘文件合并成为一个文件,在合并的过程中,依然会按照分区、Key进行排序。最终,每一个MapTask生成一个磁盘文件。至此,MapTask执行结束。

          Reduce阶段

          每一个ReduceTask需要去处理一个分区的数据,因此ReduceTask需要到每一个MapTask所在的节点去fetch自己分区的数据。

          拉取到的数据,如果比较小,会直接保存在内存中,在内存中完成排序,直到达到内存阈值,将其溢写到文件中;如果比较大,会直接以文件的形式保存起来。

          数据拉取完成后,会按照设定好的合并因子进行合并。

          按照Map阶段输出的的键进行分组,将相同键所对应的所有的值聚合到一起,形成一个集合。

          将分组之后的键值对>,输入到Reduce方法中,进行逻辑处理。并输出最终的结果

          将最终的结果,由客户端指定的OutputFormat进行输出。至此ReduceTask结束。

        好程序员公众号

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

        好程序员开班动态

        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(北京)

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

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

        国产三级片在线视频
        <strong id="8cmf8"><pre id="8cmf8"></pre></strong><progress id="8cmf8"><track id="8cmf8"></track></progress>

        <button id="8cmf8"><object id="8cmf8"></object></button>

          <button id="8cmf8"><acronym id="8cmf8"></acronym></button>

        1. <button id="8cmf8"><acronym id="8cmf8"></acronym></button>