Hadoop 源代码组织结构
Hadoop 2.X 包括 编译好的可以直接部署的文件hadoop-{VERSION}.tar.gz; 还有源代码文件hadoop-{VERSION}-src.tar.gz , 需要 Maven 编译后才能进行部署安装. 我以 hadoop 2.7.3 为例.
1. 在Hadoop 的JAR 压缩包解压后的目录 hadoop-{VERSION} 中包含了 Hadoop全部的管理脚本和 JAR 包, ( 如hadoop-2.7.3.tar.gz, 解压后得到hadoop-2.7.3 ,如下图所示 )下面简单对这些文件或目录进行介绍:

(1) bin : Hadoop 最基本的管理脚本和使用脚本所在的目录, 这些脚本是 sbin 目录下管理脚本的基础实现, 用户可以直接使用这些脚本管理和使用Hadoop.
(2) etc : Hadoop 配置文件所在的目录, 包括core-site.xml, hdfs-site.xml, mapred-site.xml 等从 Hadoop 1.0 继承而来的配置文件和 yarn-site.xml 等 Hadoop 2.0 新增的配置文件.
(3) include : 对外提供的编译库头文件( 具体动态库和静态库在 lib 目录中 ), 这些头文件均是用 C++ 定义的, 通常用于 C++ 语言访问 HDFS 或者编写 MapReduce 程序.
(4) lib : 该目录包含了 Hadoop 对外提供的编程动态库和静态库, 与 include 目录中的头文件结合使用.
(5) libexec : 各个服务对应的 Shell 配置文件所在的目录, 可用于配置日志输出目录, 启动参数 ( 比如 JVM 参数 ) 等基本信息.
(6) sbin : Hadoop 管理脚本所在目录, 主要包含 HDFS 和 YARN 中各类服务的启动/关闭脚本.
(7) share : Hadoop 各个模块编译后的JAR包所在的目录.
2. 在 Hadoop 源代码压缩包解压后的目录 hadoop-{VERSION}-src 中,( 如hadoop-2.7.3-src.tar.gz, 解压后得到hadoop-2.7.3-src ),可看到如图2所示的目录结构, 其中, 比较重要的目录有: hadoop-common-project, hadoop-mapreduce-project, hadoop-hdfs-project 和 hadoop-yarn-project 等, 下面分别介绍这几个目录的作用.

(1) hadoop-common-project : Hadoop 基础库所在目录, 该目录中包含了其他所有模块可能会用到的基础库, 包括 RPC, Metrics, Counter 等.
(2) hadoop-mapreduce-project : MapReduce 框架的实现, 在MRv1 中, MapReduce 由编程模型( map/reduce ), 调度系统(JobTracker 和 TaskTracker ) 和数据处理引擎 ( MapTask 和 ReduceTask ) 等模块组成, 而此处的 MapReduce 则不同于 MRv1 中的实现, 它的资源调度功能由新增的 YARN 完成 ( 编程模型和数据处理引擎不变 ), 自身仅包含非常简单的任务分配功能.
(3) hadoop-hdfs-project : Hadoop 分布式文件系统实现, 不同于 Hadoop 1.0 中单 NameNode 实现, Hadoop 2.0 支持多 NameNode, 同时解决了 NameNode 单点故障问题.
(4) hadoop-yarn-project : Hadoop 资源管理系统 YARN 实现. 这是 Hadoop 2.0 新引入的分支, 该系统能够统一管理系统中的资源, 并按照一定的策略分配给各个应用程序.
Hadoop 源代码组织结构的更多相关文章
- hadoop源代码组织结构与阅读技巧
本文将介绍在 Eclipse 下阅读 Hadoop 源代码的一些技巧, 比如如何查看一个基类有哪些派生类. 一个方法被其他哪些方法调用等. 本文地址:http://www.cnblogs.com/ar ...
- 将hadoop源代码导入eclipse
1. 安装JDK,eclipse,下载hadoop源代码并解压到某一个目录. 2. 安装maven,将bin目录添加到PATH环境变量中. 3. 安装protobuf2.5.0,将protoc-2.5 ...
- eclipse下编译hadoop源代码(转)
hadoop是一个分布式存储和分布式计算的框架.在日常使用hadoop时,我们会发现hadoop不能完全满足我们的需要,我们可能需要修改hadoop的源代码并重新编译.打包. 下面将详细描述如何从sv ...
- Hadoop源代码分析
http://wenku.baidu.com/link?url=R-QoZXhc918qoO0BX6eXI9_uPU75whF62vFFUBIR-7c5XAYUVxDRX5Rs6QZR9hrBnUdM ...
- hadoop源代码解读namenode高可靠:HA;web方式查看namenode下信息;dfs/data决定datanode存储位置
点击browserFilesystem,和命令查看结果一样 当我们查看hadoop源代码时,我们看到hdfs下的hdfs-default.xml文件信息 我们查找${hadoop.tmp.dir}这是 ...
- Hadoop源代码导入Eclipse
须要进一步学习hadoop.须要看看内部源代码实现.因此须要将hadoop源代码导入都eclipse中,简单总结一下,详细过程例如以下: 首先确保已经安装了git.maven3.protobuf2.5 ...
- eclipse导入/编译hadoop源代码
1. 确保安装好JDK和eclipse 详细教程见: http://blog.csdn.net/kangdakangdaa/article/details/11364985 2. 安装 Subclip ...
- 两种配置大数据环境的方法Ambari以及hadoop源代码安装的步骤
1.Ambari安装 Ambari & HDP(Hortonworks Data Platform) ********************************************* ...
- RPC框架研究(二)Hadoop源代码-1
报名了阿里中间件性能大赛,我来说是一个全新的挑战.一切从空白学起,比赛的过程也是学习的过程 是的.想让自己学好.给自己报一个比赛吧~ 就像当初学围棋,也是报了围棋比赛,为了不至于输的太慘.一个星期里学 ...
随机推荐
- 工作总结 mvc外键 public virtual SysUser TransferUser { get; set; } 必须要加 virtual 否则 TransferUser 值为null 还要加[ForeignKey("TransferUser")] Bind 和 ScaffoldColumn(转)
[Table("T_SYS_TRANSFERUSER")] public class SysTransferUser : DbSetBase { [ForeignKey(" ...
- oracle insert/update
insert into table (,,) values (,,) where update table set (,)=(select , from ) where
- linux下nginx+php+mysql 自助环境搭建
++++++++++++++++++++++++++++++++++++++++++++++linux下nginx+php+mysql环境搭建+++++++++++++++++++++++++++++ ...
- HDU 4923 Room and Moor(推理+栈维护)
HDU 4924 Room and Moor 题目链接 题意:给定一个01组成的a序列.要求一个b序列,b序列每一个数值为[0, 1]之间的数,而且b序列为非递减序列,要求∑(ai−bi)2最小,求这 ...
- 「零秒思考」是个神话,不过这款笔记术你值得拥有zz
今天读完了赤羽雄二的<零秒思考>,作者是一位在麦肯锡公司工作了 14 年的资深顾问.依照作者的说法,「零秒思考」指的是: 瞬间便能认清现状, 瞬间便能整理问题, 瞬间便能考虑出解决办法, ...
- C++ "#"的作用和使用方法
本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/48879093 1 #和##的作用和使用 ...
- 后端程序员看前端想死(二)进入页面之后js分析
在上一篇中分析了一下以网页的组成.header中引入的乱七八糟的东西,现在进入到js中进行分析了 tuhooo啊,你是要搞前端了么? nonono,好玩,学一下 打开页面之后执行js的几种方法 直接写 ...
- 根据百度地图API获取指定地点的经纬度
做项目时,遇到对地点获取地图中对应的经纬度,作一下笔记,以备以后直接使用 package com.hpzx.data; import java.io.BufferedReader; import ja ...
- 互联网金融MySQL优化参数标准
InnoDB配置 从MySQL 5.5版本开始,InnoDB就是默认的存储引擎并且它比任何其它存储引擎的使用要多得多.那也是为什么它需要小心配置的原因. innodb_file_per_table 表 ...
- 在html中显示Flash的代码
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://down ...