job任务执行流程
    1.run job阶段
        ①收集整个job的环境信息(比如通过conf设定的参数,还有mapperClass,reducerClass,以及输出kv类型)
        ②会计算当前job的切片数量(切片不同等切块,用FileSplit:path  start length)
        ③检测环境信息的合法性,以及输入和输出的路劲合法性。
    2.如果第一步的检测通过之后,会去找JobTracker,为当前的job申请jobid,用于标识job。jobid是全局唯一的,目的是管理job,因为整个集群同一时间内可能跑多个job。
    3.JobClient收到jobid,就将此job的运算资源(①conf.xml ②summary ③jar 包)
提交到HDFS上,目录路径:/tmp/hadoop-yarn/history/done_intermediate/root
conf.xml:存储的是job的环境配置信息
summary:jobid,mapTask数量和reduceTask数
jar包:程序员写的代码
    4.JobClient 做submit job动作,底层是把第三步的job的资源路径信息告知给JobTracker。
    5.6 去HDFS上拿取job的运算资源,然后做job的初始化,查看配置信息,以及拿到job的切片数量(本地目的是获取有几个mapTask)
    7.任务的领取,底层要满足数据本地化策略,节省集群的带宽---:因为MapTask读取文件是按行读取,所以必须要保证读取的是完整一行。底层会发生一个位置追溯的动作,此过程不可避免的会发生网络数据的传输,但数据量很小。
    8.去HDFS获取job 的运算资源(主要是jar包),然后结合代码来处理数据了。
这里体现了Hadoop的思想:移动的是运算,而不是数据。目的也是节省集群带宽
    9.10启动JVM进程,执行MapTask或ReduceTask。
    注意:MapTask任务的数量=job的切片数量

分区机制
    
        1.一个Job的ReduceTask数量,默认就1个。
        2.习惯上,把reduceTask叫做分区,即有几个reduceTask,就有几个分区。
        3.Hadoop底层有一个默认的分区器(HashPartitioner),此分区器的作用可以确保相同的Mapper输出key落到同一个分区(reduceTask)里。
        4.最后的结果文件数量=分区(reduceTask)数量,即每个结果文件存储的是对应分区的结果数据。
        5.因为底层用的是简单hash算法,所以会产生数据倾斜,有时会产生某个结果文件数据很少或没有的情况。
        6.如果最后想多个结果文件的结果合并在一起,

job任务执行流程与分区机制的更多相关文章

  1. Map/Reduce 工作机制分析 --- 作业的执行流程

    前言 从运行我们的 Map/Reduce 程序,到结果的提交,Hadoop 平台其实做了很多事情. 那么 Hadoop 平台到底做了什么事情,让 Map/Reduce 程序可以如此 "轻易& ...

  2. 第九篇:Map/Reduce 工作机制分析 - 作业的执行流程

    前言 从运行我们的 Map/Reduce 程序,到结果的提交,Hadoop 平台其实做了很多事情. 那么 Hadoop 平台到底做了什么事情,让 Map/Reduce 程序可以如此 "轻易& ...

  3. 追源索骥:透过源码看懂Flink核心框架的执行流程

    li,ol.inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-bottom:20px}dt, ...

  4. spark 源码分析之二十一 -- Task的执行流程

    引言 在上两篇文章 spark 源码分析之十九 -- DAG的生成和Stage的划分 和 spark 源码分析之二十 -- Stage的提交 中剖析了Spark的DAG的生成,Stage的划分以及St ...

  5. 透过源码看懂Flink核心框架的执行流程

    前言 Flink是大数据处理领域最近很火的一个开源的分布式.高性能的流式处理框架,其对数据的处理可以达到毫秒级别.本文以一个来自官网的WordCount例子为引,全面阐述flink的核心架构及执行流程 ...

  6. 一个 Spark 应用程序的完整执行流程

    一个 Spark 应用程序的完整执行流程 1.编写 Spark Application 应用程序 2.打 jar 包,通过 spark-submit 提交执行 3.SparkSubmit 提交执行 4 ...

  7. ThinkPHP2.2框架执行流程图,ThinkPHP控制器的执行流程

    ThinkPHP2.2框架执行原理.流程图在线手册 ThinkPHP控制器的执行流程 对用户的第一次URL访问 http://<serverIp>/My/index.php/Index/s ...

  8. PHP解释器引擎执行流程 - [ PHP内核学习 ]

    catalogue . SAPI接口 . PHP CLI模式解释执行脚本流程 . PHP Zend Complile/Execute函数接口化(Hook Call架构基础) 1. SAPI接口 PHP ...

  9. 分享一张SQLSERVER执行流程的图片

    分享一张SQLSERVER执行流程的图片 有天论坛里有人问,一时间并发连接很多,是不是可以在SSMS里配置连接池 连接池是属于客户端的,配置只能在连接字符串里配置,修改你的连接字符串,SSMS没有一个 ...

随机推荐

  1. C++程序生成.exe文件,在文件夹中运行时闪现问题

    问题描述:在IDE(此为Dev-C++)中编写C++程序,运行时会产生如下文字 但我想取消这三行的显示. 解决方法:1:在IDE中运行时,“请按任意键继续”是消失不掉的,但在该程序的保存路径下可以消灭 ...

  2. lambda表达式(c++11)

    1.概念 1)lambda表达式是一个可调用的代码单元,它由一个捕获列表.一个参数列表.一个箭头.一个返回类型.一个函数体组成: 2)可以忽略参数列表和返回类型,但必须包含捕获列表和函数体: 3)忽略 ...

  3. c# 快速排序法并记录数组索引

    在遗传算法中,只需要对适应性函数评分进行排序,没必要对所有的个体也参与排序,因为在适应性函数评分排序是可以纪律下最初的索引,排序后的索引随着元素排序而变动,这样就知道那个评分对应那个个体了: usin ...

  4. idea创建maven项目报错,Error initializing: org.codehaus.plexus.velocity.DefaultVelocityComponent@56da52a7 java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils

    学着使用idea,想创建个maven项目,但是出师不利,立马报错,贼尴尬,错误信息如下: D:\Develop\JDK\bin\java.exe -Dmaven.multiModuleProjectD ...

  5. 远程算数程序——版本v1.0

    很少有需要背诵的程序,但是从这个程序开始,标记的都是必须背诵的. 远程算数程序概述 远程算数程序比较简单,分为服务器端和客户端,客户端发送欲计算的表达式给服务器端,服务端经过计算又返回结果给客户端.如 ...

  6. linux上搭建redis

    环境centos7及redis-4.0.2.tar.gz 第一步首先在/usr/local/mypackage下mkdir redis 通过工具上传redis安装包 解压安装包 tar -zxvf r ...

  7. leetcode - [4]Sort List

    Sort a linked list in O(n log n) time using constant space complexity. 思路:采用归并排序或者快速排序 #include < ...

  8. day25(令牌机制)

    令牌机制 作用:处理页面重复提交,造成数据多次写入数据库. 使用方法: 类似于验证码机制,使用session记录一个不可能重复的值(Uuid)在访问controller时对session进行校验. / ...

  9. HDU2732一个让我debug了一晚上的题目

    思路都理解了,清晰了,就是代码不对,还是有些小地方自己注意不到,即使就在你的眼前也不易发现的那种 Description: 也是一个最大流的构图,没相出来,或者说想简单了也是标记点1 至 n * m是 ...

  10. SRM472

    这次是rng_58出的题目,思维难度还是相当大的的..很值得一做. 250pt: 题意:盒子里有n 个 potatoes,甲乙两个人,每次只能拿4的幂次方数(1,4,16...),最后不能拿的输.求谁 ...