(1)首先,设置环境变量,并确保环境变量生效(使用source 命令导入,或者打开一个新的shell,或者干脆在当前shell里面,把这些命令运行一遍)
export HADOOP_HOME=/your/own/hadoop/home [这个你懂的]
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native
(2)然后,在当前shell里面,echo $HADOOP_OPTS ,确保第一步正确执行
(3)如果前两步已经完成,并且依然有该错误提示,则原因是hadoop自带的native库的(版本)位数与你本机的(版本)位数不同。
具体说就是:
如果你安装的是hadoop 2.4以及之前的版本,它自带的native库是32位的,如果你的操作系统和JVM是64位的,就会报上述错误;
如果你安装的是hadoop 2.5版本,它自带的native库是64位的,如果你的操作系统和JVM是32位的,就会报上述错误。
解决方法是:
如果你的操作系统和JVM是64位的,就直接安装hadoop 2.5版本,无需按照网上说的去重新编译hadoop,因为它的native库就是64位了;
如果你的操作系统和JVM是32位的,就直接安装hadoop 2.4以及之前的版本。
经过以上三步,就能解决你的问题。若未能解决,请追加提问。祝好运!