zoukankan      html  css  js  c++  java
  • hadoop使用yarn运行mapreduce的过程

    如图:

        1、客户端提交MapReduce Job到YARN ResourceManager获取新的作业ID。
        2、YARN ResourceManager返回给客户端一个应用程序ID,即JobID和存储作业资源的路径。
        3、客户端检查作业的输出说明计算输入分片,并将作业的资源即作业Jar包、配置、输入分片存储10份到HDFS中(Hadoop源码中默认存储10份)。
        4、调用YarnClientImpl.submitApplication()方法提交作业。
        5、YARN ResourceManager收到客户端提交的作业后则交给Scheduler(Hadoop2中默认Capacity Scheduler)执行,Scheduler会分配一个Container,然后YARN ResourceManager在NodeManager的管理下在这个Container中启动MRAppMaster应用程序。
        6、MapReduce Job的ApplicationMaster即MRAppMaster是一个java应用程序,主类是MRAppMaster。它对作业初始化并创建多个簿记对象保持多MapReduce Job的跟踪(包括来自任务的进度和完成报告)。
        7、MRAppMaster会找出客户端计算好并存储在HDFS上的输入分片信息,并为每一个分片创建一个Map Task对象和配置中定义的多个Reduce任务对象(配置文件mapred-default.xml或mapred-site.xml中的mapreduce.job.reduces属性决定的)。
        8、MRAppMaster为MapReduce Job的Map Task和Reduce Task向YARN ResourceManager请求容器(包含MapTask数据的本地化信息、输入分片的节点和机架信息、内存需求)。
        9、YARN ResourceManager的Scheduler为任务分配了Container后,MRAppMaster通知NodeManager来启动Container。
        10、Map Task或Reduce Task是一个java应用程序,主类是YarnChild。运行前会将需要的资源(配置、Jar包、来自分布式缓存的文件)进行本地化。
        11、开始运行Map Task或Reduce Task。

  • 相关阅读:
    react脚手架
    快速创建一个node后台管理系统
    vue脚手架结构及vue-router路由配置
    Spring 事务管理-只记录xml部分
    Spring-aspectJ
    Maven 自定义Maven插件
    JVM
    JVM
    Spring
    Digester
  • 原文地址:https://www.cnblogs.com/mengyao/p/4652120.html
Copyright © 2011-2022 走看看