Hadoop 2.x源码分析
woshiliufeng
这个作者很懒,什么都没留下…
展开
-
Mapper中map方法下context.write的流程与代码详解
本文的分析基于Hadoop 2.4.0版本Mapper abstract class Context implements MapContext(接口)Reducer的abstract class Context implements ReduceContext(接口)MapContext和ReduceContext都是extends TaskInputOutputCont原创 2014-08-22 19:46:57 · 13738 阅读 · 2 评论 -
Map数量的修改-computeSplitSize
Class JobSubmittersubmitJobInternal(Jobjob, Cluster cluster)int maps = writeSplits(job,submitJobDir) private int writeSplits(org.apache.hadoop.mapreduce.JobContextjob, Path jobSubmitDi原创 2014-09-11 16:50:24 · 665 阅读 · 0 评论 -
MapReduce中跨InputSplit数据的处理
LineRecordReader类的分析InputSplit只是一个逻辑概念,每个InputSplit并没有对文件进行实际的切割,只是记录了要处理的数据的位置,首先说明InputSplit的生成:一、bytesRemaining = length,length为文件的大小,bytesRemaining初始化的值为文件的大小二、生成blockIndex,blkIndex =getBloc原创 2014-10-10 08:43:02 · 955 阅读 · 0 评论 -
partitioner得到对应的reduce
我们知道每条数据在经过Map端的处理之后都会一个对应的partition号,从而被copy到指定号的Reduce中partition区分得到对应的reducer号:collector.collect(key,value, partitioner.getPartition(key, value, partitions))其中partitions的值这么得到:partitions = jobC原创 2014-10-27 09:00:19 · 625 阅读 · 0 评论 -
Hadoop中必须配置hostname的源码分析
搭建Hadoop的时候必须配置两个文件:/etc/sysconfig/network和/etc/hosts/etc/sysconfig/network的作用是设定机器的hostname/etc/hosts的作用是主机名与ip地址的匹配,如果没有DNS服务器的话,系统上的所有网络程序都通过查询该文件解析主机名对应的ip地址在Hadoop中,各个结点先通过getLocalHost()读原创 2016-03-24 14:14:21 · 3236 阅读 · 0 评论 -
job.waitForCompletion的具体流程
Job运行是通过job.waitForCompletion(true),true表示将运行进度等信息及时输出给用户,false的话只是等待作业结束Job对象有两种状态:DEFINE和RUNNING,是通过JobState枚举类定义的public static enum JobState {DEFINE,RUNNING}当一个对象创建时,state状态被声明为DEFINEpr原创 2014-08-27 17:34:38 · 19475 阅读 · 2 评论