编译Hadoop源码
背景: 在閱讀hadoop源代碼過程中會發現部分類或者函數無法找到,這是由于Hadoop2.0使用了Protocol Buffers定義了RPC協議,
而這些Protocol Buffers文件在Maven編譯源代碼才會生成對應的java類,因此若其他類在源代碼中引用這些類則暫時無法找到。
解決辦法就是先對hadoop源碼進行編譯,再導入eclipse工程。
一、基礎軟件:
| 軟件 | 下載地址 | 推薦版本 |
| JDK | http://www.oracle.com/technetwork/java/javase/downloads/index.html | 1.7以上 |
| Maven | https://maven.apache.org/download.cgi | 3.0.2以上 |
| Eclipse | https://eclipse.org/downloads/ | ? |
| Protocol Buffers | https://github.com/google/protobuf/releases | 2.5.0 |
?
?
?
?
?
?
注: Protocol Buffers在全文中簡寫成PB
二、編譯Hadoop源碼
在Linux環境下編譯源碼之前,需要進行以下準備:
- 確保安裝的Maven版本在3.0.2以上
- 確保Protocol Buffers安裝版本為2.5.0 ?
1、安裝PB
參照site:?https://github.com/google/protobuf/blob/master/src/README.md
從源代碼編譯的protobuf,需要以下工具:
>?autoconf
>?automake
>?libtool
>?curl (used to download gmock)
>?make
>?g++
>?unzip
(1). 在ubuntu下可通過以下命令安裝:
$?sudo apt-get install autoconf automake libtool curl make g++ unzip
(2). 生成配置腳本
進入PB解壓目錄 ?cd {PB_HOME}
執行: ?./autogen.sh
此命令將下載gmock源(這是用于C協議緩沖單元測試)到當前目錄并且運行automake,autoconf等來生成配置腳本和各種模板的makefile
(3). 編譯
$ ./configure
$ make
$ make check
$ sudo make install
$ sudo ldconfig # refresh shared library cache.2、編譯所有源碼
在Hadoop安裝根目錄下執行以下命令
mvn install -DskipTests
? 注: 如果一次不成功,請多試幾次。
?
?
轉載于:https://www.cnblogs.com/yinchengzhe/p/5503823.html
總結
以上是生活随笔為你收集整理的编译Hadoop源码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 4.Android loader详解__
- 下一篇: 随笔总和