这里仅介绍一种Hadoop3.0.x版本的源码编译方式

编译过程

1. 下载源码

2. 安装依赖环境

3. 源码编译

=============================================

一、下载源码

直接从apache的归档网站中下载对应版本的源码,比如需要下载的hadoop-3.0.0-alpha2的地址为http://archive.apache.org/dist/hadoop/core/hadoop-3.0.0-alpha2/; 直接下载源码包:hadoop-3.0.0-alpha2-src.tar.gz

二、安装依赖环境

hadoop的编译需要依赖cmake、openssl等相关依赖环境,如果在编译hadoop之前没有进行必要环境的安装的话,可能会出一些异常问题,部分异常解决将博客:[Hadoop] - Cannot run program "cmake"[Hadoop] - Protocol Buffer安装; 必要服务列表为:

* Unix System ## Unix类型的操作系统
* JDK 1.8+ ## JDK至少1.8版本
* Maven 3.0 or later ## Maven环境3.x版本以上,最好将maven的源修改为国内源,默认国外源可能连接不上
* Findbugs 1.3.9 (if running findbugs) ## 可选
* ProtocolBuffer 2.5.0 ## 必须,版本不要选择错误了
* CMake 2.6 or newer (if compiling native code), must be 3.0 or newer on Mac ## 进行native编译过程中必须服务
* Zlib devel (if compiling native code) ## cmake服务需要
* openssl devel (if compiling native hadoop-pipes and to get the best HDFS encryption performance) ## cmake服务需要
* Linux FUSE (Filesystem in Userspace) version 2.6 or above (if compiling fuse_dfs)
* Internet connection for first build (to fetch all Maven and Hadoop dependencies)
* python (for releasedocs)
* bats (for shell code testing)
* Node.js / bower / Ember-cli (for YARN UI v2 building)

三、源码编译

进行源码压缩包解压,然后进入解压后的文件夹,执行相关maven命令进行源码编译操作

假设解压后,hadoop源码位于文件夹:/opt/workspaces/hadoop-3.0.0-alpha2-src中;支持的maven命令如下:

Maven build goals:

 * Clean                     : mvn clean [-Preleasedocs]
* Compile : mvn compile [-Pnative]
* Run tests : mvn test [-Pnative] [-Pshelltest]
* Create JAR : mvn package
* Run findbugs : mvn compile findbugs:findbugs
* Run checkstyle : mvn compile checkstyle:checkstyle
* Install JAR in M2 cache : mvn install
* Deploy JAR to Maven repo : mvn deploy
* Run clover : mvn test -Pclover [-DcloverLicenseLocation=${user.name}/.clover.license]
* Run Rat : mvn apache-rat:check
* Build javadocs : mvn javadoc:javadoc
* Build distribution : mvn package [-Pdist][-Pdocs][-Psrc][-Pnative][-Dtar][-Preleasedocs][-Pyarn-ui]
* Change Hadoop version : mvn versions:set -DnewVersion=NEWVERSION

Maven相关参数如下:

 Build options:

  * Use -Pnative to compile/bundle native code ## 进行本地库代码编译
* Use -Pdocs to generate & bundle the documentation in the distribution (using -Pdist) ## 进行帮助文档编译
* Use -Psrc to create a project source TAR.GZ ## 将源码打包到最后编译好的文件夹中
* Use -Dtar to create a TAR with the distribution (using -Pdist) ## 对编译好的文件进行打包操作
* Use -Preleasedocs to include the changelog and release docs (requires Internet connectivity) ## 升级文档编译
* Use -Pyarn-ui to build YARN UI v2. (Requires Internet connectivity) ## 支持yarn v2的ui

几个常用的编译命令:

1. mvn package -Pdist -DskipTests -Dtar -Dmaven.javadoc.skip=true ## 仅编译正常源码部分,对于native部分不进行编译,最终结果打包

2. mvn package -Pdist,native,docs -DskipTests -Dtar ## 编译正常部分源码、native依赖库以及帮助文档,最终结果打包

执行mvn package -Pdist,native,docs -DskipTests -Dtar命令后,等等一段时间(根据网络情况而定,一般30分钟左右能够完成编译),完成编译后,命令行输出为:

编译好的文件位于路径/opt/workspaces/hadoop-3.0.0-alpha2-src/hadoop-dist/target中,即当前目录的hadoop-dist子目录的target文件夹中,文件截图为:

==================================

至此,hadoop3.0编译完成

编译环境:

centos6.5 64位 1核2G

JDK 1.8.0_121

Maven 3.3.3

Maven源:aliyun maven源 ==> http://maven.aliyun.com/nexus/content/groups/public/

ProtocolBuffer 2.5.0

Cmake 2.8.12.2

[Hadoop] - Hadoop3.0.x编译的更多相关文章

  1. Hadoop 3.0 安装

    1.      下载Hadoop 3.0 http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.0.0/hadoop-3. ...

  2. Hadoop之Linux源代码编译

    Hadoop开篇,按惯例.先编译源代码.导入到Eclipse.这样以后要了解那块,或者那块出问题了.直接找源代码. 编译hadoop2.4.1源代码之前.必须安装Maven和Ant环境,而且Hadoo ...

  3. CentOS 7安装Hadoop 3.0.0

    最近在学习大数据,需要安装Hadoop,自己弄了好久,最后终于弄好了.网上也有很多文章关于安装Hadoop的,但总会遇到一些问题,所以把在CentOS 7安装Hadoop 3.0.0的整个过程记录下来 ...

  4. CentOS 装hadoop3.0.3 版本踩坑

    1.but there is no HDFS_NAMENODE_USER defined. Aborting operation. [root@xcff sbin]# ./start-dfs.sh S ...

  5. hadoop-3.0.0 配置中的 yarn.nodemanager.aux-services 项

    在hadoop-3.0.0-alpha4 的配置中,yarn.nodemanager.aux-services项的默认值是“mapreduce.shuffle”,但如果在hadoop-2.2 中继续使 ...

  6. hadoop-3.0.0-alpha4启动

    全部启动或者全部停止(注意:第一次启动需要先格式,以后就不需要格式了,不能多次格式化) 1.启动 [root@master sbin]# pwd /usr/hadoop/hadoop-3.0.0-al ...

  7. 【Linux下Hadoop-eclipse-plus-3.2.0】编译Hadoop连接eclipse的插件遇见的一系列错误,崩溃的操作

    2019-09-02 23:35:22 前言:首先,我想吐槽下自己,居然花费了4到5个夜晚和中午的时间来做这件事情,直到刚才才顺利解决,我也挺佩服自己的! 我在这个过程中参考其他人的博客,非常感谢他们 ...

  8. 在Ubuntu 64位OS上运行hadoop2.2.0[重新编译hadoop]

    最近在学习搭建Hadoop, 我们从Apache官方网站直接下载最新版本Hadoop2.2.官方目前是提供了linux32位系统可执行文件,结果运行时发现提示 “libhadoop.so.1.0.0 ...

  9. flink编译支持CDH6.2.0(hadoop3.0.0)

    准备工作 因为在编译时需要下载许多依赖包,在执行编译前最好先配置下代理仓库 <mirrors> <mirror> <id>nexus-aliyun</id&g ...

随机推荐

  1. HTTP协议快速入门

    一.定义 The Hypertext Transfer Protocol (HTTP) is an application protocol for distributed, collaborativ ...

  2. spring整合mybatis,springMVC的0配置文件方式

    0配置文件的形式主要是采用spring3.0提供的@configuration注解和spring容器在启动的时候会加载实现了WebApplicationInitializer的类,并调用其onStar ...

  3. JS拖动技术--- 关于setCapture

    <script type="text/javascript"> <!-- window.onload=function(){   objDiv = documen ...

  4. QStandardItemModel的简单应用

    The QStandardItemModel class provides a generic model for storing custom data. QStandardItemModel提供了 ...

  5. 主成分分析PCA(转载)

    主成分分析PCA 降维的必要性 1.多重共线性--预测变量之间相互关联.多重共线性会导致解空间的不稳定,从而可能导致结果的不连贯. 2.高维空间本身具有稀疏性.一维正态分布有68%的值落于正负标准差之 ...

  6. 使用(Drawable)资源——LayerDrawable资源

    与StateListDrawable有点类似,LayerDrawable也可包含一个Drawable数组,因此系统将会按这些Drawable对象的数组顺序来绘制它们,索引最大的Drawable对象将会 ...

  7. .hive命令的3种调用方式 以及源码

    安装 hive后 在命令行 如输入 Hive -h -后面随便输入.让让他报错进入命令提示界面 -d 定义一个变量 两种形式 -d A=B or --define A=B -e 执行sql语句  hi ...

  8. MyBatis 一级、二级缓存

    一级 默认session就有一级缓存,session有C/U/D操作或者session.clearCache();session.commit();都会清空缓存: 二级在mapper.xml中添加&l ...

  9. Canvas贝塞尔三级曲线

    两个控制点 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  10. iOS多线程的七大对象理解

    1用面向对象的观点去理解,进程和线程,同步和异步,并行和串行,还有主线程的主队列,的七者关系 进程:程序不运行时就是一堆代码,运行时就是一堆的进程的组合,进程是程序运行的基本单位. 线程:线程是进程的 ...