WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform..

本文针对启动或执行Hadoop|Spark程序时出现的“Unable to load native-hadoop library”警告进行了详细的原因分析,并提供了两种解决方案:一是重新编译Hadoop源码;二是设置JAVA_LIBRARY_PATH环境变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

启动或执行Hadoop | Spark程序时出现警告

18/01/22 17:50:39 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable

原因分析

这是因为 $HADOOP_HOME/lib/native 包中的 /libhadoop.solibhadoop.so.1.0.0 是32位导致的,这在Hadoop低版本中出现,可以通过 file 命令查看文件是32位还是64位的.
[elon@spark hadoop-2.7.5]$ file lib/native/*
lib/native/libhadoop.a: current ar archive
lib/native/libhadooppipes.a: current ar archive
lib/native/libhadoop.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped
lib/native/libhadoop.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped
lib/native/libhadooputils.a: current ar archive
lib/native/libhdfs.a: current ar archive
lib/native/libhdfs.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped
lib/native/libhdfs.so.0.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped

解决方案

因此,我们可以看到官方给出的解决方案是:
● 在64位机上重新编译Hadoop源码 Compile Apache Hadoop on Linux (fix warning: Unable to load native-hadoop library)
● 以及参考stack flow上的解决方案:Hadoop “Unable to load native-hadoop library for your platform” warning

但是在Hadoop2.7以后的版本中,$HADOOP_HOME/lib/native 包下的文件都改为了64位,不存在版本差异化的问题,而仍然显示无法加载Hadoop本地库 (Unable to load native-hadoop library for your platform.) 这时候,通过root用户在 /etc/profile 中设置全局环境变量 export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native(ps:首先用命令 echo $JAVA_LIBRARY_PATH 查看是否存在,若本身就有值,则上述命令设置为如下形式: export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH,表明是在原环境变量 JAVA_LIBRARY_PATH 后面加上新参数 $HADOOP_HOME/lib/native

通过以上的博客内容,可以清除这个警告信息。

转载请注明出处:http://blog.youkuaiyun.com/coder__cs/article/details/79132707
本文出自【elon33的博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值