• 根据MapReduce on YARN初识YARN架构


    YARN简介:

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

    YARN的基本思想是将JobTracker的两个主要功能(资源管理和作业调度/监控)分离,主要方法是创建一个全局的ResourceManager(RM)和若干个针对应用程序的ApplicationMaster(AM)。

     

    YARN架构:

    ResourceManager(RM)

    RM是一个全局的资源管理器,负责整个系统的资源管理和分配。它主要由两个组件构成:调度器(Scheduler)和应用程序管理器(Applications Manager,ASM)。

    调度器根据容量、队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用程序。

    应用程序管理器负责管理整个系统中所有应用程序,包括应用程序提交、与调度器协商资源以启动ApplicationMaster、监控ApplicationMaster运行状态并在失败时重新启动它等。

    NodeManager(NM)

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

    ApplicationMaster(AM)

    用户提交的每个应用程序均包含一个AM,主要功能包括:

    与RM调度器协商以获取资源(用Container表示);

    将得到的任务进一步分配给内部的任务(资源的二次分配);

    与NM通信以启动/停止任务;

    监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务。

    注:RM只负责监控AM,在AM运行失败时候启动它,RM并不负责AM内部任务的容错,这由AM来完成。

    Container

    Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM为AM返回的资源便是用Container表示。YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源。
     
     
     
    MapReduce on YARN:
     
    1. 客户端(client)向资源管理者(ResourceManager)发出命令请求
    2. 资源管理者(ResourceManager)接收到请求后,集群的应用管理者(ApplicationsMagager)会告诉节点管理者(NodeManager)去创建节点应用管理者(MR ApplicationMaster)
    3. 节点应用管理者(MR ApplicationMaster)创建完成之后会告诉资源管理者(ResourceManager)自己已经创建完毕并注册,同时向资源调度者(ResourceScheduler)申请资源。
    4. 资源调度者(ResourceScheduler)将资源分配给节点应用管理者(MR ApplicationMaster),节点应用管理者(MR ApplicationMaster)告诉节点管理者(NodeManager)去启动Map任务(MapTask)和Reduce任务(ReduceTask)。
    5. Map任务(MapTask)和Reduce任务(ReduceTask)将执行的结果反馈给节点应用管理者(MR ApplicationMaster)
    6. 节点应用管理者(MR ApplicationMaster)将执行的结果反馈给集群的应用管理者(ApplicationsMagager)
    7. 客户端(client)可以通过浏览器访问节点的应用管理者(MR ApplicationMaster)去监控Map任务(MapTask)和Reduce任务(ReduceTask)的执行情况。
     
     
     
     
  • 相关阅读:
    GitHub Pages 绑定二级域名
    JS正则表达式(JavaScript regular expression)
    天猫魔盒远程安装APP
    'msbuild.exe' 不是内部或外部命令,也不是可运行的程序
    Jenkins自动更新与数据备份
    Jenkins插件无法更新、Jenkins插件不能下载问题解决
    安全测试工具wapiti的安装和使用(2)命令及参数解释
    安全测试工具wapiti的安装和使用(1)安装
    Jenkins远程构建和发布,基于IIS服务器(.netCore+vue)(三)
    Jmeter报错:java.net.ConnectException: Connection timed out: connect
  • 原文地址:https://www.cnblogs.com/Zlcode/p/8404198.html
Copyright © 2020-2023  润新知