hadoop本地库与系统版本不一致引起的错误解决方法_Hadoop,ERP及大数据讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Hadoop,ERP及大数据讨论区 »
总帖数
7
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3110 | 回复: 6   主题:  hadoop本地库与系统版本不一致引起的错误解决方法        上一篇   下一篇 
white
注册用户
等级:少校
经验:1327
发帖:305
精华:0
注册:2011-7-21
状态:离线
发送短消息息给white 加好友    发送短消息息给white 发消息
发表于: IP:您无权察看 2016-1-5 15:20:40 | [全部帖] [楼主帖] 楼主


部署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
 
$ hadoop fs -text /test/data/origz/access.log.gz
 
2012-04-24 15:55:43,269 WARN org.apache.hadoop.util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
 
 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 

解压 

$tar -jxvf glibc-2.9.tar.bz2 
$cd glibc-2.9 $tar -jxvf ../glibc-linuxthreads-2.5.tar.bz2 
$cd .. 
$export CFLAGS="-g -O2" 
$./glibc-2.9/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin 
$make 
#make install


安装编译过程中需要注意三点: 

1、要将glibc-linuxthreads解压到glibc目录下。 

2、不能在glibc当前目录下运行configure。 

3、加上优化开关,export CFLAGS="-g -O2",否则会出现错误 


安装完后,可以查看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]
 
12/04/25 08:54:47 DEBUG util.NativeCodeLoader: Trying to load the custom-built native-hadoop library...
 
12/04/25 08:54:47 INFO util.NativeCodeLoader: Loaded the native-hadoop library
12/04/25 08:54:47 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library
 
12/04/25 08:54:47 DEBUG fs.FSInputChecker: DFSClient readChunk got seqno 0 offsetInBlock 0 lastPacketInBlock false packetLen 132100



可以看到将glibc升级后不再报错,已经成功加载本地库
      


















赞(0)    操作        顶端 
斗破苍穹
注册用户
等级:中尉
经验:442
发帖:3
精华:0
注册:2016-1-8
状态:离线
发送短消息息给斗破苍穹 加好友    发送短消息息给斗破苍穹 发消息
发表于: IP:您无权察看 2016-2-1 17:32:49 | [全部帖] [楼主帖] 2  楼

感觉这个说得好详细,楼主用心了,感谢



赞(0)    操作        顶端 
你真的真的很好
注册用户
等级:下士
经验:164
发帖:0
精华:0
注册:2016-2-14
状态:离线
发送短消息息给你真的真的很好 加好友    发送短消息息给你真的真的很好 发消息
发表于: IP:您无权察看 2016-2-28 23:34:06 | [全部帖] [楼主帖] 3  楼

是调试的问题吗?



赞(0)    操作        顶端 
wuli涛涛
注册用户
等级:下士
经验:192
发帖:1
精华:0
注册:2016-2-17
状态:离线
发送短消息息给wuli涛涛 加好友    发送短消息息给wuli涛涛 发消息
发表于: IP:您无权察看 2016-3-3 17:33:11 | [全部帖] [楼主帖] 4  楼

还行得这个



赞(0)    操作        顶端 
唾沫星子
注册用户
等级:下士
经验:176
发帖:1
精华:0
注册:2016-1-8
状态:离线
发送短消息息给唾沫星子 加好友    发送短消息息给唾沫星子 发消息
发表于: IP:您无权察看 2016-3-16 17:40:56 | [全部帖] [楼主帖] 5  楼

版本不一样



赞(0)    操作        顶端 
殷桃小丸子
注册用户
等级:中士
经验:216
发帖:1
精华:0
注册:2016-2-17
状态:离线
发送短消息息给殷桃小丸子 加好友    发送短消息息给殷桃小丸子 发消息
发表于: IP:您无权察看 2016-3-18 10:21:18 | [全部帖] [楼主帖] 6  楼

真的好赞啊



赞(0)    操作        顶端 
火树银花
注册用户
等级:中士
经验:245
发帖:2
精华:0
注册:2016-1-8
状态:离线
发送短消息息给火树银花 加好友    发送短消息息给火树银花 发消息
发表于: IP:您无权察看 2016-3-18 10:48:32 | [全部帖] [楼主帖] 7  楼

学习学习,真的有提高!



赞(0)    操作        顶端 
总帖数
7
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论