日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何编译Apache Hadoop2.2.0源代码

發布時間:2025/5/22 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何编译Apache Hadoop2.2.0源代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自(原文圖片已丟失,本文修復圖片,重新排版,并更正部分原文錯誤):http://www.superwu.cn/2013/12/26/913

歡迎和大家交流技術相關問題:
郵箱: jiangxinnju@163.com
博客園地址: http://www.cnblogs.com/jiangxinnju
GitHub地址: https://github.com/jiangxincode
知乎地址: https://www.zhihu.com/people/jiangxinnju

Hadoop2的學習資料很少,只有官網的少數文檔。如果想更深入的研究hadoop2,除了僅看官網的文檔外,還要學習如何看源碼,通過不斷的調試跟蹤源碼,學習hadoop的運行機制。

1.安裝CentOS

我使用的是CentOS 6.5,下載地址是: http://mirror.neu.edu.cn/centos/6.5/isos/x86_64/, 選擇CentOS-6.5-x86_64-bin-DVD1.iso下載,注意是64位的,大小是4GB,需要下載一段時間的。其實6.x的版本都可以,不一定是6.5。

我使用的是VMWare虛擬機,分配了2GB內存,20GB磁盤空間。內存太小,會比較慢;磁盤太小,編譯時可能會出現空間不足的情況。上述不是最低配置,根據自己的機器配置修改吧。還有,一定要保持linux聯網狀態。

以下是安裝各種軟件,我把軟件下載后全部復制到/usr/local目錄下,以下命令執行的路徑是在/usr/local目錄下。請讀者在閱讀時,一定要注意路徑。

2.安裝JDK

hadoop是java寫的,編譯hadoop必須安裝jdk。

從Oracle官網下載jdk,下載地址是: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html, 選擇jdk-7u45-linux-x64.tar.gz下載。

執行以下命令解壓縮jdk

  tar -zxvf jdk-7u45-linux-x64.tar.gz

會生成一個文件夾jdk1.7.0_45,然后設置在環境變量中。

執行命令 vi /etc/profile,增加以下內容到配置文件中,結果顯示如下

保存退出文件后,執行以下命令

  source /etc/profilejava -version

如果看到下面的顯示信息,證明配置正確了。

3.安裝maven

hadoop源碼是使用maven組織管理的,必須下載maven。從maven官網下載,下載地址是: http://maven.apache.org/download.cgi, 選擇apache-maven-3.0.5-bin.tar.gz下載,不要選擇3.1下載。

執行以下命令解壓縮jdk

tar -zxvf apache-maven-3.0.5-bin.tar.gz

會生成一個文件夾apache-maven-3.0.5,然后設置環境變量中。

執行命令vi /etc/profile,編輯結果如下圖所示

保存退出文件后,執行以下命令

  source /etc/profilemvn -version

如果看到下面的顯示信息,證明配置正確了。

4.安裝findbugs(可選步驟)

findbugs是用于生成文檔的。如果不需要編譯生成文檔,可以不執行該步驟。從findbugs官網下載findbugs,下載地址是: http://sourceforge.jp/projects/sfnet_findbugs/releases/, 選擇findbugs-3.0.0-dev-20131204-e3cbbd5.tar.gz下載。

執行以下命令解壓縮jdk

tar -zxvf findbugs-3.0.0-dev-20131204-e3cbbd5.tar.gz

會生成一個文件夾findbugs-3.0.0-dev-20131204-e3cbbd5,然后設置環境變量中。

執行命令vi /etc/profile,編輯結果如下圖所示

保存退出文件后,執行以下命令

  source /etc/profilefindbugs -version

  如果看到下面的顯示信息,證明配置正確了。

5.安裝protoc

hadoop使用protocol buffer通信,從protoc官網下載protoc,下載地址是: https://code.google.com/p/protobuf/downloads/list, 選擇protobuf-2.5.0.tar.gz下載。

為了編譯安裝protoc,需要下載幾個工具,順序執行以下命令

  yum install gccyum intall gcc-c++yum install make

如果操作系統是CentOS6.5那么gcc和make已經安裝了。其他版本不一定。在命令運行時,需要用戶經常輸入“y”。

然后執行以下命令解壓縮protobuf

  tar -zxvf protobuf-2.5.0.tar.gz

會生成一個文件夾protobuf-2.5.0,執行以下命令編譯protobuf。

  cd protobuf-2.5.0./configure --prefix=/usr/local/protoc/make && make install

只要不出錯就可以了。

執行完畢后,編譯后的文件位于/usr/local/protoc/目錄下,我們設置一下環境變量

執行命令vi /etc/profile,編輯結果如下圖所示

保存退出文件后,執行以下命令

  source /etc/profileprotoc --version

如果看到下面的顯示信息,證明配置正確了。

6.安裝其他依賴

順序執行以下命令

  yum install cmakeyum install openssl-develyum install ncurses-devel

  安裝完畢即可。

7.編譯Hadoop2.2源碼

從hadoop官網下載2.2穩定版,下載地址是: http://apache.fayea.com/apache-mirror/hadoop/common/stable2/, 下載hadoop-2.2.0-src.tar.gz下載。

執行以下命令解壓縮jdk

  tar -zxvf hadoop-2.2.0-src.tar.gz

會生成一個文件夾 hadoop-2.2.0-src。源代碼中有個bug,這里需要修改一下,編輯目錄/usr/local/hadoop-2.2.0-src/hadoop-common-project/hadoop-auth中的文件pom.xml,執行以下命令

  gedit pom.xml

在第55行下增加以下內容

<dependency><groupId>org.mortbay.jetty</groupId><artifactId>jetty-util</artifactId><scope>test</scope></dependency>

保存退出即可。

上述bug詳見: https://issues.apache.org/jira/browse/HADOOP-10110, 在hadoop3中修復了,離我們太遙遠了。

好了,現在進入到目錄/usr/local/hadoop-2.2.0-src中,執行命令

  mvn package -DskipTests -Pdist,native,docs

如果沒有執行第4步,把上面命令中的docs去掉即可,就不必生成文檔了。

該命令會從外網下載依賴的jar,編譯hadoop源碼,需要花費很長時間,你可以吃飯了。

在等待n久之后,可以看到如下的結果:

[INFO] Apache Hadoop Main ................................ SUCCESS [6.936s] [INFO] Apache Hadoop Project POM ......................... SUCCESS [4.928s] [INFO] Apache Hadoop Annotations ......................... SUCCESS [9.399s] [INFO] Apache Hadoop Assemblies .......................... SUCCESS [0.871s] [INFO] Apache Hadoop Project Dist POM .................... SUCCESS [7.981s] [INFO] Apache Hadoop Maven Plugins ....................... SUCCESS [8.965s] [INFO] Apache Hadoop Auth ................................ SUCCESS [39.748s] [INFO] Apache Hadoop Auth Examples ....................... SUCCESS [11.081s] [INFO] Apache Hadoop Common .............................. SUCCESS [10:41.466s] [INFO] Apache Hadoop NFS ................................. SUCCESS [26.346s] [INFO] Apache Hadoop Common Project ...................... SUCCESS [0.061s] [INFO] Apache Hadoop HDFS ................................ SUCCESS [12:49.368s] [INFO] Apache Hadoop HttpFS .............................. SUCCESS [41.896s] [INFO] Apache Hadoop HDFS BookKeeper Journal ............. SUCCESS [41.043s] [INFO] Apache Hadoop HDFS-NFS ............................ SUCCESS [9.650s] [INFO] Apache Hadoop HDFS Project ........................ SUCCESS [0.051s] [INFO] hadoop-yarn ....................................... SUCCESS [1:22.693s] [INFO] hadoop-yarn-api ................................... SUCCESS [1:20.262s] [INFO] hadoop-yarn-common ................................ SUCCESS [1:30.530s] [INFO] hadoop-yarn-server ................................ SUCCESS [0.177s] [INFO] hadoop-yarn-server-common ......................... SUCCESS [15.781s] [INFO] hadoop-yarn-server-nodemanager .................... SUCCESS [40.800s] [INFO] hadoop-yarn-server-web-proxy ...................... SUCCESS [6.099s] [INFO] hadoop-yarn-server-resourcemanager ................ SUCCESS [37.639s] [INFO] hadoop-yarn-server-tests .......................... SUCCESS [4.516s] [INFO] hadoop-yarn-client ................................ SUCCESS [25.594s] [INFO] hadoop-yarn-applications .......................... SUCCESS [0.286s] [INFO] hadoop-yarn-applications-distributedshell ......... SUCCESS [10.143s] [INFO] hadoop-mapreduce-client ........................... SUCCESS [0.119s] [INFO] hadoop-mapreduce-client-core ...................... SUCCESS [55.812s] [INFO] hadoop-yarn-applications-unmanaged-am-launcher .... SUCCESS [8.749s] [INFO] hadoop-yarn-site .................................. SUCCESS [0.524s] [INFO] hadoop-yarn-project ............................... SUCCESS [16.641s] [INFO] hadoop-mapreduce-client-common .................... SUCCESS [40.796s] [INFO] hadoop-mapreduce-client-shuffle ................... SUCCESS [7.628s] [INFO] hadoop-mapreduce-client-app ....................... SUCCESS [24.066s] [INFO] hadoop-mapreduce-client-hs ........................ SUCCESS [13.243s] [INFO] hadoop-mapreduce-client-jobclient ................. SUCCESS [16.670s] [INFO] hadoop-mapreduce-client-hs-plugins ................ SUCCESS [3.787s] [INFO] Apache Hadoop MapReduce Examples .................. SUCCESS [17.012s] [INFO] hadoop-mapreduce .................................. SUCCESS [6.459s] [INFO] Apache Hadoop MapReduce Streaming ................. SUCCESS [12.149s] [INFO] Apache Hadoop Distributed Copy .................... SUCCESS [15.968s] [INFO] Apache Hadoop Archives ............................ SUCCESS [5.851s] [INFO] Apache Hadoop Rumen ............................... SUCCESS [18.364s] [INFO] Apache Hadoop Gridmix ............................. SUCCESS [14.943s] [INFO] Apache Hadoop Data Join ........................... SUCCESS [9.648s] [INFO] Apache Hadoop Extras .............................. SUCCESS [5.763s] [INFO] Apache Hadoop Pipes ............................... SUCCESS [16.289s] [INFO] Apache Hadoop Tools Dist .......................... SUCCESS [3.261s] [INFO] Apache Hadoop Tools ............................... SUCCESS [0.043s] [INFO] Apache Hadoop Distribution ........................ SUCCESS [56.188s] [INFO] Apache Hadoop Client .............................. SUCCESS [10.910s] [INFO] Apache Hadoop Mini-Cluster ........................ SUCCESS [0.321s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 40:00.444s [INFO] Finished at: Thu Dec 26 12:42:24 CST 2013 [INFO] Final Memory: 109M/362M [INFO] ------------------------------------------------------------------------

好了,編譯完成了。

編譯后的代碼在/usr/local/hadoop-2.2.0-src/hadoop-dist/target下面,如下圖。

如果有的同學操作失敗,可以直接下載我已經安裝好的鏡像文件,鏈接: http://pan.baidu.com/share/link?shareid=956286972&uk=2032187724, 密碼:n0kf

轉載于:https://www.cnblogs.com/jiangxinnju/p/6286849.html

總結

以上是生活随笔為你收集整理的如何编译Apache Hadoop2.2.0源代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。