一、Hadoop源代码组织结构
- ❑bin:Hadoop最基本的管理脚本和使用脚本所在目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用Hadoop。
- ❑etc:Hadoop配置文件所在的目录,包括core-site.xml、hdfs-site.xml、mapred-site.xml等从Hadoop 1.0继承而来的配置文件和yarn-site.xml等Hadoop 2.0新增的配置文件。
- ❑include:对外提供的编程库头文件(具体动态库和静态库在lib目录中),这些头文件均是用C++定义的,通常用于C++语言访问HDFS或者编写MapReduce程序。
- ❑lib:该目录包含了Hadoop对外提供的编程动态库和静态库,与include目录中的头文件结合使用。
- ❑libexec:各个服务对应的Shell配置文件所在目录,可用于配置日志输出目录、启动参数(比如JVM参数)等基本信息。
- ❑sbin:Hadoop管理脚本所在目录,主要包含HDFS和YARN中各类服务的启动/关闭脚本。
二、Yarn源代码组织结构
总体上看,Hadoop YARN分为5部分:API、Common、Applications、Client和Server,它们的内容具体如下:
- ❑YARN API(hadoop-yarn-api目录):给出了YARN内部涉及的4个主要RPC协议的Java 声明和ProtocolBuffers定义,这4个RPC协议分别是ApplicationClientProtocol、ApplicationMasterProtocol、ContainerManagementProtocol和ResourceManagerAdministrationProtocol,本书将在第2章对这部分内容进行详细介绍。
- ❑YARN Common(hadoop-yarn-common目录):该部分包含了YARN底层库实现,包括事件库、服务库、状态机库、Web界面库等,本书将在第3章对这部分内容进行详细介绍。
- ❑YARN Applications(hadoop-yarn-applications目录):该部分包含了两个Application编程实例,分别是distributedshell和Unmanaged AM,本书将在第4章对这部分内容进行详细介绍。
- ❑YARN Client(hadoop-yarn-client目录):该部分封装了几个与YARN RPC协议交互相关的库,方便用户开发应用程序,本书将在第4章对这部分内容进行详细介绍。
- ❑YARN Server(hadoop-yarn-server目录):该部分给出了YARN的核心实现,包括ResourceManager、NodeManager、资源管理器等核心组件的实现,本书将在第5~7章对这部分内容进行详细介绍。
hadoop 源码编译
坑:
1、 出现hadoop-common编译不过
1、Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:3.0.2:protoc (compile-protoc) on project hadoop-common: org.apache.maven.plugin.MojoExecutionException: 'protoc --version' did not return a version
————————————————
原因:没有安装protoc
- 方法1: linux环境
https://github.com/protocolbuffers/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.bz2
下载 protobuf-2.5.0.tar.bz2
2、上传服务器,解压,安装
tar jxvf protobuf-2.5.0.tar.bz2
./configure
make
make install
protoc --version
显示
libprotoc 2.5.0
然后 编译
mvn eclipse:eclipse -DskipTests
- 方法2: windows环境
下载 https://github.com/protocolbuffers/protobuf/releases/download/v2.5.0/protoc-2.5.0-win32.zip
解压。把 protoc.exe 放到 c:\windows\system32
然后 编译
mvn eclipse:eclipse -DskipTests
网友评论