这里仅介绍一种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. 【滚动数组】【状压dp】Gym - 100956F - Colored Path

    f(i,j,S)表示到(i,j),且经由的路径上的颜色集合为S的价值的最小值,从上方和左方转移过来即可. 要注意,内存不足,需要滚动数组优化,即使用了map,还是需要. 路径输出的时候,可以再跑一遍d ...

  2. Nodejs之package.json介绍说明

    规范的package.json及package.json中各属性的作用. "name":包名. "description":包简介. "author& ...

  3. iOS 参考 网络书籍

    网络图书: Xcode中的Project和Target: http://book.51cto.com/art/201307/402283.htm

  4. 会话Cookie及session的关系(Cookie & Session)

    会话Cookie及session的关系(Cookie & Session) 在通常的使用中,我们只知道session信息是存放在服务器端,而cookie是存放在客户端.但服务器如何使用sess ...

  5. 判断移动端设备: navigator.userAgent.toLowerCase()

    判断你的浏览设备: navigator.userAgent.toLowerCase(); (返回当前用户所使用的是什么浏览器,将获得的信息变成小写) function browserRedirect( ...

  6. ThinkPHP创建应用的一般开发流程

    使用ThinkPHP创建应用的一般开发流程是: 系统设计.创建数据库和数据表:(可选) 项目命名并创建项目入口文件,开启调试模式: 完成项目配置: 创建项目函数库:(可选) 开发项目需要的扩展(模式. ...

  7. myeclipse 2014破解

    开始安装的时候已经进行了破解,不知道为什么还是会出现问题,按照下面说的才可以了: http://blog.sina.com.cn/s/blog_7f5862570101oxyv.html

  8. [nRF51822] 16、nRF51822的随机数生成器,及随机数生成器的一些知识(可以帮您补补随机数发生器的知识)

    1.前言 随机数生成器在通信.加密.图像传输等领域应用广泛,且一般起到关键性作用.我在最近设计的一个近场射频通信协议的碰撞避退算法的过程中,便对此有深深体会. 2.伪随机数发生器 随机数发生器一般包括 ...

  9. 【python基础】之list列表

    python提供了一个被称为列表的数据类型,他可以存储一个有序的元素集合. 记住:一个列表可以存储任意大小的数据集合.列表是可变对象,有别于字符串str类,str类是不可变对象. 1.创建一个列表 l ...

  10. 关于Coursera上的斯坦福机器学习课程的编程作业提交问题

    学习Coursera上的斯坦福机器学习课程的时候,需要向其服务器提交编程作业,我遇到如下问题: 'Submission failed: unexpected error: urlread: Peer ...