win7 64 eclipse 匯入hadoop2.6.0 原始碼

hackeruncle發表於2016-02-11
Software:連結: 密碼: t8ti
一、安裝ant、maven
(1)首先下載ant,maven的安裝包
apache-ant-1.9.4-bin.zip
apache-maven-3.3.9-bin.zip

(2)配置環境變數
新增系統環境變數
ANT_HOME=D:\software\apache-ant-1.9.4
MAVEN_HOME=D:\software\apache-maven-3.3.9
Path, 將 " ;%ANT_HOME%\bin;%MAVEN_HOME%\bin " ,引號追加在Path的路徑後面


(3)進入cmd,驗證是否成功
ant -version
mvn -version

二、安裝protoc

1、首先下載protobuf-2.5.0.tar.gz 和 protoc-2.5.0-win32.zip 兩個包。分別解壓到各自目錄
2.將protoc-2.5.0-win32中的protoc.exe複製到c:\windows\system32中。
3.將protoc.exe檔案複製到解壓後的D:\software\protobuf-2.5.0\src目錄中.
4.cmd進入D:\software\protobuf-2.5.0\java 目錄
  執行mvn package命令.
## 生成protobuf-java-2.5.0.jar檔案(位於target目錄中)
      
驗證:
protoc --version
libprotoc 2.5.0


三、下載hadoop原始碼
1.下載hadoop-2.6.0-src.tar.gz,解壓至當前目錄D:\software\
2.cmd命令列,進入D:\software\hadoop-2.6.0-src\hadoop-maven-plugins,執行mvn install 命令
3.cmd命令列,進入D:\software\hadoop-2.6.0-src,執行mvn eclipse:eclipse -DskipTests 命令

四、匯入hadoop原始碼
透過eclipse中的Import將原始碼匯入到eclipse中

五、Error

error#1. hadoop-streaming裡面的build path有問題,顯示/root/workspace/hadoop-2.2.0-src/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/conf(missing)

解決辦法,remove掉引用就好。

error#2. hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/testdfsclientfailover.java中報sun.net.spi.nameservice.nameservice錯誤,這是一個需要import的包,存在於openjdk中,在oracle jdk中沒找到,需要下載一個。nameservice是一個介面,在網上找一個nameservice放到該包中就好。

error#3/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineeditsviewer/xmleditsvisitor.java裡面顯示 
import com.sun.org.apache.xml.internal.serialize.outputformat; 
import com.sun.org.apache.xml.internal.serialize.xmlserializer; 
失敗,這是由於eclipse的強檢查原則,開啟java -> compiler -> errors/warnings and under "deprecated and restricted api" change the setting of "forbidden reference (access rules)" 將error級別調整到warning級別就好。

error#4/hadoop-common/src/test/java/org/apache/hadoop/io/serializer/avro/testavroserialization.java顯示沒有avrorecord類,在網上搜尋到avrorecord類放入到同級包中就行了。 

error#5org.apache.hadoop.ipc.protobuf包是空的,需要在/hadoop-common/target/generated-sources/java中找到profobuf複製到/hadoop-common/src/test/java中就好了. 同時包裡面還缺少了以下三個引用,在上找一下,把hadoop-common2.2.0的相應檔案下下來匯入。

org.apache.hadoop.ipc.protobuf.testprotos.echorequestproto;
org.apache.hadoop.ipc.protobuf.testprotos.echoresponseproto;
org.apache.hadoop.ipc.protobuf.testrpcserviceprotos.testprotobufrpcproto;

error#6. /hadoop-auth/org/apache/hadoop/security/authentication/client/authenricatortestcase.java中顯示server.start()和server.stop()錯誤,還沒找到原因所在,待檢查~~~



參考:
       

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30089851/viewspace-1987828/,如需轉載,請註明出處,否則將追究法律責任。

相關文章