Hadoop MR &MRv2(YARN)编程模型

本文详细介绍了Hadoop MapReduce 2.0(MRv2,即YARN)的编程模型,包括Map阶段(InputFormat、Mapper、Combiner、Partitioner)和Reduce阶段(Reducer、OutputFormat)。重点讲解了MapReduce的工作原理,如数据文件分片、Combiner的作用、Partitioner的逻辑,以及MapReduce作业的运行流程。此外,还讨论了数据本地性、推测执行机制以及常见的MapReduce应用场景。

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

1 MapReduce编程模型

    MapReduce将作业的整个运行过程分为两个阶段:Map阶段和Reduce阶段
       Map阶段由一定数量的Map Task组成
         输入数据格式解析:InputFormat
         输入数据处理:Mapper
         数据分组:Partitioner
       Reduce阶段由一定数量的Reduce Task组成
         数据远程拷贝
         数据按照key排序
         数据处理:Reducer
         数据输出格式:OutputFormat

2 MapReduce工作原理

     如下图所示:

这里写图片描述

Map阶段

       InputFormat(默认TextInputFormat)
       Mapper
       Combiner(local reducer)
       Partitioner

Reduce阶段
       Reducer
       OutputFormat(默认TextOutputFormat)

InputFormat

       1 数据文件分片(Input Split),按照固定块划分
       2 处理跨行问题
       3 将分片数据解析成key/value对
       4 默认实现是TextInputFormat

TextInputFormat

       Key是行在文件中的偏移量,value是行内容。若行被截断,则读取下一个block的前几个字符

Split与Block

       Block: HDFS中最小的数据存储单位 默认是64MB

       Spit:MapReduce中最小的计算单元,默认与Block一一对应

       Split与Block是对应关系是任意的,可由用户控制

Combiner

      Combiner可做看local reducer 合并相同的key对应的value通常与Reducer逻辑一样
       好处:
             减少Map Task输出数据量(磁盘IO)
             减少Reduce-Map网络传输数据量(网络IO)

Partitioner

      Partitioner决定了Map Task输出的每条数据交给哪个Reduce Task处理

      默认实现:hash(key) mo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值