本機環境
系統版本: 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即可