当前位置:网站首页>MapReduce与YARN原理解析
MapReduce与YARN原理解析
2022-07-02 06:24:00 【无聊的n一天】
MapReduce与YARN原理解析
目录
前言
这里主要偏向理论理解,主要是为了更好的理解MR计算框架和YARN
一.MapReduce
(1)mapreduce的发展历程
Hadoop1.x是由hdfs和mapreduce组成,并没有YRAN,资源的调度是由mapreduce的两个组件(JobTracker和TaskTracker)完成。到了Hadoop2.x时mapreduce就把资源管理给分离出来变成现在YARN,YRAN的功能十分强大后续再详细介绍。对于Hadoop2.x后的mapreduce就单纯的是一个分布式计算框架。
(2)mapreduce的工作流程

Split:分片操作
MR最主要就是为了实现分布式并行处理,因此对于一个大规模数据集作业我们需要采取分片操作
split可以自定义大小,一般以一个块大小最合适
- 分片操作就是把数据集拆分成很多小分片,注意这里的切分并不是物理上的,而是逻辑上定义的
RR:记录阅读器
对于map任务它的输入和输出都是k-v形式的,所以就需要通过RR将数据转换为k-v形式。
- RR根据分片的位置和长度信息,从hdfs中将各块把它相关的分片读取处理,读出来以后输出k-v形式
Map:Map函数
map当中就是用户自定义的逻辑处理,根据用户自定义的map函数处理逻辑就可以完成相关的数据处理,处理结束之后就会生成一堆的k-v中间结果
Shuffle
这些中间结果通过shuffle才能发送到Reduce
- 示例

Reduce函数
reduce当中就是用户自定义的逻辑处理,根据用户自定义的reduce函数处理逻辑就可以完成相关的数据处理进行最后的输出
二.YARN
YARN的简介
YARN的体系结构:ResourceManager(RM),ApplicationMaster(AM),NodeManager(NM)
- ResourceManager(RM)是一个全局的资源管理器,负责整个系统的资源管理和分配,处理客户端请求,主要包括两个组件,即调度器(Scheduler)和应用程序管理器(Application Manager)
- ApplicationMaster任务调度与任务监控,为应用作业申请资源并分配给各个任务(Map任务或Reduce任务),实现资源的二次分配,与NM保持通信进行对各个任务的监控,并在任务失败时恢复(即重新申请资源重启任务)
- NodeManager是驻留在一个YARN集群中的每个节点上的代理,监控每个容器的资源使用情况,向RM汇报作业的资源使用情况和每个容器的运行状态,接收来自ApplicationMaster的各种请求。
调度器接收来自ApplicationMaster的应用程序资源请求,把集群中的资源以“容器”的形式分配给提出申请的应用程序,容器的选择通常会考虑应用程序所要处理的数据位置,进行就近选择从而实现“计算向数据靠拢”
容器:容器(Container)作为动态资源分配单位,每个容器中都封装了一定数量的CPU、内存、磁盘等资源,从而限定每个应用程序可以使用的资源量
调度器:调度器被设计成是一个可插拔的组件,YARN不仅自身提供了许多种直接可用的调度器,也允许用户根据自己的需求重新设计调度器
应用程序管理器:负责系统中所有应用程序的管理工作,主要包括应用程序提交、与调度器协商资源以启动ApplicationMaster、监控ApplicationMaster运行状态并在失败时重新启动等
YARN工作流程
首先用户编写应用程序向YARN提交,提交内容包括:
ApplicationMaser程序
启动ApplicationMaster命令(这就是会根据计算框架而变)
用户程序RM负责接受和处理来自客户端的请求,为应用程序分配一个容器隔离,并在该容器中启动一个ApplicationMaster,由ApplicationMaster总管整个作业的调度与执行
ApplicationMaster被创建后会首先向RM注册,因为只有注册了RM才会实时监控管理ApplicationMaster
ApplicationMaster采用了轮询的方式向RM申请资源
一个应用程序执行就会关联一个ApplicationMaster管家,它会统一管理整个程序作业的资源调度执行。作业要执行就会被分成多个任务(如多个Map或Reduce任务),每个任务都需要相关的容器资源,都需要申请一个容器去执行任务,ApplicationMaster这时就需要向RM申请这些资源RM以容器的形式向AM分配资源
AM获得到容器以后,就会把它申请到的资源进行二次分配,把它分配到自己所管理的任务
这时每个在容器运行的任务都要通过NM将当前的工作状态与进度向AM汇报,如果任务失败AM会重新申请让他恢复
整个应用程序(作业)运行完成后AM会向RM应用程序管理器注销并关闭自己,释放资源
YARN是一个纯粹的资源调度管理框架,只要编程实现相应的AM就可以运行不同的框架
总结
以上就是我今天的所学内容,主要还是偏向理论
边栏推荐
- Self study table Au
- PXC high availability cluster summary
- Huawei mindspire open source internship machine test questions
- SQLI-LABS通关(less6-less14)
- CTF web practice competition
- Kali latest update Guide
- php中的二维数组去重
- php中根据数字月份返回月份的英文缩写
- Cve - 2015 - 1635 (ms15 - 034) réplication de la vulnérabilité d'exécution de code à distance
- Code execution sequence with and without resolve in promise
猜你喜欢
![[literature reading and thought notes 13] unprocessing images for learned raw denoising](/img/a5/ed26a90b3edd75a37b2e5164f6b7d2.png)
[literature reading and thought notes 13] unprocessing images for learned raw denoising

SQLI-LABS通关(less15-less17)

sqli-labs通关汇总-page2

Recursion (maze problem, Queen 8 problem)

Sqli-labs customs clearance (less6-less14)

蚂蚁集团g6初探

mapreduce概念和案例(尚硅谷学习笔记)

PHP Session原理简析

Uniapp introduces local fonts

图解Kubernetes中的etcd的访问
随机推荐
In depth study of JVM bottom layer (II): hotspot virtual machine object
SQLI-LABS通关(less1)
Solution to the black screen of win computer screenshot
PM2 simple use and daemon
js创建一个自定义json数组
php中的数字金额转换大写数字
图解Kubernetes中的etcd的访问
PXC high availability cluster summary
SQLI-LABS通关(less18-less20)
浏览器滚动加载更多实现
CSRF攻击
Common prototype methods of JS array
js删除字符串的最后一个字符
After reading useful blogs
IDEA2020中PySpark的两表关联(字段名相同)
Atcoder beginer contest 253 F - operations on a matrix / / tree array
(the 100th blog) written at the end of the second year of doctor's degree -20200818
Common function writing method and set get writing method for calculating attributes
UEditor . Net version arbitrary file upload vulnerability recurrence
Latex在VSCODE中编译中文,使用中文路径问题解决