Hadoop“warning: You have loaded library/*/libhadoop.so.1.0.0 which might have disabled stack guard”

Hadoop安装完以后,经常会提示一下警告:warning: You have loaded library/*/hadoop- 2.7.3/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now。搜了好多文章,都说是跟系统位数有关系,我使用的是Centos 6.5 32位操作系统。

Hadoop安装完以后,经常会提示一下警告:

Java HotSpot(TM) Client VM warning: You have loaded library /home/snow/hadoop/hadoop - 2.7.3/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
18/01/12 16:37:59 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

详细信息,如下图:

Hadoop“6.2 warning: You have loaded library/*/libhadoop.so.1.0.0 which might have disabled stack guard”

根据上图得知,Java成功加载了lib库,但是为什么还是存在警告呢!是不是没有配置lib库的,还是lib库版本不正确(32bit或64bit),我们需要先确定当前系统的位数、JVM位数、和lib库的位数。 

解决办法:

# 查看系统版本
[snow@learn ~]$ uname -a
Linux learn 2.6.32-358.el6.i686 #1 SMP Thu Feb 21 21:50:49 UTC 2013 i686 i686 i386 GNU/Linux
 
# 查看JVM版本信息
[snow@learn ~]$ java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) Client VM (build 25.45-b02, mixed mode)
 
# 查看hadoop native lib文件信息
[snow@learn bak]$ file libhadoop.so.1.0.0
libhadoop.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped

从上面得知,操作系统和JVM都是32bit的,但是Hadoop的native lib是64bit。因此不兼容,需要你去下载hadoop 32bit的native lib库。然后替换当前64bit的库文件。

人永远是要学习的。死的时候,才是毕业的时候。 —— 萧楚女
2 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号