Loading

Yarn

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

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

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

  • nodeManger: 负责每一个节点的维护

    • 定期地向RM汇报本节点上的资源使用情况和各个Container的运行状态
    • 接收并处理来自AM的Container启动和停止请求
  • container: YARN中的资源抽象,封装了各种资源,可称之为容器,包含任务运行时所需的资源(包括内存、硬盘、cpu等)和环境(包含启动命令、环境变量等)

  • yarn有哪些调度器?

    • FIFO Scheduler(先来先服务): 先来先服务
    • Capacity Scheduler(容量调度器): 有一个专门的队列用来运行小任务,但是为小任务专门设置一个队列会预先占用一定的集群资源,这就导致大任务的执行时间会落后于使用FIFO调度器时的时间.
    • FairS cheduler(公平调度器) : 不需要预先占用一定的系统资源,Fair调度器会为所有运行的job动态的调整系统资源
      • 公平调度器,就是能够共享整个集群的资源
      • 不用预先占用资源,每一个作业都是共享的
      • 每当提交一个作业的时候,就会占用整个资源
  • yarn的执行流程?

    • client向yarn提交job,首先找ResourceManager分配资源
    • ResourceManager开启一个Container,在Container中运行一个Application manager
    • Application manager找一台nodemanager启动Application master,计算任务所需的计算
    • Application master向Application manager(Yarn)申请运行任务所需的资源
    • Resource scheduler将资源封装发给Application master
    • Application master将获取到的资源分配给各个nodemanager
    • 各个nodemanager得到任务和资源开始执行map task
    • map task执行结束后,开始执行reduce task
    • map task和 reduce task将执行结果反馈给Application master
    • Application master将任务执行的结果反馈Application manager
posted @ 2022-01-10 21:43  偏执的感叹号  阅读(147)  评论(0)    收藏  举报