zoukankan      html  css  js  c++  java
  • YARN简短的建筑


    从Hadoop的0.23版本号,MapReduce进行了全面的彻底的变革。也就是我们今天看到的MapReduce 2.0或者我们也能够叫它YARN.

    老版本号的JobTracker有两个基本的功能:资源管理、任务调度与监控。

    Yarn的思路就是把这两个功能进行拆分,分别交给两个独立进程进行维护。这两个进程各自是ResourceManager进程和ApplicationMaster进程。

    ApplicationMaster进程是每一个Job一个。

    RM和NM两种角色构成了Hadoop集群的计算框架。

    RM对全部Job的资源申请具有终于的决定权。

    ApplicationMaster进程负责从RM获得资源,并与NM一起运行监控tasks.

    MapReduce NextGen Architecture


    RM有两个基本的组件:Sheduler、ApplicationManager

    Sheduler负责给执行的程序分配资源(存储容量、队列等)。Sheduler仅仅管调度,无论应用程序的状态。即便是应用程序由于种种原因失败了。也和他没有关系。Sheduler依据每一个程序对资源的申请来进行调度。

    resourceContainer是一个新抽象的概念,它是内存、CPU、磁盘、网络等资源的抽象集合,第一版仅仅支持了内存。

    Sheduler以resourceContainer为单位进行资源分配。

    Scheduler在设计上採用了插件的策略,CapacityScheduler 和FairScheduler 就是Scheduler的两个插件。

    类似于Eclipse,扩展起来easy吧?

    CapacityScheduler 支持分层次队列,该功能使得它能够分配很多其它的集群资源(分配那些未来会被释放的资源)

    ApplicationsManager 负责接收提交的任务,找到运行任务的ApplicationMaster 的容器,在容器失败的情况下,对容器进行重新启动。

    NodeManager 是个client程序,提供ApplicationsManager 执行须要的容器,并对所在机器的资源(CPU、内存、磁盘、网络)进行监控,并把监控结果汇报给 ResourceManager/Scheduler.

    ApplicationMaster 从Scheduler获得资源。跟踪任务的状态和运行进度。

    MRV2与老版本号的稳定版的MR兼容性,旧的版本号MR编译再来看看新的集群方案可以被执行。

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    mysql随手记
    Exception 和 RuntimeException区别
    数据结构与算法
    Idea快捷键
    eclipse快捷键
    了解Lua语言中的_index,newindex,rawget和rawset
    Cocos2d-x CCNotificationCenter 通知中心
    LUA-赋值语句
    CCOrbitCamera:create
    类型和值
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4658166.html
Copyright © 2011-2022 走看看