尝试从Windows 7 x64下的源构建hadoop。根据指示Hadoop2OnWindowsBUILDING

我从git克隆了hadoop的源, checkout 到origin/branch-2.5(SHA-1:fa3bb675a728105d69614f53abe4339958550adf)
然后从Windows控制台运行:

  • set Platform=x64
  • clean install -Pdist,native-win -DskipTests -Dtar

  • 并得到错误-[ERROR] Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:2.5.0-SNAPSHOT:protoc (compile-protoc) on project hadoop-common: org.apache.maven.plugin.MojoExecutionException: 'protoc --version' did not return a version -> [Help 1]
    任何想法如何解决这个问题?

    最佳答案

    hadoop-maven-plugins的协议(protocol)mojo所做的第一件事是它使用Java的java.lang.Process类来尝试执行以下命令:

    protoc --version
    

    基本上,这样做是为了检查系统上的 Protocol Buffer 编译器(protoc)的版本是否与protobuf JAR的版本匹配。

    这样做有4个结果:
  • 它找不到要执行的protoc命令(它收到的退出值为127)
  • 它没有收到127的退出值,但是也没有获得返回的版本值
  • 返回了一个版本,但与protobuf jar
  • 的版本不匹配
  • 返回一个版本,并且与protobuf jar
  • 的版本匹配

    您正在遇到第二个问题。

    如果您尝试从命令行运行protoc --version,是否有效?

    正如他们在其网站上所声明的那样,如果您的系统中有多个版本的protoc,则可以在构建 shell 中设置HADOOP_PROTOC_PATH环境变量,以指向要用于Hadoop构建的变量。如果您未定义此环境变量,则在protoc中查找PATH。它可以在您的PATH上使用吗?

    如果尚未安装 Protocol Buffer 编译器,则可以从以下位置下载它:
    https://developers.google.com/protocol-buffers/docs/downloads

    关于java - 如何在Windows下构建hadoop源?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26292885/

    10-10 02:12