Hadoop警告消息:"execstack -c"<libfile>,或将其与"-z noexecstack"链接



我是hadoop的新手,在centos盒子上安装了hadoop 2.2.0。 对于我在下面提到的任何HDFS命令,我收到的警告消息。任何帮助,不胜感激。

Java HotSpot(TM) 64-Bit Server VM warning: You have loaded library /data/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.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
14/02/25 11:52:45 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable.

JAVA_HOME设置为甲骨文热点JDK1.7

能够得到一些答案,centos 运行在 64 位版本和 Hadoop默认安装是 32 位。所以要么需要在 centos 上编译,要么忽略相同的内容。

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib" 

在 .bashrc 中添加这两行并重新打开终端并尝试重新启动 hadoop。

execstack -c <libfile>,或将其与-z noexecstack链接。如果您遇到此错误意味着只需通过sudo gedit .bashrc打开./bashrc并添加以下两行:

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib" 

更新 .bashrc 文件的下一步:

source .bashrc

最后:

./start-all.sh

完成。现在它工作正常。