Failed to load native-hadoop本地库不一致的解决办法

 
 

在官网上下载了hadoop2.5.2版本的hadoop进行安装,安装完成后一切功能都很正常,是会报这样的的一个警告信息:

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

在网上搜了下原因,是因为hadoop官网的安装包提供的native库是32位的,jar包本身是不分32或64位的,但是so文件是区分的。
native库是提供给java调用的c写的接口程序,在需要操作底层硬件的时候或实现某些高性能操作的时候常用到C语言来实现,java通过native方法来调用。
在hadoop中,一些文件的读写压缩等操作会用到native库,但是java方法中也是有实现的,所以貌似这个库无法调用不会影响到hadoop的整体功能,只是性能上会比较差。
要解决这个问题,网上提供的方法都是要自己重新编译hadoop源文件。不过整个项目编译非常耗时间。实际上只要替换掉{hadoop_home}/lib/native目录下的文件就可以了。
在此提供一个native库:native-64,替换上后你的hadoop就变成64位版本了。
解压替换到{hadoophome}/lib/native目录,注意替换之前请检查原生的native库中的这两个文件的版本是否一致,不一致的话就不建议替换 libhadoop.so.1.0.0 ; libhdfs.so.0.0.0

    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值