Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows上的Hadoop生成/安装错误_Windows_Hadoop_Msbuild_Building - Fatal编程技术网

Windows上的Hadoop生成/安装错误

Windows上的Hadoop生成/安装错误,windows,hadoop,msbuild,building,Windows,Hadoop,Msbuild,Building,我正在尝试在Windows x64(8.1和Server 2012 R2)上安装,但目标失败: [INFO] Apache Hadoop Common ............................... FAILURE [ 37.925 s] 在过去的几天里,我想我遵循了所有教程的步骤,比如,或者。我做了所有的先决条件,但当我在谷歌上搜索时,我的问题的相关条件如下: 设置MSBuild.exe的路径,如:C:\Windows\Microsoft.NET\Framework

我正在尝试在Windows x64(8.1和Server 2012 R2)上安装,但目标失败:

    [INFO] Apache Hadoop Common ............................... FAILURE [ 37.925 s]
在过去的几天里,我想我遵循了所有教程的步骤,比如,或者。我做了所有的先决条件,但当我在谷歌上搜索时,我的问题的相关条件如下:

  • 设置MSBuild.exe的路径,如:C:\Windows\Microsoft.NET\Framework64\v4.0.30319;在小路上
  • 将路径设置为
  • 安装Microsoft SDK 7.1并使用其Microsoft SDK 7.1 CMD运行
  • 已尝试使用Visual Studio 2013生成:hadoop common\src\main\winutils\libwinutils.sln和hadoop common\src\main\winutils\winutils.sln,但由于编译错误,生成失败。VisualStudio2010甚至不想打开它们。我不知道如何纠正编译错误(如果这是个问题)
其他ppl,类似问题
以下是一些类似的主题:。我主要尝试了所有的建议,但还是失败了

错误

    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 01:11 min
    [INFO] Finished at: 2015-07-08T15:18:29+02:00
    [INFO] Final Memory: 69M/269M
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.3.1:exec (c
    ompile-ms-winutils) on project hadoop-common: Command execution failed. Process
    exited with an error: 1 (Exit value: 1) -> [Help 1]
    [ERROR]
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
    ch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please rea
    d the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionE
    xception
    [ERROR]
    [ERROR] After correcting the problems, you can resume the build with the command

    [ERROR]   mvn <goals> -rf :hadoop-common
更新2 @tiho的回答解决了上述问题(我非常感谢,因为我已经花了4天时间)。现在,一个新的问题,目标是:

[INFO] Apache Hadoop KMS .................................. FAILURE [  1.531 s]

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (dist) on project hadoop-kms: An Ant BuildException has occured: java.net.UnknownHostException: archive.apache.org
[ERROR] around Ant part ...<get dest="downloads/apache-tomcat-6.0.41.tar.gz" skipexisting="true" verbose="true" src="http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.41/bin/apache tomcat-6.0.41.tar.gz"/>... @ 5:182 in C:\hadoop-2.7.1-src\hadoop-common project\hadoop-kms\target\antrun\build-main.xml: Unknown host archive.apache.org.

我花了一整天的时间来建造它。。。微软在向后兼容性方面显然有很多问题。如果Hadoop转向更新的工具链,这将有所帮助

以下是我必须执行的关键步骤(除了文档中提到的那些步骤)。这是使用Windows SDK编译器,而不是VS 2010(VS 2010应该可以使用,但我没有尝试过):

  • 卸载Visual Studio 2013(我建议卸载任何Visual Studio>=2010)--这是为了消除错误
    MSBUILD:配置错误MSB4146:无法计算属性表达式“$”([MSBUILD]::ValueOrDefault(“$(VCTargetsPath)”,“$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V120\)”
  • 卸载VisualStudioC++ 2010可重新分发(X64 + x86)-以避免
  • 完全卸载.NET Framework 4.5--以避免
  • 重新启动
  • 安装.NET Framework 4.0
  • 安装Windows SDK 7.1
  • 我将Git安装的bin文件夹(用于GNU工具)、CMake的bin文件夹和包含protoc.exe的文件夹添加到我的路径(在Windows SDK外壳中)。此外(但大多数人不应该需要它),我必须设置Maven来使用我的HTTP代理,首先按照Maven文档中的说明编辑
    settings.xml
    ,还要定义环境变量
    Maven\u OPTS=-Dmy.proxy.host-Dhttp.proxyPort=my.proxy.port
    ,否则,在构建过程中的某个时间点会出现超时


    请注意,我在构建过程中注意到了大量警告:我怀疑其中一些警告是由使用JavaSDK1.8而不是1.7引起的。然而,在最终看到
    构建成功后
    我不想再次尝试使用1.7。

    我已经成功地使用Visual Studio 2015社区版构建了它

    我是这样建造的:

    我的环境

    这是我的购物清单:

    • 视窗10
    • JDK 1.8.0_51
    • Maven 3.3.3
    • Findbugs 1.3.9(我没有使用过这个)
    • ProtocolBuffer 2.5.0(我这里没有选择最新和最好的,它必须是2.5.0)
    • CMake 3.3.0
    • Visual Studio 2015社区版
    • GnuWin32 0.6.3-安装起来有点痛苦,但cygwin也是
    • zlib 1.2.8
    • 互联网连接
    Windows系统环境变量

    • JAVA\u HOME=“C:\Program Files\JAVA\jdk1.8.0\u 51”
    • MAVEN_HOME=c:\apache-MAVEN-3.3.3
    (确保以上内容指向JDK版本和maven安装)

    我将以下内容附加到windows系统环境路径变量:

    ;%MAVEN_HOME%\bin;C:\Windows\Microsoft.NET\Framework64\v4.0.30319;c:\zlib

    奇怪的“C:\Windows\Microsoft.NET\Framework64\v4.0.30319”路径是MSBuild.exe的位置,生成过程中需要该路径

    Protoc缓冲区2.5.0

    哦,不,另一个仅unix/linux版本?我已经下载了名为protoc-2.5.0-win32.zip的谷歌软件包。然后将二进制文件(protoc.exe)解压缩到c:\windows\system32,这只是将其放在路径上的一种惰性方式

    我不能100%确定为这个win64构建使用win32组件的效果。但是: “Hadoop 0.23+要求协议缓冲区JAR(protobufs.JAR)位于客户端和服务器的类路径上;编译此版本和更高版本的Hadoop需要本机二进制文件。”——

    所以我知道win32可执行文件只在构建过程中使用(jar等价物应该打包在构建中)

    如果以任何方式使用它来编译本机代码,我们可能会留下一些无序的指针。我会在可能的时候再谈这个

    调整Hadoop源代码

    嗯,这是允许构建执行的必要条件。它不应该影响构建本身的质量,但是让我们记住,结果是一个非官方的、不受支持的、自担风险的hadoop,用于开发环境

    迁移VS项目

    需要使用Visual Studio 2015打开以下文件:

    \hadoop公共项目\hadoop公共\src\main\winutils\winutils.vcxproj \hadoop公共项目\hadoop公共\src\main\native\native.vcxproj

    VisualStudio会抱怨它们是旧版本。您所要做的就是保存所有并关闭

    为hdfs实现cmake VS 2015项目生成

    在\hadoop hdfs project\hadoop hdfs\pom.xml的第441行,按如下方式编辑else值:

    (该“值”值适用于win32-如果为win32构建,则可能需要对其进行编辑)

    构建it

    您应该尝试在windows上找到“VS2015的开发命令提示符”。我还是w
    [INFO] Apache Hadoop KMS .................................. FAILURE [  1.531 s]
    
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (dist) on project hadoop-kms: An Ant BuildException has occured: java.net.UnknownHostException: archive.apache.org
    [ERROR] around Ant part ...<get dest="downloads/apache-tomcat-6.0.41.tar.gz" skipexisting="true" verbose="true" src="http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.41/bin/apache tomcat-6.0.41.tar.gz"/>... @ 5:182 in C:\hadoop-2.7.1-src\hadoop-common project\hadoop-kms\target\antrun\build-main.xml: Unknown host archive.apache.org.
    
    <mkdir dir="downloads"/>
      <get dest="downloads/apache-tomcat-6.0.41.tar.gz" skipexisting="true" verbose="true" src="http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.41/bin/apache-tomcat-6.0.41.tar.gz"/>
    
    [INFO] ------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------
    [INFO] Total time: 21:05 min
    [INFO] Finished at: 2015-07-10T11:33:17+02:00
    [INFO] Final Memory: 228M/672M
    [INFO] ------------------------------------------------
    
    hadoop-3.0.2-src\hadoop-common-project\hadoop-common\src\main\winutils\winutils.sln
    
    hadoop-3.0.2-src\hadoop-common-project\hadoop-common\src\main\native\native.sln
    
    D:\hadoop-3.0.2-src\hadoop-hdfs-project\hadoop-hdfs-native-client\pom.xml
    
    <condition property="generator" value="Visual Studio 10" else="Visual Studio 15 2017 Win64">
    
    <localRepository>D:/maven_repo</localRepository>
    
    apache-maven-3.5.0\conf\settings.xml
    
    mvn clean package -Pdist,native-win -DskipTests -Dtar -Dmaven.repo.local=D:\maven_repo
    
    @REM CALL "%MSVS%\VC\vcvarsall.bat" %VCVARSPLAT%
    
    SET Platform=x64
    SET VCVARSPLAT=amd64
    
    @REM ******************
    @REM Forcibly move the Maven local repo
    @REM (use short path to avoid 'the command line is too long' error)
    
    SET MAVEN_OPTS=-Dmaven.repo.local=D:\.m2
    
    @REM *******************************************
    @REM
    @REM Locations of your bits and pieces
    @REM
    @REM NOTE: cmake is assumed to already be on the
    @REM command path
    @REM (it's true when you use Native Tools Command Prompt)
    
    SET MAVEN_HOME=%MAVEN_HOME%
    SET JAVA_HOME=%JAVA_HOME%
    @REM SET MSVS=C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional
    SET PROTO_BIN=D:\tools\protoc-2.5.0-win32
    SET GIT_HOME=C:\Program Files (x86)\Git
    set ZLIB_HOME=D:\tools\zlib-1.2.11
    
    SET PATH=%JAVA_HOME%\bin;%MAVEN_HOME%\bin;%PROTO_BIN%;%GIT_HOME%\bin;%PATH%
    
    @REM CALL "%MSVS%\VC\vcvarsall.bat" %VCVARSPLAT%
    
    
    d:
    cd D:\hdp
    D:\hdp\dev-support\win-paths-eg.cmd
    mvn package -Pdist,native-win -DskipTests -Dtar