zoukankan      html  css  js  c++  java
  • YARN框架详解

    YARN框架详解
    YARN官方解释

    YARN是什么

    The fundamental(定义) idea of YARN is to split(分开) up the functionalities(功能) of resource management and job scheduling/monitoring(进程调度) into separate(独立) daemons(守护进程). The idea is to have a global ResourceManager (RM) and per-application ApplicationMaster (AM). An application is either a single job or a DAG(有向无环图(Directed Acyclic Graph)) of jobs.

    ResourceManager

    全局的资源管理器,整个集群只有一个,负责集群资源的统一管理和调度分配。

    *处理客户端请求
    *启动/监控ApplicationMaster
    *监控NodeManerger
    *资源分配与调度
    

    NodeManager

    整个集群有多个,负责单个节点的资源管理和使用

    *单个节点上的资源管理和任务管理
    *处理来自ResourceManeger的命令
    *处理来自ApplicationMaster的命令
    

    NodeManager管理抽象容器,这些容器代表着可供一个特定应用程序使用的针对每个节点的资源
    定时向ResourceManager汇报本节点上的资源使用情况和各个Container的运行情况

    ApplicationMaster

    管理一个在YARN内运行的应用程序的每个实例

    *为应用程序申请资源,进一步分配给内部任务
    *任务监控与容错
    

    负责协调来自ResourceManager的资源,并通过NodeManager监控容器的执行和资源使用(CPU、内存等的资源分配)

    Container

    YARN中的资源抽象,封装某个节点上多维度资源,如内存、CPU、磁盘、网络等。当ApplicationManager向ResourceManager申请资源时便是用的Container表示的
    YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源

    *对任务运行环境的抽象
    *描述一系列信息
    *任务运行资源(节点、内存、CPU)
    *任务启动命令
    *任务运行环境
    

    资源的管理

    (资源:CPU、内存和IO,YARN支持CPU和内存的调度,内存的多少会决定任务的生死,CPU仅仅决定了任务运行速度)
    资源的调度和隔离是YARN作为一个资源管理系统,最重要和最基础的两个功能。资源调度由ResourceManager完成,而资源的隔离由各个NodeManager实现。

    资源调度

    ResourceManager将某个NodeManager上资源分配给任务。
    

    资源隔离

    NodeManager需按要求为任务提供相应的资源,甚至保证这些资源具有独占性,为任务运行提供基础的保证
  • 相关阅读:
    JSON格式解析和libjson使用简介(关于cjson的使用示例)
    我还没死!!微信公众号——自媒体的营销之路
    android应用开发-从设计到实现 3-4 静态原型的状态栏
    一种绝对提高开发水平的方法
    年近30------职业回想与思考
    LeetCode Populating Next Right Pointers in Each Node
    uploadify在火狐下上传不了的解决方式,java版(Spring+SpringMVC+MyBatis)具体解决方式
    struct和typedef struct
    奔五的人学ios:swift竟然没有字符串包括,找个简单的解决方法
    Floyd算法解说
  • 原文地址:https://www.cnblogs.com/cenzhongman/p/7125342.html
Copyright © 2011-2022 走看看