YARN的工作原理详解

YARN是一个集群资源的管理与任务调度的分布式框架

官网解释如下:

Hadoop YARN: A framework for job scheduling and cluster resource management.

YARN的工作原理

YARN架构图
1.客户端提交应用程序给ResourceManager
2.ResouceManager会生成ApplicationMaster,并在某一个节点服务器上
        运行ApplicationMaster
3.ApplicationMaster向ResourceManger注册其信息,并且向ResourceManger发送
      申请资源报告,申请contaniner容器,以运行application下的任务
     (其实是每个container容器被分配后,由每个机器上的nodemanger来启动该container)
4.在运行过程中,由applicationMaster来运行和管理container里面的任务
        其中container会通过心跳机制向applicationMaster来发送运行信息。
5.任务完成之后,application向ResourceManager报告,任务完成,container进行资源释放。

YARN的功能

>>集群资源的管理
        主节点 -RM ResourceManager
                通过节点服务器定期向主节点报告使用情况
        从节点    -ND    NodeManager
                通过自己的进程管理每一个节点服务其的使用情况
>>任务调度
        >>>yarn上运行多个应用程序
        >>>应用程序运行需要资源
        >>>对应用程序的资源如何进行分配
        >>>yarn如何任务调度
        
        
        resourcemanager
            >>>处理客户端请求
            >>>启动/监控applicationmaster
            >>>监控nodemanger
            >>>资源分配与调度
        nodemanger 
            >>>单个节点管理
            >>>处理来自resourcemanger的命令
                因为resourcemanager需要指定一个datanode来运行applicationmaster
                需要划分空间,运行任务
            >>>处理来在applicationmaster的命令
                因为applicationmaster需要请求nodemanger来启动其下划分的container中的任务
        applicationMaster
            >>>申请资源
            >>>监控、管理nodemanger上的任务运行情况
        
        container
            对资源抽象和封装,目的是为了让每个应用程序对应的任务完成执行
            任务之间不能相互影响,任务不能相互交叉使用和共享

猜你喜欢

转载自blog.csdn.net/sinat_37513998/article/details/82559956