Hadoop 2.2.0 常见问题之:Ubuntu 64环境下“Unable to load native-hadoop library for your platform”问题”

问题

最近在学习Hadoop(2.2.0),打算写一个MapReduce的小程序在Ubuntu 64位的环境下测试一把,一切环境配置完毕后,执行的过程中,控制台输出下面的内容:

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

原因

在网上搜索了一番,得出如下结论:

“The reason you saw that warning is the native Hadoop library$HADOOP_HOME/lib/native/libhadoop.so.1.0.0 was actually compiled on 32 bit.”

意思就是Hadoop  的native是在32 bit环境下编译的,在64bit环境下运行会有问题,所以需要下载hadoop 2.2.0 的源码在64bit环境下重新编译

解决方法

要想解决这个问题需要重新编译hadoop2.2.0 的源码,步骤如下:

(1)配置依赖包:

apache-maven-3.0.5-bin.tar.gz (http://maven.apache.org/download.cgi)

findbugs-2.0.2.tar.gz (http://sourceforge.jp/projects/sfnet_findbugs/releases/)

protobuf-2.5.0.tar.gz (https://code.google.com/p/protobuf/downloads/list)

maven以及findbugs,只需要解压缩,然后在/etc/profile中配置即可,配置完之后不要忘记执行source /etc/profile

protobuf包解压缩后需要执行make动作,命令如下

cd protobuf-2.5.0/
./configure
make
make check
make install

append below config into the /etc/profile file

<span style="color:#ff0000;">export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib</span>


2. 安装cmake

sudo apt-get install cmake


3下载hadoop 2.2.0的源文件,解压缩后对其打补丁

cd hadoop-2.2.0-src
wget https://issues.apache.org/jira/secure/attachment/12614482/HADOOP-10110.patch
patch -p0 < HADOOP-10110.patch

(3)进行编译

mvn package -Pdist,native -DskipTests -Dtar




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值