【问题标题】:build hadoop 2.2 on windows在 Windows 上构建 hadoop 2.2
【发布时间】:2013-12-15 06:52:06
【问题描述】:

我正在尝试在windows上安装hadoop,到目前为止还很麻烦。

这是我不断收到的错误

[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2:exec (compile-ms-winutils) on project hadoop-common: Command execution failed. Cannot run program "msbuild" (in directory "C:\hdfs\hadoop-common-project\hadoop-common"): CreateProcess error=2, The system cannot find the file specified -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[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 read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :hadoop-common

我在 windows 7 x64 机器上的环境中设置了 msbuild.exe、windows sdk7.1、cygwin64、maven3.0.5、jdk7。

这是我从 apache 网站下载的 hadoop 2.2.0 src。

系统环境下,我已经设置了

C:\Windows\Microsoft.NET\Framework64\v4.0.30319

这是 msbuild 的路径,但仍然无法正常工作,有谁知道如何解决这个问题?

谢谢

更新: 我从

更改了 hadoop-common-project\hadoop-common 的 pom.xml
<executable>msbuild</executable>

<executable>msbuild.exe</executable>

现在,我收到以下错误

[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2:exec (compile-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 switch.
[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 read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :hadoop-common

【问题讨论】:

  • 您好,您解决了这个问题吗?怎么样?
  • 你是如何解决这个问题的?请分享

标签: apache maven hadoop mapreduce cygwin


【解决方案1】:

我找到了解决这个问题的方法。我在 Windows 8.1 上有 VS 2012 和 面临这个确切的问题。我检查了 hadoop-common 下的 pom.xml 该执行 ID 并运行以下命令

F:\HDP>msbuild F:\HDP\hadoop-common-project\hadoop-common\src\main\winutils\winutils.sln /nologo/p:Configuration=Release;OutDir=bin

它给了我以下异常

C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(42,5): error MSB8020: The builds tools for Visual Studio 2010 (Platform Toolset ='v100') cannot be found.
To build using the v100 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install Visual Studio 2010 to build using the Visual Studio 2010 build tools.
[F:\HDP\hadoop-common-project\hadoop-common\src\main\winutils\libwinutils.vcxproj]

由于我的机器上没有 Visual Studio 2010,所以问题必须是 在解决方案中。我在 VS 2012 中打开了解决方案并编译了一次。 再次执行 maven 给了我另一个错误,但这次指向 hadoop-common\src\main\native\native.sln。我也在 VS 2012 上打开了它 没有错误。

希望对你有帮助

谢谢 罗希特

【讨论】:

    【解决方案2】:

    我已按照以下步骤安装 Hadoop 2.2.0

    为 Windows 构建 Hadoop bin 分发的步骤

    1. 下载并安装 Microsoft Windows SDK v7.1。

    2. 下载并安装 Unix 命令行工具 Cygwin。

    3. 下载并安装 Maven 3.1.1。

    4. 下载 Protocol Buffers 2.5.0 并解压到一个文件夹(比如 c:\protobuf)。

    5. 添加环境变量 JAVA_HOME、M2_HOME 和平台(如果尚未添加)。 注意:变量名 Platform 区分大小写。对于在 64 位或 32 位系统上构建,值将是 x64 或 Win32。 编辑路径变量,添加 Cygwin 的 bin 目录(比如 C:\cygwin64\bin)、Maven 的 bin 目录(比如 C:\maven\bin)和 Protocol Buffers 的安装路径(比如 c:\protobuf)。

    6. 下载 hadoop-2.2.0-src.tar.gz 并解压到具有短路径的文件夹(例如 c:\hdfs)以避免由于 Windows 中的最大路径长度限制而导致的运行时问题。

    7. 选择开始 --> 所有程序 --> Microsoft Windows SDK v7.1 并打开 Windows SDK 7.1 命令提示符。将目录更改为 Hadoop 源代码文件夹 (c:\hdfs)。使用选项 -Pdist,native-win -DskipTests -Dtar 执行 mvn package 以创建 Windows 二进制 tar 分发。

    8. 如果上一步一切顺利,那么将在 C:\hdfs\hadoop-dist\target\hadoop-2.2.0 目录中创建原生分发 hadoop-2.2.0.tar.gz。

    安装 Hadoop

    1. 将 hadoop-2.2.0.tar.gz 解压到一个文件夹(比如 c:\hadoop)。

    2. 添加环境变量 HADOOP_HOME 并编辑路径变量以添加 HADOOP_HOME 的 bin 目录(例如 C:\hadoop\bin)。

    配置 Hadoop

    C:\hadoop\etc\hadoop\core-site.xml

    <configuration>
            <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://localhost:9000</value>
            </property>
    </configuration>
    

    C:\hadoop\etc\hadoop\hdfs-site.xml

    <configuration>
            <property>
                    <name>dfs.replication</name>
                    <value>1</value>
            </property>
            <property>
                    <name>dfs.namenode.name.dir</name>
                    <value>file:/hadoop/data/dfs/namenode</value>
            </property>
            <property>
                    <name>dfs.datanode.data.dir</name>
                    <value>file:/hadoop/data/dfs/datanode</value>
            </property>
    </configuration>
    

    C:\hadoop\etc\hadoop\mapred-site.xml

    <configuration>
            <property>
               <name>mapreduce.framework.name</name>
               <value>yarn</value>
            </property>
    </configuration>
    

    C:\hadoop\etc\hadoop\yarn-site.xml

    <configuration>
            <property>
               <name>yarn.nodemanager.aux-services</name>
               <value>mapreduce_shuffle</value>
            </property>
            <property>
               <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
               <value>org.apache.hadoop.mapred.ShuffleHandler</value>
            </property>
    </configuration>
    

    格式化名称节点

    只有第一次,namenode需要格式化。

    C:\Users\abhijitg>cd c:\hadoop\bin 
    c:\hadoop\bin>hdfs namenode –format
    

    启动 HDFS(Namenode 和 Datanode)

    C:\Users\abhijitg>cd c:\hadoop\sbin
    c:\hadoop\sbin>start-dfs
    

    启动 MapReduce aka YARN(资源管理器和节点管理器)

    C:\Users\abhijitg>cd c:\hadoop\sbin
    c:\hadoop\sbin>start-yarn
    starting yarn daemons
    

    将自动打开四个单独的命令提示符窗口以运行Namenode、Datanode、资源管理器、节点管理器

    参考:Build, Install, Configure and Run Apache Hadoop 2.2.0 in Microsoft Windows OS

    【讨论】:

    • 嗨 Abhijit,如果你能发布视频教程会很棒。
    【解决方案3】:

    我遇到了同样的问题。我通过

    解决了
    1. 打开一个dos命令提示符

    2. 启动“c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat”,它会修改 PATH 变量并设置一些其他变量

    3. 之后我直接从这个命令提示符启动了 cygwin

      C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -

    现在 PATH 已正确格式化并找到 msbuild ...

    希望这会有所帮助!

    顺便说一句:如果它抱怨 msbuild 的错误版本,可能您必须安装 Visual Studio Express 2010。或者正如我在其他地方看到的,您可以使用 VisualStudioExpress2012 并将 VS100COMNTOOLS 设置为指向 VS110COMNTOOLS。

    【讨论】:

      【解决方案4】:

      您可能需要 CMake.exe - 使用官方链接获取它http://www.cmake.org/download/

      打开位于解压后的 hadoop-2.6.0-src.tar.gz 或您的版本中的文件 BUILDING.txt
      它告诉你如何为 Windows 构建 - 检查所有这些:

      我的 BUILDING.txt 说:

      Building on Windows
      Requirements:
      
      * Windows System
      * JDK 1.6+
      * Maven 3.0 or later
      * Findbugs 1.3.9 (if running findbugs)
      * ProtocolBuffer 2.5.0
      * CMake 2.6 or newer
      * Windows SDK or Visual Studio 2010 Professional
      * Unix command-line tools from GnuWin32 or Cygwin: sh, mkdir, rm, cp, tar, gzip
      * zlib headers (if building native code bindings for zlib)
      * Internet connection for first build (to fetch all Maven and Hadoop dependencies)
      
      If using Visual Studio, it must be Visual Studio 2010 Professional (not 2012).
      Do not use Visual Studio Express.  It does not support compiling for 64-bit,
      which is problematic if running a 64-bit system.  The Windows SDK is free to
      download here:
      
      http://www.microsoft.com/en-us/download/details.aspx?id=8279    
      

      【讨论】:

        【解决方案5】:

        即使按照文档和此处提到的所有步骤进行操作,我仍然收到以下错误:

        Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.3.1:exec 
        (compile-ms-winutils) on project hadoop-common
        

        详细错误说:

        You are attempting to build a Win32 application from an x64 environment. 
        If using the Windows 7.1 SDK build environment, type setenv /x86
        

        所以我添加了以下环境变量并解决了问题

        Platform: x64
        

        【讨论】:

        • 如果没有更多解释,很难确定这是否是对现有答案的补充,或者这是否已经被他们所涵盖。一般来说,如果您看到 2 或 3 个现有解决方案对您来说失败了,我建议您写一些类似“对我来说 A 和 B 都失败了,但 C 有效”的内容
        【解决方案6】:

        路径好像有问题..

        将 msbuild 路径添加到环境变量路径

        【讨论】:

        • 是的,我一开始也是这么想的,所以我确实将 msbuild 路径添加到环境变量路径,但仍然
        【解决方案7】:

        我可以通过以下两个步骤解决此问题。

        1) 将 MsBuild 路径(C:\Windows\Microsoft.NET\Framework64\v4.0.30319) 添加到环境变量路径

        2) 安装 Microsoft-Visual-Studio-2010-Professional http://download.cnet.com/Microsoft-Visual-Studio-2010-Professional/3000-2212_4-10618634.html

        注意:在安装 Visual-Studio-2010-Professional 之前,我尝试了 Windows-SDK-7.1,但对我没有帮助。所以我在安装 Visual-Studio-2010-Professional 之前卸载了 Windows-SDK-7.1。此外,我为 Visual-Studio-2010-Professional 提供的链接是试用版。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-06-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多