您的位置:首页 > 运维架构

Hadoop中常见问题汇总

2016-03-27 13:32 453 查看
在hadoop中的学习中经常会出现不同的问题,今天对一些问题进行汇总。

问题一:org.apache.hadoop.util.NativeCodeLoader: Unable to load native-hadoop
library for your platform... using builtin-java classes where applicable

在安装好VM以及Linux后,启动hadoop成功,之后调用诸如hadoop fs -ls / 命令或者其他的命令时,会出现上述的警告信息,上述信息描述的是NativeCodeLoader不能够去加载系统中的本地hadoop的lib库,这是由于一些系统中glibc版本与hadoop中的版本不同导致的,你可以通过以下的命令来进行验证:

[hadoop@promote ~]$ ls -ls /lib64/libc.so.6
0 lrwxrwxrwx. 1 root root 12 Mar 25 01:38 <span style="color:#FF0000;">/lib64/libc.so.6 -> libc-2.10.so</span>
这里是查找系统中的glibc的版本,通过下面的命令进行调试来查看你安装的hadoop所需要的glibc的版本:

export HADOOP_ROOT_LOGGER=DEBUG,console
hadoop fs -ls /

下面会显示一段调试信息,从中可以看到:

org.apache.hadoop.util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
error libhadoop.so <span style="color:#FF0000;"> /lib64/libc.so.6 required (libc 2.14)</span> /home/hadoop/lib/native/Linux-amd64-64

从上面可以看出:此时hadoop所需要的版本是libc 2.14 而系统提供的则是最大是lib-2.10 因此,要升级libc库
解决:

1 首先下载两个文件:一个是glibc版本与其依赖的glibc-linuxthreads  这里选择:glibc-2.14.tar.gzglibc-linuxthreads-2.5.tar.bz2

下载地址:http://ftp.gnu.org/gnu/glibc/

2 升级glibc

(1)将下载的glibc-2.14.tar.gz解压到/home/hadoop/hadoop-2.7.2/lib/native (即你的hadoop安装目录下的lib/native),之后将glibc-linuxthreads-2.5.tar.bz2解压到/home/hadoop/hadoop-2.7.2/lib/native/glibc-2.14(即刚解压的glibc目录里)命令如下(这里需要切换到你下载的libc的目录里):

[hadoop@promote glibc-2.14]$ tar -zxvf glibc-2.1.4.tar.gz -C /home/hadoop/hadoop-2.7.2/lib/native/
[hadoop@promote glibc-2.14]$ tar -jxvf glibc-linuxthreads-2.5.tar.bz2 -C /home/hadoop/hadoop-2.7.2/lib/native/glibc-2.14(2)进行编译:(这里注意切换到的目录)
[hadoop@promote <span style="color:#FF0000;">glibc-2.14</span>]$ export CFLAGS="-g -O2"

[hadoop@promote <span style="color:#FF0000;">native</span>]$ ./glibc-2.14/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

[hadoop@promote <span style="color:#FF0000;">native</span>]$ make #编译,执行很久大概30分钟,如果出错,出错再重新执行

[hadoop@master001 native]$ sudo make install #安装,必须root用户执行(3)进行验证:
[hadoop@promote ~]$ ls -ls /lib64/libc.so.6
0 lrwxrwxrwx. 1 root root 12 Mar 25 01:38 <span style="color:#FF0000;">/lib64/libc.so.6 -> libc-2.14.so</span>说明系统的glibc版本已经升级到了2.1.4版本了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息