Java 构建Hadoop 2.5时出错

Java 构建Hadoop 2.5时出错,java,maven,hadoop,Java,Maven,Hadoop,我目前正在尝试为Windows7x64平台构建Hadoop2.5。我是按照你的指示去做的 并具有中提到的所有依赖项。我在使用以下maven命令构建apachehadoop公共项目时遇到一个错误 mvn包-Pdist,原生win-DskipTests-Dtar。以下是错误 [INFO] [INFO] --- exec-maven-plugin:1.2:exec (compile-ms-native-dll) @ hadoop-common --- Build started 15-11-2014

我目前正在尝试为Windows7x64平台构建Hadoop2.5。我是按照你的指示去做的 并具有中提到的所有依赖项。我在使用以下maven命令构建apachehadoop公共项目时遇到一个错误
mvn包-Pdist,原生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)

从日志中可以明显看出,您错过了zlib.h。您是否将env var zlib_HOME设置为包含zlib.h的目录?请注意,将zlib.h目录放在路径中是错误的,并且不是必需的,只需要zlib-bin目录,如《构建指南》中所述

此外,zlib.h需要一些Windows中不存在的头文件,因此您需要下载这些头文件并与zlib.h放在同一文件夹中。有关更多详细信息,请参阅是否有Windows版unistd.h(Visual C)的替代品?获取unistd.h和getopt.h


对于那些使用Win32的人(像我一样),你可能会面临更多的麻烦。关键的解决方案应该是编辑winutils和本机软件包的.sln和.vcxprj文件,以便它们与Win32平台兼容。

在Windows cmd上,设置ZLIB\u HOME=“C:\Program Files(x86)\GnuWin32\include”工作