[Hadoop] - Hadoop3.0.x编译
这里仅介绍一种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编译的更多相关文章
- Hadoop 3.0 安装
1. 下载Hadoop 3.0 http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.0.0/hadoop-3. ...
- Hadoop之Linux源代码编译
Hadoop开篇,按惯例.先编译源代码.导入到Eclipse.这样以后要了解那块,或者那块出问题了.直接找源代码. 编译hadoop2.4.1源代码之前.必须安装Maven和Ant环境,而且Hadoo ...
- CentOS 7安装Hadoop 3.0.0
最近在学习大数据,需要安装Hadoop,自己弄了好久,最后终于弄好了.网上也有很多文章关于安装Hadoop的,但总会遇到一些问题,所以把在CentOS 7安装Hadoop 3.0.0的整个过程记录下来 ...
- CentOS 装hadoop3.0.3 版本踩坑
1.but there is no HDFS_NAMENODE_USER defined. Aborting operation. [root@xcff sbin]# ./start-dfs.sh S ...
- hadoop-3.0.0 配置中的 yarn.nodemanager.aux-services 项
在hadoop-3.0.0-alpha4 的配置中,yarn.nodemanager.aux-services项的默认值是“mapreduce.shuffle”,但如果在hadoop-2.2 中继续使 ...
- hadoop-3.0.0-alpha4启动
全部启动或者全部停止(注意:第一次启动需要先格式,以后就不需要格式了,不能多次格式化) 1.启动 [root@master sbin]# pwd /usr/hadoop/hadoop-3.0.0-al ...
- 【Linux下Hadoop-eclipse-plus-3.2.0】编译Hadoop连接eclipse的插件遇见的一系列错误,崩溃的操作
2019-09-02 23:35:22 前言:首先,我想吐槽下自己,居然花费了4到5个夜晚和中午的时间来做这件事情,直到刚才才顺利解决,我也挺佩服自己的! 我在这个过程中参考其他人的博客,非常感谢他们 ...
- 在Ubuntu 64位OS上运行hadoop2.2.0[重新编译hadoop]
最近在学习搭建Hadoop, 我们从Apache官方网站直接下载最新版本Hadoop2.2.官方目前是提供了linux32位系统可执行文件,结果运行时发现提示 “libhadoop.so.1.0.0 ...
- flink编译支持CDH6.2.0(hadoop3.0.0)
准备工作 因为在编译时需要下载许多依赖包,在执行编译前最好先配置下代理仓库 <mirrors> <mirror> <id>nexus-aliyun</id&g ...
随机推荐
- java 读写excle
2014-04-16 20:38:20 java读写excel 晚上打算研究如何c来编写
- 使用django-compressor压缩静态文件
Reference:http://blog.csdn.net/permike/article/details/52355095 在网站开发阶段,对于静态资源文件比如JS,CSS等文件都是未经过压缩合并 ...
- delphi下实现控制其它窗体中的控件代码模板(delphi 7安装程序)
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- PHP 一致性哈希算法的一种简单实现
在分布式系统中,如果某业务可以由多个相同的节点处理,很容易想到用HASH的方式将业务请求分散到这些节点处理,比如memecache缓存等分 布式集群应用,如果只是简单的使用,不涉及用户用户状态等信息, ...
- 去掉删除discuz x3.2 的-Powered by Discuz!
如图discuz论坛 网站标题栏的尾巴powered by discuz!是不是很想删除呢,特别是为什么会剩下短线呢?下面就叫你如何准确删除或者修改. 工具/原料 8UFTP(使用自己熟悉的网站文件上 ...
- WinAPI: GetClassName - 获取指定窗口的类名
WinAPI: GetClassName - 获取指定窗口的类名 //声明: GetClassName( hWnd: HWND; {指定窗口句柄} lpClassName: PChar; {缓冲区} ...
- Memo 的当前行、当前列与当前字符
procedure TForm1.Memo1Click(Sender: TObject); begin Text := Format('当前列:%d, 当前行:%d', [Memo1.CaretP ...
- 关于自己封装Web前端框架的思考和探索
一.引言 首先这些年关于前端技术层出不穷,从最早的只用js做简单验证,到现在发现好像大前端已经无所不能了的感觉.特别是为了降低前端开发复杂度,涌现了一大批 的MVC/MVVM模式的前端框架,不停了刷新 ...
- [ Android 五种数据存储方式之四 ] —— ContentProvider存储数据
Android这个系统和其他的操作系统还不太一样,我们需要记住的是,数据在Android当中是私有的,当然这些数据包括文件数据和数据库数据以及一些其他类型的数据.那这个时候有读者就会提出问题,难道两个 ...
- Canvas globalCompositeOperation API
参考: http://www.cnblogs.com/jenry/archive/2012/02/11/2347012.html <!DOCTYPE html> <html lang ...