HadoopMapReduce&YARN

1.排序

1.快速排序

左右指针法
挖坑法

左右俩边各找一个基准,如此反复,最终有序

前后指针

2.归并排序

二分再合并

2.MapReduce计算流程

1)原始数据File
2)数据块Block
3)切片Split
4)MapTask

5).读入环形数据缓冲区(内存)
6).分区&排序(内存)

7)溢写

8)合并
9)组合器(可选)

10)写出ReduceTask

合并;次数(网络io,磁盘io)优化

11)拉取
12)合并
13)分组归并
14)写出

3.Shuffle

4.YARN资源(内存.CPU)管理框架

hadoop1.0版本

hadoop2.0版本

5.数据压缩(数据大小的优化)--使用CPU

应用的地方:(1)MapTask写出(2)ReduceTask写出

1)

计算密集型(少用压缩):要进行大量的计算,消耗CPU资源

io密集型 :CPU消耗很少,任务的大部分都在等待io操作完成(因为io的速度远远低于CPU和内存的速度)

2)压缩比较

MapTask写出 推荐使用Snappy,Zstd(速度和效率)

ReduceTask写出的数据需要考虑是否是下一个作业的入口数据:

a:如果是,不推荐使用不可切分压缩算法,推荐使用BZips.

b:如果计算过的结果无需进行再次计算,就是归档存储,且后续在计算的可能性也比较小,推荐使用高比例压缩算法Gzip.BZip2,节省存储空间。

6.MR优化

1).小文件优化:

a.尽量不要上传;b.使用FileInputFormat读取数据的时候实现类CombineFileInputFormat读取数据,在读取数据的时候进行合并

2).数据倾斜:

产生的原因:

四种解决方案:

1)不使用默认的Hash分区算法,采用自定义分区

memory :内存 vcore :CPU

3).推测执行
4).MapReduce执行流程
Map(修改时不要超过yarn上限):

a 临时文件:

b.分片:调整分片大小

c.资源

d.环形缓冲区&溢写

e.合并

f.输出

组合器:

压缩:

响应线程

g.容错

Reduce:(修改时不要超过yarn上限)

a.资源

b.拉取

c.缓冲区&溢写

d.合并

e.读缓存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值