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

hadoop 2.2 hbase "Unable to load native-hadoop library for your platform" 问题解决

2014-12-03 15:20 531 查看
在基于hadoop 2.x的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集群,问题解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐