部署Hadoop的集群环境为 操作系统 CentOS 5.8 hadoop版本为cloudera hadoop-0.20.2-cdh3u3 集群中设置支持gzip lzo压缩后,在对压缩文件进行读取或者对输入文件压缩的时候要使用到hadoop的本地库,本地库的默认位置在 $HADOOP_HOME/lib/native/Linux-amd64-64 (64位操作系统) $HADOOP_HOME/lib/native/Linux-i386-32 (32位操作系统) 文件夹中的libhadoop.so文件,就是hadoop的本地库。 如果本地库不存在,或者本地库与当前操作系统的版本不一致的时候,会报下面的错误: 11/09/20 17:29:49 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable 增加调试信息设置 $ export HADOOP_ROOT_LOGGER=DEBUG,console
error libhadoop.so /lib64/libc.so.6 required (libc 2.6) /usr/local/hadoop/lib/native/Linux-amd64-64 说明系统中的glibc的版本和libhadoop.so需要的版本不一致导致 查看系统的libc版本 # ll /lib64/libc.so.6 lrwxrwxrwx 1 root root 11 Apr 24 16:49 /lib64/libc.so.6 -> libc-2.5.so 系统中的版本为2.5 将系统中的glibc升级为2.9 下载glibc 下载glibc-linuxthreads 解压 安装编译过程中需要注意三点: 安装完后,可以查看ls -l /lib/libc.so.6已升级 lrwxrwxrwx 1 root root 11 Apr 24 16:49 /lib64/libc.so.6 -> libc-2.9.so 测试本地库是否升级 $ export HADOOP_ROOT_LOGGER=DEBUG,console $ hadoop fs -text /test/data/origz/access.log.gz 12/04/25 08:54:47 INFO lzo.LzoCodec: Successfully loaded & initialized native-lzo library [hadoop-lzo rev 6bb1b7f8b9044d8df9b4d2b6641db7658aab3cf8] 可以看到将glibc升级后不再报错,已经成功加载本地库 更多Hadoop相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13 |
本站采用创作共用版权 CC BY-NC-ND/2.5/CN 许可协议
如非特别注明,本站内容均为 领悟书生原创,转载请务必注明作者和原始出处。 本文地址: http://www.656463.com/article/1938 |
Hadoop本地库与系统版本不一致引起的错误解决方法
最新推荐文章于 2022-06-07 11:17:17 发布