异常解决:util.NativeCodeLoader: Unable to load native-hadoop library for your platform

本文介绍了解决Hadoop在Ubuntu 14.04系统上无法加载本地库的问题,包括编译源码和配置环境变量的具体步骤。

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

先说一下我的环境:ubuntu14.04 64位系统
hadoop 2.7.1
spark 2.0.0
java 1.8
scala 2.11.8
装好hadoop和spark后,执行spark-shell时,和执行spark程序时,会有一个

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable

提示hadoop不能加载本地库。
这个提示分两种情况,每一种是在较早的时候,apache官网下载的hadoop的程序中的native库是32位的,如果你是64位的系统,那就会报这个错,这个的检验方法为:

spark@master:~/workspace/hadoop-2.7.1/lib/native$ file libhadoop.so.1.0.0
libhadoop.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked,

BuildID[sha1]=f10b72d3bd2583ab9b126ede6ca886c3c9cc8a88, not stripped

如果命令输出为i386,就是这个问题了,如果你是像我上面这种输出,就不是这个问题导致的,直接跳到第二步。
先说是i386的解决:

一、本地编译源码

具体操作可参考:http://blog.youkuaiyun.com/young_kim1/article/details/50269501

最后编译完以后,目标在

de >hadoop-2.7.1-src/hadoop-dist/target/hadoop-2.7.1de>下,将此目录下的de >lib/nativede>替换掉de >$HADOOP_HOME/lib/nativede>。

二、配置环境变量

在/etc/profile中,添加下面配置:

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

并把相同配置添加到hadoop-env.sh文件末尾。

另加下面这句到/etc/profile中

export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native/:$LD_LIBRARY_PATH

最后记得使配置生效:source /etc/profile

再执行spark-shell,就没有这个警告了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值