Hadoop 源碼編譯導出


https://svn.apache.org/repos/asf/hadoop/common/branches/branch-trunk-win/BUILDING.txt

http://www.srccodes.com/p/article/38/build-install-configure-run-apache-hadoop-2.2.0-microsoft-windows-os

 $ mvn package -Pdist -DskipTests -Dtar 

錯誤:

1.錯誤: 類重復: org.apache.hadoop.ipc.protobuf.TestProtos....

原因是在導入eclipse是手動生成的文件和hadoop的maven自動配置出現沖突。

將手動添加的部分刪除。

可在源碼同級建立臨時文件夾執行如下bat

mv ../hadoop-2.4.0-src/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/protobuf/TestProtos.java ./

mv ../hadoop-2.4.0-src/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/serializer/avro/AvroRecord.java ./

mv ../hadoop-2.4.0-src/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/protobuf/TestRpcServiceProtos.java ./
move out
mv TestProtos.java ../hadoop-2.4.0-src/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/protobuf/

mv AvroRecord.java ../hadoop-2.4.0-src/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/serializer/avro/

mv TestRpcServiceProtos.java ../hadoop-2.4.0-src/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/protobuf/
move back

 

2.內部專用 API, 可能會在未來發行版中刪除

可能是java版本問題。java8不行,換成了java6

 

3.cp: cannot stat .... File or path name too long

源碼最好直接放到分區下的一級目錄。目錄名也可以重命名的短一點

 

4.common中的native編譯可能出錯

這個可以參考http://www.tuicool.com/articles/M3MRvea。

打開“開始”--“所有程序”--“Microsoft Windows SDK v7.1”--“Windows SDK 7.1 Command Prompt”,進入VC++的命令行工具(一定要從此處進入方可順利編譯Hadoop源代碼,記着是以管理員身份運行)

但是還是失敗,這些貌似是與操作系統相關的c代碼,目前不需要變更,暫時不用編譯。

可以修改:\hadoop-common-project\hadoop-common\pom.xml

在project>profiles>profile>id=native-win的profile中將<properties>和<build>兩個結點刪除。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM