标签:Container NM AM YARN job 数据系统 RM 资源管理 资源
Yarn系统原理
Yarn主要就是将JobTracker的两个主要功能分离成单独的组件:资源管理、任务调度/监控
RM,ResourceManager,全局管理
NM,NodeManager,节点管理
AM,ApplicationMaster,单个应用管理 Container,单个任务的资源管理
RM负责分配NM给AM,AM负责把任务发送到NM,每个任务在NM中以Container形式管理
ResourceManager RM
它是Yarn的核心组件
接收客户端任务请求,接收和监控工作节点(NM)的资源情况汇报,负责资源的分配与调度,启动和监控AppMstr
ResourceManager包含两个组件
Scheduler(调度器):通过资源队列将资源分配给一个应用Application;它是先进先出调度,可以包含多个调度队列。
Applications Manager AsM:应用程序管理,负责管理系统中所有的job;包括job的提交、与调度器协商资源来启动ApplicationMaster(AM)和监控(AM)运行状态,并且处理出错情况。
NodeManager NM
是集群中的一个节点管理器
负责节点内Container状态的维护,并向RM保持心跳HeartBeat
Application Master AM
负责一个Job生命周期内的所有工作
AM是一个app的主进程,运行在某个Node上,AM会分派出很多任务Task 每个Task以Container的形式运行
Container
分配给一个Job的资源容器,资源包括:内存,CPU,磁盘,网络等等。
Container功能是在OS核心上构建虚拟执行环境,共享HostOS的基础服务,在Hadoop2中,Container一般是指Java虚拟机的内存隔离,在Hadoop3种,Container支持用户自定义资源类型,不再局限CPU和内存的资源管理
Job分解为MapTask和ReduceTask,因为有Container隔离,使得MapTask和ReduceTask可以在一台服务器上混合运行
Yarn的运行架构
1.客户端向RM(AsM)提交一个job
2.RM(AsM)分配一个NM,并通知NM为这个job做初始化
3.NM创建Container并启动job相应的AM,然后通知RM
4.RM和AM交互,AM获取相应的资源,如果在同一个NM上获取资源不足,AM可以要求RM在其他NM创建Container并装载资源。
5.AM启动MapTask和ReduceTask进程,执行任务
6.任务运行中,AM定期向AsM汇报,跟踪任务状态
标签:Container,NM,AM,YARN,job,数据系统,RM,资源管理,资源 来源: https://www.cnblogs.com/wushuai2018/p/16380868.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。