• 【原创】MapReduce程序如何在集群上执行


    首先了解下资源调度管理框架Yarn。

     

    Yarn的结构(如图):

    Resource Manager (rm)负责调度管理整个集群上的资源,而每一个计算节点上都会有一个Node Manager(nm)来负责该节点上的计算资源,我们把计算资源抽象成一个个Container(容器),每个Container包含一定数量的cpu核数和一定大小的内存。一个应用程序由一个App Master 来管理,App Master 负责将一个程序运行在各个节点的Container中。

    Yarn 组件分工:

    1.      Resource Manager

    主要职责是调度,对应用程序的整体进行资源分配。

    2.      Container

    单个节点的物理资源的集合,比如内存,cpu。

    3.      Node Manage

    管理Container生命周期,资源使用情况,节点健康状况,并且将这些信息汇报给Recource Manager。

    4.      Application Master

    协调集群中的应用程序,与Resource Manager协商资源,并且将这个应用程序运行在集群之中。

    MapReduce程序如何在集群上执行?

     

    执行过程:

    1. mr会在客户端启动,客户端会向rm 发送一个 app 请求,rm会返回一个appid给客户端,
    2. 客户端会拿着appid,用户名,队列,令牌向rm进行请求,
    3. 客户端会将应用程序所用的jar包,资源文件,以及程序运行时所需要的数据传送到hdfs,
    4. rm会分配一个container0的资源包,由nm启动一个 appmaster
    5. rm将集群容量信息发送给appmaster,
    6. appmaster计算这个程序需要的资源量
    7. 向rm 请求分配更多的container
    8. nm在各个节点上启动map任务和reduce任务。

    总结:

    1. 客户端提交mr程序,向rm请求资源,并将程序依赖的资源上传到hdfs,
    2. Rm分配一个container0,nm启动am,用来管理这个mr程序,am计算好所需要的资源后向rm请求更多的资源。
    3. nm在各个节点上启动map task和reduce task
  • 相关阅读:
    数据结构实验之栈四:括号匹配
    数据结构实验之栈三:后缀式求值
    8月7日学习
    8月6日学习
    8月5日学习
    8月4日学习
    周总结
    8月3日学习
    8月2日学习
    8月1日学习
  • 原文地址:https://www.cnblogs.com/yx-zhang/p/9572378.html
Copyright © 2020-2023  润新知