2014-11-15 107 views
0

我目前正在嘗試爲Windows 7 x64 Plateform構建hadoop 2.5。我遵循 https://wiki.apache.org/hadoop/Hadoop2OnWindows的說明,並具有在https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2.5/BUILDING.txt中提及的所有依賴關係。我在使用以下maven命令構建Apache Hadoop Common Project時遇到錯誤 mvn package -Pdist,native-win -DskipTests -Dtar。以下是錯誤構建Hadoop 2.5時出錯

[INFO] 
[INFO] --- exec-maven-plugin:1.2:exec (compile-ms-native-dll) @ hadoop-common --- 
Build started 15-11-2014 11:08:28. 
Project "D:\hadoop-2.5.0-src\hadoop-common-project\hadoop-common\src\main\native\native.sln" on node 1 (default targets). 
ValidateSolutionConfiguration: 
    Building solution configuration "Release|x64". 
Project "D:\hadoop-2.5.0-src\hadoop-common-project\hadoop-common\src\main\native\native.sln" (1) is building "D:\hadoop-2.5.0-src\hadoop-common-project\hadoop-common\src\main\native\native.vcxproj" (2) on node 1 (default targets). 
InitializeBuildStatus: 
    Touching "..\..\..\target\native\Release\native.unsuccessfulbuild". 
ClCompile: 
    C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\CL.exe /c /I..\winutils\include /I..\..\..\target\native\javah /I"C:\Progra~1\Java\jdk1.7.0_51\include" /I"C:\Progra~1\Java\jdk1.7.0_51\include\win32" /I.\src /Zi /nologo /W3 /WX- /O2 /Oi /GL /D WIN32 /D NDEBUG /D _WINDOWS /D _USRDLL /D NATIVE_EXPORTS /D _WINDLL /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"..\..\..\target\native\Release\\" /Fd"..\..\..\target\native\Release\vcWindows7.1SDK.pdb" /Gd /TC /wd4244 /errorReport:queue src\org\apache\hadoop\io\compress\zlib\ZlibCompressor.c src\org\apache\hadoop\io\compress\zlib\ZlibDecompressor.c 
    ZlibCompressor.c 
d:\hadoop-2.5.0-src\hadoop-common-project\hadoop-common\src\main\native\src\org\apache\hadoop\io\compress\zlib\org_apache_hadoop_io_compress_zlib.h(36): fatal error C1083: Cannot open include file: 'zlib.h': No such file or directory [D:\hadoop-2.5.0-src\hadoop-common-project\hadoop-common\src\main\native\native.vcxproj] 
    ZlibDecompressor.c 
d:\hadoop-2.5.0-src\hadoop-common-project\hadoop-common\src\main\native\src\org\apache\hadoop\io\compress\zlib\org_apache_hadoop_io_compress_zlib.h(36): fatal error C1083: Cannot open include file: 'zlib.h': No such file or directory [D:\hadoop-2.5.0-src\hadoop-common-project\hadoop-common\src\main\native\native.vcxproj] 
Done Building Project "D:\hadoop-2.5.0-src\hadoop-common-project\hadoop-common\src\main\native\native.vcxproj" (default targets) -- FAILED. 
Done Building Project "D:\hadoop-2.5.0-src\hadoop-common-project\hadoop-common\src\main\native\native.sln" (default targets) -- FAILED. 

Build FAILED. 

"D:\hadoop-2.5.0-src\hadoop-common-project\hadoop-common\src\main\native\native.sln" (default target) (1) -> 
"D:\hadoop-2.5.0-src\hadoop-common-project\hadoop-common\src\main\native\native.vcxproj" (default target) (2) -> 
(ClCompile target) -> 
    d:\hadoop-2.5.0-src\hadoop-common-project\hadoop-common\src\main\native\src\org\apache\hadoop\io\compress\zlib\org_apache_hadoop_io_compress_zlib.h(36): fatal error C1083: Cannot open include file: 'zlib.h': No such file or directory [D:\hadoop-2.5.0-src\hadoop-common-project\hadoop-common\src\main\native\native.vcxproj] 
    d:\hadoop-2.5.0-src\hadoop-common-project\hadoop-common\src\main\native\src\org\apache\hadoop\io\compress\zlib\org_apache_hadoop_io_compress_zlib.h(36): fatal error C1083: Cannot open include file: 'zlib.h': No such file or directory [D:\hadoop-2.5.0-src\hadoop-common-project\hadoop-common\src\main\native\native.vcxproj] 

    0 Warning(s) 
    2 Error(s) 
+0

我們可以看到POM嗎? –

回答

1

從日誌記錄,顯然,你錯過zlib.h你設置的環境變量ZLIB_HOME包含zlib.h目錄?請注意,將PATH中的zlib.h目錄設置爲錯誤且不必要,只需要zlib bin目錄,如在建築指南中所述。https://svn.apache.org/viewvc/hadoop/common/branches/branch-2/BUILDING.txt?view=markup

另外,zlib.h需要某些頭文件不在Windows中,因此您需要下載這些頭文件並放入與zlib.h相同的文件夾中。有關更多詳細信息,請參閱是否有替代Windows的unistd.h(Visual C)?得到unistd.h和https://gist.github.com/ashelly/7776712得到getopt.h

對於Win32上的那些人(和我一樣),你可能會遇到更多的麻煩。關鍵的解決方案應該是編輯winutils和native package的.sln和.vcxprj文件,以便它們與Win32平臺兼容。