基于hadoop 2.0 的hbase "Unable to load native-hadoop library for your platform" 问题解决

在基于hadoop 2.0的hbase上执行命令,经常会看到如下提示:

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

1. 首先要检查hdfs有没有加载native lib库,检查hdfs的日志,如果发现其中有:

ERROR org.apache.hadoop.io.nativeio.NativeIO: Unable to initialize NativeIO libraries

说明hdfs的native的lib没有加载,检查hadoop目录下的lib/native下是否存在libhadoop.so,并且用file命令检查该so是由于操作系统的平台对应,默认下载的bin包中的so是32位的,如果用在64位的操作系统上,需要重新编译。可以参见http://blog.csdn.net/lalaguozhe/article/details/10580727

2. 如果以上问题解决,hdfs的日志中,没有发现有关native的错误信息,则要检查hbase的native库配置,在hbase中默认的native库路径是hbase目录下的lib/native/Linux-*(跟平台类型相关),可以通过ps aux|grep `jps|grep HRegion|awk '{print $1}'`命令获得region server的启动项,检查其中-Djava.library.path=的配置,我的服务器上是lib/native/Linux-amd64-64,于是在hbase目录下创建lib/native/Linux-amd64-64这个目录,并把hadoop目录下的lib/natvie下的so拷贝过来,在集群的所有结点上进行相同的操作,之后重启hbase集群,问题解决


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值