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 ./

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/
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>兩個結點刪除。