在HBase中使用Hadoop本地库(适用于HBase 1.x及Hadoop 2.x)
2015-12-09 00:00
645 查看
摘要: 解决HBase无法正常加载hadoop本地库的问题
hadoop提供的本地库包含了压缩、循环冗余校验在内的多种功能,与内建的相应Java类相比,使用该库能够明显地提高运行效率。在HBase中默认未提供该库,在运行时或日志中可以发现如下警告:
运行如下命令可以检测本地库的加载情况:
jvm默认在lib/native/PLATFORM中搜索本地库,其中PLATFORM是平台相关的描述字符串,由os.name和os.arch决定,可由如下代码获取这两个属性:
在通常的64位机器、GNU/Linux操作系统及64位jvm中,PLATFORM为“Linux-amd64-64”,将同一版本的hadoop本地库放入lib/native/PLATFORM中,再次检测本地库加载情况:
HBase已经能够正常使用hadoop本地库。
hadoop提供的本地库包含了压缩、循环冗余校验在内的多种功能,与内建的相应Java类相比,使用该库能够明显地提高运行效率。在HBase中默认未提供该库,在运行时或日志中可以发现如下警告:
2015-12-08 21:47:42,194 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
运行如下命令可以检测本地库的加载情况:
$ ./bin/hbase org.apache.hadoop.util.NativeLibraryChecker 2015-12-08 21:47:42,194 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Native library checking: hadoop: false zlib: false snappy: false lz4: false bzip2: false 2015-12-08 21:47:42,266 INFO [main] util.ExitUtil: Exiting with status 1
jvm默认在lib/native/PLATFORM中搜索本地库,其中PLATFORM是平台相关的描述字符串,由os.name和os.arch决定,可由如下代码获取这两个属性:
System.out.println("os.name: " + System.getProperty("os.name")); System.out.println("os.arch: " + System.getProperty("os.arch"));
在通常的64位机器、GNU/Linux操作系统及64位jvm中,PLATFORM为“Linux-amd64-64”,将同一版本的hadoop本地库放入lib/native/PLATFORM中,再次检测本地库加载情况:
$ ./bin/hbase org.apache.hadoop.util.NativeLibraryChecker 2015-12-08 21:47:53,224 INFO [main] bzip2.Bzip2Factory: Successfully loaded & initialized native-bzip2 library system-native 2015-12-08 21:47:53,226 INFO [main] zlib.ZlibFactory: Successfully loaded & initialized native-zlib library Native library checking: hadoop: true ~/develop/hbase-1.1.2/lib/native/Linux-amd64-64/libhadoop.so.jvm7 zlib: true /lib64/libz.so.1 snappy: true /lib64/libsnappy.so.1 lz4: true revision:99 bzip2: true /lib64/libbz2.so.1
HBase已经能够正常使用hadoop本地库。
相关文章推荐
- Facebook's New Real-time Messaging System: HBase to Store 135+ Billion Messages a Month
- Hadoop生态上几个技术的关系与区别:hive、pig、hbase 关系与区别
- 基于HBase Thrift接口的一些使用问题及相关注意事项的详解
- 如何解决struts2日期类型转换
- hbase shell基础和常用命令详解
- 手把手教你配置Hbase完全分布式环境
- 实战:在Java Web 项目中使用HBase
- HBase RowKey设计的那些事
- Spark中将对象序列化存储到hdfs
- HBase基本原理
- HBase中的基本概念
- 【原创】基于分布式存储的开源系统在实时数据库海量历史数据存储项目上的预研
- 测试Hadoop的hdfs的问题?
- HBase0.96.x开发使用(一)--安装
- 基于外部ZooKeeper的GlusterFS作为分布式文件系统的完全分布式HBase集群安装指南
- 基于solr实现hbase的二级索引
- 非mapreduce生成Hfile,然后导入hbase当中
- HBase 系统架构