zoukankan      html  css  js  c++  java
  • Hadoop提交作业流程

    一 、需要知道的内容

    1.ResourceManager ------>yarn的老大
    2.NodeManager        ------>yarn的小弟
    3.ResourceManager调度器   a.默认调度器------>先进先出FIFO
                                   b.公平调度器------>每个任务都有执行的机会
    ......
    4.心跳机制                 ------>NodeManager可通过心跳机制将节点健康状况实时汇报给ResourceManager,而ResourceManager则会    根据每个NodeManager的健康状况适当调整分配的任务数目。当NodeManager认为自己的健康状况“欠    佳”时,可让ResourceManager不再分配任务,待健康状况好转时,再分配新任务。

    5.NodeManager子进程------>独立于NodeManager,不在NodeManager内部

    二 、Hadoop工作流程:

    1.Client中,客户端提交一个mr的jar包给JobClient(提交方式:hadoop jar ...)

    2.JobClient持有ResourceManager的一个代理对象,它向ResourceManager发送一个RPC请求,告诉ResourceManager作业开始,
    然后ResourceManager返回一个JobID和一个存放jar包的路径给Client

    3.Client将得到的jar包的路径作为前缀,JobID作为后缀(path = hdfs上的地址 + jobId) 拼接成一个新的hdfs的路径,然后Client通过FileSystem向hdfs中存放jar包,默认存放10份
    (NameNode和DateNode等操作)

    4.开始提交任务,Client将作业的描述信息(JobID和拼接后的存放jar包的路径等)RPC返回给ResourceManager

    5.ResourceManager进行初始化任务,然后放到一个调度器中

    6.ResourceManager读取HDFS上的要处理的文件,开始计算输入分片,每一个分片对应一个MapperTask,根据数据量确定起多少个mapper,多少个reducer

    7.NodeManager 通过心跳机制向ResourceManager领取任务(任务的描述信息)

    8.领取到任务的NodeManager去Hdfs上下载jar包,配置文件等

    9.NodeManager启动相应的子进程yarnchild,运行mapreduce,运行maptask或者reducetask

    10.map从hdfs中读取数据,然后传给reduce,reduce将输出的数据给回hdfs

    --------------------- 本文来自 小虹尘 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/hongchenlingtian/article/details/53524705?utm_source=copy 

  • 相关阅读:
    J2SE基础:7.系统经常使用类一
    Win7 64位 php-5.5.13+Apache 2.4.9+mysql-5.6.19 配置
    FUDCon
    扬帆起航 彼岸花开——2013届毕业晚会《再见民大》倾情再演
    毛磊
    查经
    H.O.T candy
    svn rm --keep-local ./QueryParser_kill.logs
    python datetime笔记
    柯震东_百度百科
  • 原文地址:https://www.cnblogs.com/puppey/p/9707786.html
Copyright © 2011-2022 走看看