本机环境
系统版本: macOS Sierra 10.12.2
JDK版本: java version "1.8.0_121"
Hadoop源码: Hadoop-2.7.3
一,编译前所需软件
1,Homebrew
Homebrew是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件.
- 安装:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- 常见使用命令
brew更新: brew update
软件安装: brew install xxx
软件卸载: brew uninstall xxx
软件查找: brew search xxx
已安装软件列表: brew list
打开官网brew: brew home
显示软件信息: brew info
更详细的brew介绍详见brew官网
2,CMake的安装
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。
安装CMake
brew install cmake
3,Maven的安装
Maven主要用于程序构建,并且还提供项目管理的功能
brew install maven
4,protoc的安装
protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台
详细介绍参见protoc扫盲
protoc开发者指南protoc安装
1)首先下载protoc,为了顺利编译推荐protoc2.5.0
protoc2.5.0下载地址
2)设置编译目录
./configure
3)编译整个包
make
4)安装protoc
make install
5)配置protoc的环境变量
vim ~/.bash_profile
添加
export PROTOC_HOME=/Users/zhaolei/protobuf
export PATH=$PROTOC_HOME/bin:$PATH
最详细的protoc安装见protoc源码根目录的INSTALL.txt文件
二,编译
mvn package -Pdist,native -DskipTests -Dtar
- 初次编译时间可能会比较长一些,因为需要下载一些依赖包
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:04 h
[INFO] Finished at: 2017-03-04T12:12:38+08:00
[INFO] Final Memory: 244M/1613M
[INFO] ------------------------------------------------------------------------
- 再次编译的话时间就会缩短很多,因为依赖包已经下载完毕了
[INFO] -------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] -------------------------------------------------------------------
[INFO] Total time: 10:47 min
[INFO] Finished at: 2017-03-13T22:12:47+08:00
[INFO] Final Memory: 237M/1614M
[INFO] --------------------------------------------------------------------
三,编译后的使用
源码编译后我们使用编译后的jar来运行Hadoop
例如,如果我们修改了hadoop-hdfs-project工程的代码的话
Hadoop-2.7.3-src/hadoop-hdfs-project/hadoop-hdfs/target下找到文件hadoop-hdfs-2.7.3.jar
这就是我们刚生成的jar包,我们将hadoop程序中的hadoop-hdfs-2.7.3.jar替换成该文件(在目录hadoop-2.7.3/share/hadoop/hdfs下)
接下来重新启动hadoop即可