hadoop出现Unable to load native-hadoop library for your platform..警告

本人使用的hadoop版本是:

每次执行hadoop命令:列如 hadoop fs ls /、./start-dfs.sh启动dfs时

都会出现如下警告 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

这个警告是加载不到native-hadoop的本地库.

通过官网的说明:https://hadoop.apache.org/docs/r3.1.2/hadoop-project-dist/hadoop-common/NativeLibraries.html

hadoop的一些不兼容性需要通过编译对应hadoop版本的源码来拿到native-hadoop

到此 ,我们开始编译源码,通过GitHub拉下hadoop的源码:https://github.com/apache/hadoop

通过官网提供的命令,进入到hadoop的目录执行 mvn package -Pdist,native -DskipTests -Dtar

可能由于我之前编译过一次 ,但报错了,做了某些修改(具体忘记了),本次编译较快,并且成功了

hadoop出现Unable to load native-hadoop library for your platform..警告_第1张图片

编译成功后hadoop-3.1.1-src/hadoop-dist/target/hadoop-3.1.1/lib/native 会在这个目录生成native库, 之后我们再把hadoop的hadoop-3.1.1/lib/native目录下的所有文件替换成刚刚编译好的native下的所有文件.

之前native有如下文件

替换之后(编译源码)的native目录中的文件

至此,执行hadoop的命令没有了上面的警告

你可能感兴趣的:(java,hadoop)