Hadoop系列(3): MapReduce

本文详细介绍了MapReduce的工作流程,包括split、map、combine、shuffle和reduce五个阶段,并探讨了MapReduce的容错机制,如任务重启、投机执行和黑名单机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、MapReduce工作流程分析

                     

                                                            图 1 MapReduce 工作流程

    MapReduce框架适用于大规模数据的并行计算,对于需要在不同机器间频繁同步的应用并不适用。保持节点间数据同步而产生的通信开销会使得系统效率低。MR框架也不适用与低响应延迟的应用。

    MapReduce由split,map,combine,shuffle,reduce五个阶段组成。

    (1)split:将输入文件按照指定大小切分成split,默认是64M。每一个split对应一个map task。

    (2)map:将一个split作为输入,并行执行用户编写的map程序。

    (3)combine: 可以看做map端的一个reduce操作。对map端的结果进行合并,减少网络传输数据。combine是否执行有系统决定,只有空闲时才会执行。

    (4)shuffle:图中表示为merge。shuffle分为两部分,map端的shuffle和reduce端的shuffle。

        Map端的shuffle: map的输出结果首先进行combine操作,然后进行二次快速排序。首先根据数据所属的partition进行排序,然后在每一个partition内,按照key排序。partition数量由reduce决定,不同的partition传给不同的reduce。

        Reduce端的shuffle: reduce通过网络获取map task的输出,这称为copy阶段。map输出结果到达reduce端时需要进行排序,排序完成后作为reduce的输入。

    (5)reduce:shuffle的输出作为reduce阶段的输入,执行用户编写的reduce函数

2、MapReduce 容错

    (1)将失败的任务再次调度执行,用户可以设置最大重启次数。

  (2)为了加快执行速度,Hadoop会在多个机器上执行同一个任务,最先执行成功的为准。(可以通过mapred.map.tasks.speculative.execution进行设置)

    (3)黑名单机制:屏蔽异常次数超高的节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值