Java 如何在windows下构建hadoop源代码?

Java 如何在windows下构建hadoop源代码?,java,apache,maven,hadoop,Java,Apache,Maven,Hadoop,正在尝试从windows 7 x64下的源代码构建hadoop。根据指示和 我从、签出到源代码/branch-2.5(SHA-1:fa3bb675a728105d69614f53abe4339958550adf)克隆了hadoop源代码 然后从windows控制台运行: set Platform=x64 clean安装-Pdist,原生win-DskipTests-Dtar 获取错误-[error]未能在hadoop项目上执行目标org.apache.hadoop:hadoop maven插件:

正在尝试从windows 7 x64下的源代码构建hadoop。根据指示和

我从、签出到
源代码/branch-2.5
(SHA-1:fa3bb675a728105d69614f53abe4339958550adf)克隆了hadoop源代码 然后从windows控制台运行:

  • set Platform=x64
  • clean安装-Pdist,原生win-DskipTests-Dtar
  • 获取错误-
    [error]未能在hadoop项目上执行目标org.apache.hadoop:hadoop maven插件:2.5.0-SNAPSHOT:protoc(编译protoc):org.apache.maven.plugin.MojoExecutionException:“protoc--version”未返回版本->[Help 1]


    有什么办法解决这个问题吗?

    看来您缺少了
    protoc
    编译器

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


    然后,您可以设置
    HADOOP\u PROTOC\u PATH
    以指向安装目录。

    HADOOP maven插件的PROTOC mojo做的第一件事是使用Java的
    Java.lang.Process
    类尝试执行以下命令:

    protoc --version
    
    基本上,这样做是为了检查系统上协议缓冲区编译器(protoc)的版本是否与
    protobuf
    JAR的版本匹配

    这方面有4个结果:

    • 它找不到要执行的
      protoc
      命令(它收到的退出值为127)
    • 它不接收退出值127,但也不返回版本值
    • 返回的版本与protobuf jar的版本不匹配
    • 返回一个版本,它与protobuf jar的版本匹配
    您遇到了第二个问题

    如果您尝试从命令行运行
    protoc--version
    ,它能工作吗

    正如他们在其网站中所述,如果您的系统中有多个版本的
    protoc
    ,您可以在构建shell中设置
    HADOOP\u protoc\u PATH
    环境变量,以指向要用于HADOOP构建的环境变量。如果未定义此环境变量,将在
    路径中查找
    protoc
    。您的
    路径上是否有此功能

    如果尚未安装协议缓冲区编译器,可以从以下位置下载:

    在Mac/OsX上构建protobuf下载:使用clang/libc++:tar xfvj protobuf-2.5.0.tar.bz2 cd protobuf-2.5.0编译协议缓冲区。/configure CC=clang CXX=clang++cxflags='-std=c++11-stdlib libc++-O3-g'LDFLAGS='-stdlib libc++'LIBS=“-lc++-lc abi”make-j4 sudo make安装请参阅