zoukankan      html  css  js  c++  java
  • yarn 工作原理及 yarn application操作命令

    YARN:
    Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。

    YARN的运行流程:

    YARN 主要由ResourceManager、NodeManager、ApplicationMaster、container等几部分组成。YARN总体上是Master/Slave结构,在整个资源管理框架中,ResourceManager为Master,NodeManager为Slave,ResourceManager负责对各个NodeManager上的资源进行统一管理和调度。当用户提交一个应用程序时,需要提供一个用以跟踪和管理这个程序的ApplicationMaster,它负责向ResourceManager申请资源,并要求NodeManger启动可以占用一定资源的任务。由于不同的ApplicationMaster被分布到不同的节点上,因此它们之间不会相互影响。

    服务功能
    ResouceManager:

    1、处理客户端的请求 
    2、启动和监控ApplicationMaster 
    3、监控nodemanager 
    4、资源的分配和调度
    

    Nodemanager
    NM是每个节点上的资源和任务管理器,它会定时向RM汇报本节点的资源使用情况和各个Container的运行状态,它还接收并处理来自AM的Container启动/停止等请求

    1、处理单个节点的资源管理 
    2、处理来自ResouceManager的命令 
    3、处理来自ApplicationMaster的命令
    

    ApplicationMaser
    用户提交的每一个应用程序都包括一个AM,AM主要有以下功能:

    1.与RM协调器协商以获取资源(用Container表示);
    2.将得到的任务进一步分配给内部任务;
    3.与NM通信以启动/停止任务;
    4.监控任务的状态,并在任务失败时重新为任务申请资源以重启任务。
    

    Container
    对多任务运行环境的抽象,包括CPU、内存等多维度资源以及环境变量、启动命令等任务运行的相关环境

    运行流程

    1、客户端向RM中提交程序 
    2、RM向NM中分配一个container,并在该container中启动AM  3、AM向RM注册,这样用户可以直接通过RM査看应用程序的运行状态(然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束) 
    4、AM采用轮询的方式通过RPC协议向RM申请和领取资源,资源的协调通过异步完成 
    5、AM申请到资源后,便与对应的NM通信,要求它启动任务 6、NM为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务 7、各个任务通过某个RPC协议向AM汇报自己的状态和进度,以让AM随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务 
    8、应用程序运行完成后,AM向RM注销并关闭自己
    

    关闭historyserver

    mr-jobhistory-daemon.sh stop historyserver
    

    yarn application操作命令

    1、-list 列出所有 application 信息,

    示例:
    yarn  application -list
    

    2、-appStates 跟 -list 一起使用,用来筛选不同状态的 application,多个用","分隔;
    所有状态:ALL,NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING,FINISHED,FAILED,KILLED

    示例:
    yarn  application -list -appStates RUNNING
    

    3、-appTypes 跟 -list 一起使用,用来筛选不同类型的 application,多个用","分隔;
    如 MAPREDUCE

    示例:
    yarn  application -list -appTypes MAPREDUCE
    

    4、-kill 杀死一个 application,需要指定一个 Application ID

    示例:
    yarn  application -kill application_1526100291229_206393
    

    5、-status 列出 某个application 的状态

    示例:
    yarn  application -status application_1526100291229_206393
    

    6、-movetoqueue 移动 application 到其他的 queue,不能单独使用
    7、-queue 与 movetoqueue 命令一起使用,指定移动到哪个 queue

    示例:
    yarn  application -movetoqueue application_1526100291229_206393 -queue other
    小小测试一枚
  • 相关阅读:
    关于url路径的定义方式
    script标签的位置
    jQuery中ready与load事件的区别
    Python中cv2库和matplotlib库色彩空间排布不一致
    OpenCV for Python 学习笔记 三
    OpenCV for Python 学习笔记 二
    OpenCV for Python 学习笔记 一
    CentOS7配置opencv for python && eclipse c/c++[更新]
    <转>关于 error LNK2019:无法解析的外部符号 ,该符号在函数**中被引用的思考
    OpenCV load 运行出错 cv::Exception 出错
  • 原文地址:https://www.cnblogs.com/txdblog/p/15241522.html
Copyright © 2011-2022 走看看