如何在Windows下构建hadoop源?

Che*_*rry 5 java apache hadoop maven

试图在Windows 7 x64下从源代码构建hadoop.根据Hadoop2OnWindowsBUILDING的说明

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

  1. set Platform=x64
  2. 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]

任何想法如何解决这个问题?

DB5*_*DB5 6

hadoop-maven-plugins的protoc mojo的第一件事就是它使用Java的java.lang.Process类来尝试执行以下命令:

protoc --version
Run Code Online (Sandbox Code Playgroud)

基本上它是这样做来检查系统上协议缓冲区编译器(protoc)的版本是否与protobufJAR 的版本匹配.

这有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


dan*_*dan 0

看来你缺少protoc编译器。

您可以2.5.0这里下载并安装二进制文件

然后你可以设置HADOOP_PROTOC_PATH指向安装目录。