zoukankan      html  css  js  c++  java
  • YARN 基础

    一、YARN 简介

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

    YARN 是随着Hadoop 发展而催生的新框架,取代了以前Hadoop1.x 中JobTracker 的角色。之前的JobTracker不仅要负责任务的调度,还要负责任务的追踪以及失败重启等过程。为了解决JobTracker 任务过重、只能运行MapReduce作业、不支持其他编程模式的问题,YARN 作为一种解决方案就出现了。

    二、YARN 架构
    YARN 由Client,ResourceManager,NodeManager,ApplicationMaster组成,采用Master/Slave 结构,一个ResourceManager 对应多个NodeManager。

    三、YARN 核心组件功能
    ResourceManager:整个集群只有一个,负责集群资源的统一管理和调度。
    处理来自客户端的请求(启动/终止 应用程序)
    启动/监控 ApplicationMaster: 一个AM出故障,RM将会在另一个节点上启动该AM。
    监控NodeManager,接收NodeManager 汇报的心跳信息并分配任务给NodeManager 去执行;一旦某个NM出故障,标记该NM上的任务,告诉对应的AM该如何处理。

    NodeManager:整个集群中有多个,负责单节点资源管理和使用。
    周期性地向RM汇报本节点上的资源的使用情况和各个Container的运行状态
    接收并处理来自ResourceManager的Container 启动/停止的各种命令
    处理来自ApplicationMaster 的命令

    ApplicationMaster:每个应用一个,负责应用程序的管理。
    数据切分
    为应用程序/作业向ResourceManager 申请资源(Container),并分配给内部任务。
    与NodeManager 通信以启动/停止任务。
    任务监控和容错(在任务执行失败时重新为该任务申请资源以重启任务)
    处理Resource 发过来的命令,终止Container,让NodeManager 重启等

    Container: 对任务运行环境的抽象
    任务运行资源(节点、内存、CPU)
    任务启动命令
    任务运行环境
    任务是运行在Container 中,一个Container 中既可以运行ApplicationMaster,也可以运行具体的Map、Reduce、MPI(消息传递接口)、Spark Task。

  • 相关阅读:
    java面向对象3
    java面向对象2
    java面向对象1
    java基础5
    java基础4
    java基础3
    递归之汉诺塔问题
    自定义 strcpy函数
    自定义strcmp函数
    自定义strcat函数
  • 原文地址:https://www.cnblogs.com/wbringarden/p/10247346.html
Copyright © 2011-2022 走看看