千家信息网

Hadoop 2.4 libhadoop.so的disabled stack guard问题

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,由于2.4.0默认配置的libhadoop是32位的,在64位的操作系统环境运行过程中,会提示以下错误:Java HotSpot(TM) 64-Bit Server VM warning: You h
千家信息网最后更新 2025年02月03日Hadoop 2.4 libhadoop.so的disabled stack guard问题

由于2.4.0默认配置的libhadoop是32位的,在64位的操作系统环境运行过程中,会提示以下错误:


  1. Java HotSpot(TM) 64-Bit Server VM warning: You have loaded library /opt/hadoop-2.2.0/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now.

  2. It's highly recommended that you fix the library with 'execstack -c ', or link it with '-z noexecstack'.

  3. 13/11/01 10:58:59 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

需要重新编译Hadoop的代码,得到适合的库文件。按以下步骤执行。


下载Hadoop 2.4.0 源代码

可以从Apache官方下载Hadoop 2.2.0的源代码,或者在以下网址下载Hadoop 2.2.0的源代码:
http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0-src.tar.gz

配置编译环境

本文采用的Ubuntu 12.04.3 LTS环境,先安装编译环境:

[plain] view plain copy print?

  1. $ yum install

  2. yum install gcc gcc-c++ kernel-devel
  3. $ yum install g++ autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev

安装 build-essential

yum groupinstall "Development Tools"

这时候需要用wget命令去网络上下载资源包

wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo

然后重新安装maven


  1. 安装maven

  2. yum -y install apache-maven

配置protobuf

编译过程需要使用protobuf,建议先行安装。Ubuntu仓库默认的protobuf是2.4.1版,需要最新的2.5版:

https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz

下载解压后,执行:

[plain] view plain copy print?

  1. $ tar xzvf protobuf-2.5.0.tar.gz

  2. $ cd protobuf-2.5.0

  3. $ ./configure --prefix=/usr

  4. $ make

  5. $ sudo make install

编译hadoop

解压进入hadoop源码目录,执行编译:

[plain] view plain copy print?

  1. $ tar xzvf hadoop-2.2.0-src.tar.gz

  2. $ cd hadoop-2.2.0-src

  3. $ mvn package -Pdist,native -DskipTests -Dtar

编译过程中maven会自动下载依赖。编译完成后,系统会提示以下信息:

[plain] view plain copy print?

  1. [INFO] BUILD SUCCESS

  2. [INFO] ------------------------------------------------

  3. [INFO] Total time: 15:39.705s

  4. [INFO] Finished at: Fri Nov 01 14:36:17 CST 2013

  5. [INFO] Final Memory: 135M/422M

然后在以下目录可以获取编译完成的libhadoop:

[plain] view plain copy print?

  1. hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0/lib

注:默认源地址下,maven下载依赖时间极长,建议使用国内源,参考《maven国内镜像配置》文档。

然后将编译的lib/native文件夹替换原本的即可。


编译 环境 配置 源代码 过程 建议 目录 系统 提示 操作系统 上下 仓库 代码 信息 原本 命令 地址 官方 库文件 文件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 黑群晖安数据库 邯郸系统软件开发价格 玉树州网络安全宣传活动 棋牌游戏软件开发工具 创建11位int数据库 数通好还是网络安全好 网络技术运营主要是做什么 合成图片的手机软件开发 银行的数据库安全性 大专生学软件开发怎么样 张掖网络安全工程师收入 厦门专业服务器散热器厂家 endnote数据库修改教程 近几年最大的网络安全事件 戴尔服务器报错代码0204 软件开发和支持公司简介 网络安全法处罚标准 MC2服务器如何看故障 思科网络技术学院怎样使用 高中毕业学电脑软件开发难吗 理想乡网络技术有限公司 软件开发的知识产权 安卓项目建立数据库连接 电子战仿真数据库技术 咸阳软件开发均价 苹果6登陆id时无法连接服务器 天龙八部纵横天下服务器进度 福建回收服务器 网络安全产业人才岗位能力要求 下载 软件开发安卓培训机构有哪些
0