Hadoop2.x 源代码组织结构

在 Hadoop 的 JAR 压缩包解压后的目录 hadoop-{VERSION} 中包含了 Hadoop 全部的管理脚本和 JAR 包,下面简单对这些文件或目录进行介绍。


(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 包所在目录。


在 Hadoop 源代码压缩包解压后的目录 hadoop-{VERSION}-src 中,其中,比较重要的目录有 :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 新引入的分支,该系统能够统一管理系统中的资源,并按照一定的策略分配给各个应用程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值