本人使用的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-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的命令没有了上面的警告