• yarn


    简单介绍yarn

    yarn是一个资源管理、任务调度的框架。主要包含三个模块:resourceManger、nodeManger、ApplicationMater。

    简单介绍三个组件的作用

    RM:负责所有资源的监控、分配和管理

    AM:负责每一个具体应用程序的调度和协调

    --applicationmaster。用户提交的每个应用程序均包含一个AM,它可以运行在RM以外的机器上。

    NM:负责每一个节点的维护。

    --nodemanger负责该节点的程序的正常运行,定时向RM汇报本节点资源(cpu、内存)的使用情况和Container的运行状况。当Rm宕机后连接RM的备用节点。负责接收并处理来自AM的Container的启动、停止等各种请求。

    yarn有哪些调度器

    FIFO(队列)调度:把应用按提交的顺序排成一个队列,按照先进先出进行资源分配。

    容量调度:该调度允许多个组织共享整个集群,再为每个组织分配专门的队列。再为队列分配相应的计算资源。

    公平调度:在公平调度中,我们不需要提前占用集群资源,fair调度器会在运行过程中根据job的执行动态的调整系统的资源分配。

    什么是container

    是一个抽象概念,称之为容器,包含任务运行时所需的资源(包括内存、硬盘、cpu等)和环境(包含启动命令、环境变量等)

    yarn的执行流程

    ①客户端向集群提交一个任务,该任务首先到RM中的AM

    ②AM收到任务后,会在集群中找一个NodeManger,在该NodeManger上启动一个APPMaster进程。该进程用于执行任务划分和任务监控。

    ③AppMaster启动起来之后,会向RM中的AM注册信息,APPMaster向RM下的ResourceSchedule申请计算任务所需的资源。

    ④AppMaster申请到资源之后,会与所有NodeManger通信要求他们启动所有计算任务(map和reudce)

    ⑤各个NM启动对应的容器Container用来执行Map和Reduce任务。

    ⑥各个任务会向APPMaster汇报自己的执行进度和执行状况,以便让AppMaster随时掌握各个任务的运行状态,在某个任务出了问题之后重启执行该任务。

    ⑦在执行完之后,APPMaster会向AM汇报,以便让ApplicationManger注销并关闭自己,使得资源得以回收。

     

    img

     

    img

     

  • 相关阅读:
    麦肯锡 问题分析与解决技巧
    JavaSe_IO流总结
    tcpdump
    interface
    phpexcel 合并单元格后的动态行高
    分布式事务锁的实现
    IntelliJ IDEA 实用快捷键
    Redis安装教程
    ng new my-app创建angular项目是卡住的解决办法
    SqlYog无法连接mysql数据库(包括docker环境)的解决方法
  • 原文地址:https://www.cnblogs.com/wqkant/p/16130479.html
Copyright © 2020-2023  润新知