m0_51853508 2024-06-17 21:07 采纳率: 0%
浏览 64
已结题

【Hadoop 问题】Hadoop编译所遇问题hadoop-common: make failed with error code 2

Hadoop源码编译所遇报错:hadoop-common: make failed with error code 2

在遇到这个问题前的报错是:hadoop-common: CMake failed with error code 1

我在网上查找资料下载了一些依赖包后就变成了现在的报错了

我的相关软件版本:
maven-3.5
jdk1.8
protobuf-2.5.0
hadoop-3.0.0
OpenSSL-3.0.13
cmake-3.28.3

系统是Ubuntu(我也尝试过linux但也还是同样的报错)

img

img

请问大家这是什么问题 要如何解决

  • 写回答

19条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-17 21:07
    关注

    引自免费微信小程序:皆我百晓生

    从你提供的信息来看,你在编译Hadoop源码时遇到了make failed with error code 2的错误,具体错误信息指向了exception.c文件中的未声明标识符问题。这通常意味着编译器在编译过程中遇到了一些它不认识的宏定义或者函数。问题的核心在于sysnerrsys_errlist这两个标识符没有被正确识别。

    解决方案

    步骤1:确认宏定义

    首先,确保你的系统中包含正确的头文件,尤其是与错误信息相关的sys/nerr.h或类似头文件。sysnerrsys_errlist通常是在这个头文件中定义的,用于错误处理。检查你的系统是否安装了相应的开发库,例如libc-devglibc-devel等,这些库通常包含了必要的头文件。

    步骤2:更新或安装库

    如果你发现缺少必要的库,可以通过包管理器进行安装。在Ubuntu上,可以使用以下命令:

    sudo apt-get update
    sudo apt-get install libc6-dev
    

    步骤3:重新配置并编译

    安装完所需的库之后,你需要重新运行Hadoop的构建过程。确保在开始之前清理旧的构建文件:

    mvn clean
    

    然后再次尝试构建:

    mvn package
    

    进一步排查

    如果上述步骤未能解决问题,可能需要进一步检查你的构建环境和配置。确保所有依赖的版本兼容,并且没有其他环境变量干扰编译过程。

    检查版本兼容性

    确认你的cmakemavenjdk以及Hadoop源码版本之间不存在不兼容的问题。

    环境变量检查

    有时,环境变量的设置也会影响编译结果。检查是否有特定的环境变量(如CCCXXCFLAGS等)可能影响到编译器的行为。

    通过以上步骤,你应该能够解决编译Hadoop源码时遇到的make failed with error code 2的问题。如果仍然遇到困难,建议查阅更详细的编译日志,或者在Hadoop社区论坛寻求帮助,那里可能会有针对你具体版本和环境的更具体指导。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月21日
  • 创建了问题 6月17日