Hadoop 用了2年多了.从最初一起创业的11人20台服务器集群到后来独立搭建基于hadoop nutch的搜索引擎并商用化 到现在也2年了.这两年来应用了很多新技术也经历了很多,从数据仓库的Hive pig 到mapreduce的编码去解决算法或是etl的问题 等等都离不开hadoop.觉得用了2年多也到了该总结的时候了.故此想重新翻译hadoop 源码,按照不同的类方法的不同作用.也希望读到这篇博客的人和我一起 经历这一段岁月,一起讲hadoop的核心结合实用主义 传递给中国的开源软件使用者。
下图为 jobClient 提交到 Mapreduce 作业到JobTracker 核心逻辑。
1.JobProfile类:
job的描述性元语,相当于bean的功能.其中包括:
user job的提交者
jobid 唯一的标志一个job的ID ->JobID 类生成:
--jobid 包括两部分.第一部分代表jobTracker 标志,第二部分代表时间.如果是本地job(local Job) 则为local,最后为 job数量,代表是第 几个job
jobFile job运行时文件
url 定位该条job的描述性信息url
name job的名字
queueName job 队列名称,
2.JobStatus 类:
-- job的几种状态
running
successed
failed
prep
killed
3.copyAndConfigureFiles() 方法:
1.JobSubmissionFiles 工具类 负责管理 job 相关文件:
conf 路径
jar 包路径
分布式缓存(distributed cache files(archives,libjars,)) 路径
拷贝job执行文件到 job执行目录
4.writeNewSplits()
mapred.max.split.size 设置最小输入分片
mapred.max.split.size 最大分片的大小
计算输入分片
FileInputFormat ->getSplits()->computeSplitSize()方法
分片计算法:
1.首先 获取文件的长度 length
2.获取blocksize
3. 获取最 大分片大小 getMaxSplitSize
4.取 maxsize 和 block 中 的较小者 A
5. 取 最新分片和 A 中的最大者 作为分片大小
6.如果文件长度 length/分片大小 >1.1 则调用FileSplit 分片
FileInputFormat 类:
setInputPaths((Job job, Path... inputPaths) 可添加多个输入路径
相关推荐
Hadoop源码分析(完整版),详细分析了Hadoop源码程序,为学习Hadoop的人提供很好的入门指导
学习Hadoop源码过程中做的源码分析,共享一下,PPT中有我的邮箱,可以互相探讨。Hadoop源码分析(client端提交job到rm端)
Hadoop源码分析视频下载
caibinbupt的Hadoop源码分析完整版,包括 HDFS 和 MapReduce。 HDFS: 41章 MapReduce: 14章
Hadoop源码分析完整版..
Hadoop源码分析,Map-Reduce作业提交运行入手分析这个过程中涉及到的Hadoop源码架构,此外本文基于的Hadoop版本是2.6.4
hadoop 源码分析 文档
赠送jar包:hadoop-mapreduce-client-jobclient-2.6.5.jar; 赠送原API文档:hadoop-mapreduce-client-jobclient-2.6.5-javadoc.jar; 赠送源代码:hadoop-mapreduce-client-jobclient-2.6.5-sources.jar; 赠送...
Hadoop源代码分析(完整版).pdf
大数据处理系统 hadoop源码分析 基于hadoop2.6
hadoop源码解析-Job提交.pdf
hadoop源码分析hadoop源码分析
NULL 博文链接:https://hadoopcn.iteye.com/blog/1165888
一个比较详细的hadoop源码分析文档,内容很详实,包括hadoop、hdfs、hive等等等
Hadoop源码分析.rar 有助于hadoop学习者进一步学习!! 非常好的资源!!
自己写的PPT,详解Hadoop源码及其相关流程
Hadoop的源代码分析总共55章,包括HDFS: 41章、MapReduce: 14章。
NULL 博文链接:https://zqhxuyuan.iteye.com/blog/1879292