MapReduce和Yarn笔记

目录

1.设计思想

2.MapReduce计算流程

5.Yarn架构

​编辑

6.配置,启动,端口


1.设计思想

分而治之:大数据切分成多个小数据,并行计算

计算向数据靠拢:计算放在数据节点上运行

快排,归并算法

2.MapReduce计算流程

原始数据File:1T数据被切分成Block块,一个Block128M

数据块Block:同一个文件,块大小相同,块和计算能力不匹配,需要Split

切片Split:逻辑概念,不改变块大小,还能改变参与计算节点数量,一般Split为Block整数倍(2,1/2)

默认Split大小等于Block大小,128M,一个切片对应一个MapTask

MapTask:map默认每次从split数据读一行到内存中,可以自定义分词逻辑,统计次数,就会产生Map(String,Interger)存放在内存中,内存是有限的,多个任务执行可能OOM,直接放硬盘效率低

环形数据缓冲区:默认128M,达到百分之80,开始溢写磁盘

分区:根据key计算对应的reduce,分区数和reduce数相等,默认分区算法是hash取余

排序:对溢写数据进行排序,先Partition后Key的顺序->相同分区在一起,相同key在一起

溢写:内存的数据循环写入磁盘,不担心OOM,每次都会产生一个80M的文件

合并:Merge 是为了让传输的文件数量变少,但是网络传输数据量并没有改变,只是减少了网络 IO 次数

组合器:对每一个 MapTask 的输出进行局部汇总,以减小网络传输量

拉取:我们需要将Map的临时结果拉取到Reduce节点

合并:因为reduce拉取的时候,会从多个map拉取数据 那么每个map都会产生一个小文件,这些小文件(文件与文件之间无序,文件内部有序) 为了方便计算(没必要读取N个小文件),需要合并文件

归并:将文件中的数据读取到内存中 一次性将相同的key全部读取到内存中 直接将相同的key得到结果-->最终结果

写出:每个reduce将自己计算的最终结果都会存放到HDFS

5.Yarn架构

ResourceManager

资源协调管理者,zk主备切换,与nm保持心跳,nn汇报资源情况,如果是外部框架使用资源,直接访问rm

NodeManager

资源协调框架的执行者,每个DataNode默认有一个NodeManger,nm汇报到rm

6.配置,启动,端口

配置:hadoop-env.sh ,mapred-site.xml,yarn-site.xml

启动:zkServer.sh start ,start-all.sh,mapred --daemon start historyserver

端口:8088 ,19888

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值