摘要: 基于作业大小因素,MRAppMaster提供了三种作业运行方式:本地Local模式、Uber模式、Non-Uber模式。其中, 1、本地Local模式:通常用于调试; 2、Uber模式:为降低小作业延迟而设计的一种模式,所有任务,不管是Map Task,还是Reduce Task,均在同一个Cont 阅读全文
posted @ 2016-06-03 15:20 吉日木图 阅读(311) 评论(0) 推荐(0) 编辑
摘要: AsyncDispatcher是Yarn中事件异步分发器,它是ResourceManager中的一个基于阻塞队列的分发或者调度事件的组件,其在一个特定的单线程中分派事件,交给AsyncDispatcher中之前注册的针对该事件所属事件类型的事件处理器EventHandler来处理。每个事件类型类可能 阅读全文
posted @ 2016-06-03 15:19 吉日木图 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 我们知道,MapReduce有三层调度模型,即Job——>Task——>TaskAttempt,并且: 1、通常一个Job存在多个Task,这些Task总共有Map Task和Redcue Task两种大的类型(为简化描述,Map-Only作业、JobSetup Task等复杂的情况这里不做考虑); 阅读全文
posted @ 2016-06-03 15:18 吉日木图 阅读(276) 评论(0) 推荐(0) 编辑
摘要: v2版本的MapReduce作业中,作业JOB_SETUP_COMPLETED事件的发生,即作业SETUP阶段完成事件,会触发作业由SETUP状态转换到RUNNING状态,而作业状态转换中涉及作业信息的处理,是由SetupCompletedTransition来完成的,它主要做了四件事: 1、通过设 阅读全文
posted @ 2016-06-03 15:17 吉日木图 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 作业Job状态机维护了MapReduce作业的整个生命周期,即从提交到运行结束的整个过程。Job状态机被封装在JobImpl中,其主要包括14种状态和19种导致状态发生的事件。 作业Job的全部状态维护在类JobStateInternal中,如下所示: [java] view plain copy 阅读全文
posted @ 2016-06-03 15:16 吉日木图 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 在MRAppMaster中,当MapReduce作业初始化时,它会通过作业状态机JobImpl中InitTransition的transition()方法,进行MapReduce作业初始化相关操作,而这其中就包括: 1、调用createSplits()方法,创建分片,并获取任务分片元数据信息Task 阅读全文
posted @ 2016-06-03 15:15 吉日木图 阅读(343) 评论(0) 推荐(1) 编辑
摘要: 本文继《Yarn源码分析之MRAppMaster上MapReduce作业处理总流程(一)》,接着讲述MapReduce作业在MRAppMaster上处理总流程,继上篇讲到作业初始化之后的作业启动,关于作业初始化主体流程的详细介绍,请参见《Yarn源码分析之MRAppMaster上MapReduce作 阅读全文
posted @ 2016-06-03 15:12 吉日木图 阅读(285) 评论(0) 推荐(0) 编辑
摘要: mapreduce.job.reduce.slowstart.completedmaps是MapReduce编程模型中的一个参数,这个参数的含义是,当Map Task完成的比例达到该值后才会为Reduce Task申请资源,默认是0.05,其在接口MRJobConfig中表示如下: [java] v 阅读全文
posted @ 2016-06-03 15:11 吉日木图 阅读(1074) 评论(0) 推荐(0) 编辑
摘要: 我们知道,如果想要在Yarn上运行MapReduce作业,仅需实现一个ApplicationMaster组件即可,而MRAppMaster正是MapReduce在Yarn上ApplicationMaster的实现,由其控制MR作业在Yarn上的执行。如此,随之而来的一个问题就是,MRAppMaste 阅读全文
posted @ 2016-06-03 15:11 吉日木图 阅读(368) 评论(0) 推荐(0) 编辑
摘要: JobSubmitter,顾名思义,它是MapReduce中作业提交者,而实际上JobSubmitter除了构造方法外,对外提供的唯一一个非private成员变量或方法就是submitJobInternal()方法,它是提交Job的内部方法,实现了提交Job的所有业务逻辑。本文,我们将深入研究Map 阅读全文
posted @ 2016-06-03 15:10 吉日木图 阅读(248) 评论(0) 推荐(0) 编辑
摘要: JobSplitWriter被作业客户端用于写分片相关文件,包括分片数据文件job.split和分片元数据信息文件job.splitmetainfo。它有两个静态成员变量,如下: [java] view plain copy // 分片版本,当前默认为1 private static final i 阅读全文
posted @ 2016-06-03 15:09 吉日木图 阅读(450) 评论(0) 推荐(0) 编辑
摘要: MapReduce作业提交时连接集群是通过Job的connect()方法实现的,它实际上是构造集群Cluster实例cluster,代码如下: [java] view plain copy private synchronized void connect() throws IOException, 阅读全文
posted @ 2016-06-03 15:09 吉日木图 阅读(234) 评论(0) 推荐(0) 编辑
摘要: LocatedFileStatusFetcher是MapReduce中一个针对给定输入路径数组,使用配置的线程数目来获取数据块位置的实用类。它的主要作用就是利用多线程技术,每个线程对应一个任务,每个任务针对给定输入路径数组Path[],解析出文件状态列表队列BlockingQueue<List<Fi 阅读全文
posted @ 2016-06-03 15:08 吉日木图 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 继《Hadoop2.6.0版本MapReudce示例之WordCount(一)》之后,我们继续看MapReduce的WordCount示例,看看如何监控作业运行或查看历史记录,以及作业运行时的文件目录及列表。 1、监控作业运行或查看历史记录 在WordCount的输出内容中,有这么一句:The ur 阅读全文
posted @ 2016-06-03 15:07 吉日木图 阅读(190) 评论(0) 推荐(0) 编辑
摘要: InputFormat描述了一个Map-Reduce作业中的输入规范。Map-Reduce框架依靠作业的InputFormat实现以下内容: 1、校验作业的输入规范; 2、分割输入文件(可能为多个),生成逻辑输入分片InputSplit(往往为多个),每个输入分片InputSplit接着被分配给单独 阅读全文
posted @ 2016-06-03 15:06 吉日木图 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 一、准备测试数据 1、在本地Linux系统/var/lib/Hadoop-hdfs/file/路径下准备两个文件file1.txt和file2.txt,文件列表及各自内容如下图所示: 2、在hdfs中,准备/input路径,并上传两个文件file1.txt和file2.txt,如下图所示: 二、编写 阅读全文
posted @ 2016-06-03 15:05 吉日木图 阅读(243) 评论(0) 推荐(0) 编辑
摘要: Mapper是MapReduce编程模型中一个将输入的key/value对映射成一组中间key/value对的组件。Map是将输入记录转换成中间记录的单个任务。被转换的中间记录不需要与输入记录一样的类型。一个给定的输入对可能被映射成0个货多个输出对。Hadoop的MapReduce框架为作业中输入格 阅读全文
posted @ 2016-06-03 15:05 吉日木图 阅读(214) 评论(0) 推荐(0) 编辑
摘要: FSImage文件是HDFS中名字节点NameNode上文件/目录元数据在特定某一时刻的持久化存储文件。它的作用不言而喻,在HA出现之前,NameNode因为各种原因宕机后,若要恢复或在其他机器上重启NameNode,重新组织元数据,就需要加载对应的FSImage文件、FSEditLog文件,并在内 阅读全文
posted @ 2016-06-03 14:55 吉日木图 阅读(566) 评论(0) 推荐(0) 编辑
摘要: DataBlockScanner是运行在数据节点DataNode上的一个后台线程。它为所有的块池管理块扫描。针对每个块池,一个BlockPoolSliceScanner对象将会被创建,其运行在一个单独的线程中,为该块池扫描、校验数据块。当一个BPOfferService服务变成活跃或死亡状态,该类中 阅读全文
posted @ 2016-06-03 14:54 吉日木图 阅读(406) 评论(0) 推荐(0) 编辑
摘要: HDFS源码分析数据块复制监控线程ReplicationMonitor(二) 阅读全文
posted @ 2016-06-03 14:53 吉日木图 阅读(134) 评论(0) 推荐(0) 编辑