Hadoop-YARN

avatar
作者
筋斗云
阅读量:0

简介

YARN是Hadoop的资源管理和作业调度系统,它将集群资源管理和作业调度/监控功能从Hadoop MapReduce的实现中分离出来,使得Hadoop可以支持除了MapReduce之外的其他数据处理模型。用户可以将各种服务框架部署在 YARN 上,由 YARN 进行统一地管理和资源分配。

重要组件

  1. Resource Manager (RM)

    • 在独立的机器上以后台进程的形式运行。它是整个集群资源的主要协调者和管理者,负责整个集群的资源管理和调度。
    • 处理客户端请求,将作业提交到集群,并根据资源情况分配作业到不同的节点上。
  2. Node Manager (NM)

    • 运行在集群中的每个节点上,负责管理单个节点的资源。
    • 监控节点上的容器使用情况,如内存、CPU等,并将其汇报给ResourceManager。
  3. Application Master (AM)

    • 每个作业都会启动一个Application Master,它负责与ResourceManager协商资源,并与NodeManagers通信以启动和监控任务。
    • AM还负责作业的生命周期管理,包括任务的调度、监控和状态报告。
  4. Client

    • 客户端应用程序,用于提交作业到YARN集群,并与Application Master交互以获取作业状态和结果。

工作流程

  1. 作业提交
    1. 客户端向集群提交作业,RM返回jobId和资源提交路径
    2. 客户端发送Jar包、配置信息等到指定路径(HDFS上)
    3. 客户端向RM发送执行作业请求
    4. RM接受到请求后会创建一个AM来管理该请求
  2. 作业初始化
    1. Application manager将job任务添加到资源调度器(Resourse Shecduler,存在于Resourse Manager)中,并且维护在一个队列里
    2. RM通知Application manager有空闲NM可以执行job
    3. Application manager调用NM开辟一个Container,并且启动Application Master,然后从指定路径(HDFS上)中获取,生成Task.
  3. 任务分配
    1. Application Master向RM申请运行Task的资源
    2. RM分配Task任务,NM创建一个Container用于执行Task
  4. 任务运行
    1. AM通知NM启动计算
    2. NM启动Task计算
    3. job执行完毕,AM向RM申请注销
  5. 作业完成 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!