构建Hadoop 2.5时出错

时间:2014-11-15 05:45:46

标签: java maven hadoop

我目前正在尝试为windows 7 x64平台构建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。以下是错误

[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)

1 个答案:

答案 0 :(得分:1)

从日志中,很明显你错过了zlib.h你是否将env var ZLIB_HOME设置为包含zlib.h的目录?请注意,将zlib.h目录放在PATH中是错误的并且没有必要,只需要zlib bin目录,如构建指南https://svn.apache.org/viewvc/hadoop/common/branches/branch-2/BUILDING.txt?view=markup中所述

此外,zlib.h需要一些Windows中没有的标头,因此您需要下载这些标头并与zlib.h放在同一个文件夹中。有关更多详细信息,请参阅unistd.h for Windows(Visual C)是否有替换?获取unistd.h,https://gist.github.com/ashelly/7776712获取getopt.h

对于Win32上的那些人(像我一样),你可能遇到了更多麻烦。关键的解决方案应该是编辑winutils和native包的.sln和.vcxprj文件,以便它们与Win32平台兼容。