Mac環境下Hadoop2.7.3源碼編譯

本機環境

系統版本: 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的安裝

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即可

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容