Apache Hadoop错误:Unable to load native-hadoop library for your platform

Apache Hadoop错误:Unable to load native-hadoop library for your platform

错误场景详情

1
2
$ hadoop fs -ls /
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

错误原因

Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java所以会引入了本地库(Native Libraries)的概念,通过本地库,Hadoop可以更加高效地执行某一些操作.
当我们在linux 输入 hdoop fs -ls / 去查看 hdfs 文件系统上的资源时会出现下面错误

解决方案

解决方案1

在Hadoop的配置文件core-site.xml中可以设置是否使用本地库:(Hadoop默认的配置为启用本地库)

1
2
3
4
5
<property>
<name>hadoop.native.lib</name>
<value>false</value>
<description>Should native hadoop libraries, if present, be used.</description>
</property>

解决方案2

有博客说可以直接下载编译好的位包,替换原来的native包
由于在我本地安装的Apache Hadoop 3.2.1版本中没有找到lib文件夹,所以在3.2.1版本中暂时不能使用此种方法

执行查看文件命令

1
2
3
4
$ hadoop fs -ls /
2019-10-17 11:33:09,369 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 1 items
drwxr-xr-x - xxx supergroup 0 2019-10-17 11:23 /tmp