hadoop本地库无法加载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop本地库无法加载相关的知识,希望对你有一定的参考价值。

这种情况怎么解决,求大神解答

(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以及之前的版本。

经过以上三步,就能解决你的问题。若未能解决,请追加提问。祝好运!追问

我换了hadoop 0.20.203的版本,hadoop能启动了,jps查看各进程也正常

就是hadoop有问题,这是什么情况

大神能留个Q吗

追答

这个错误是系统没有找到hadoop这个命令,提示“hadoop: command not found”。
hadoop这个命令在 $HADOOP_HOME/bin下面,你运行 $HADOOP_HOME/bin/hadoop jar xxxxx
这样就指明了hadoop命令的具体路径。
为了方便执行hadoop命令,你可以修改 ~/,bashrc 文件或者 /etc/profile文件,在最后面加入
export PATH=$PATH:$HADOOP_HOME/bin
保存后退出,重新打开一个新的shell,就能直接敲hadoop命令了。
如果依然提示上述错误,说明HADOOP_HOME变量没有定义,你首先运行 “echo $HADOOP_HOME”命令(注意echo后面要有个空格),验证一下你是否定义了HADOOP_HOME这个变量。如果输出了一个具体的路径,例如:/home/user/hadoop-0.20之类的,说明你定义了HADOOP_HOME这个变量。
如果没有定义HADOOP_HOME这个变量,你需要在 ~/,bashrc 文件或者 /etc/profile文件中添加HADOOP_HOME变量和值。

参考技术A 你的Hadoop配置好没?有个地方可以配置加载library的地方

解决hadoop本地库问题

执行hadoop的相关命令时,总提示如下:

]$ hadoop fs -ls /
2020-03-09 16:09:39,384 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

解决:

在当前用户的bashrc文件里面添加:

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

 

以上是关于hadoop本地库无法加载的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop“无法为您的平台加载native-hadoop库”警告

无法从 React.js 中的本地库加载图像

Hadoop 2.7.3 WARN util.NativeCodeLoader:无法为您的平台加载 native-hadoop 库...在适用的情况下使用内置 java 类

Pyspark Mac NativeCodeLoader:无法为您的平台加载 native-hadoop 库......在适用的情况下使用内置 java 类

java.lang.IllegalArgumentException:无法加载本机库

无法加载 Raphael.js 库,找不到 appendChild 方法?