欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hbase学习分享

程序员文章站 2022-07-13 22:46:52
...

最近因为项目需要,开始接触Hbase。学习的过程中遇到了一些问题,也找到了一些方法和好的资料,通过本文总结一下,同时也与大家分享。

 

按照顺序,总结如下:

 

什么是Hbase

概况的讲,Hbase是bigtable的开源山寨版本,是建立的hdfs之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。高存储、便于横向扩展的特性,也是我们项目选择Hbase进行存储的主要原因。

 

学习Hbase需要了解到Hbase的逻辑视图和物理存储。

逻辑视图:

一行(row) 对应 多个列族(family),一个family对应多个列(Column),每一个列对应一个存储单元(cell),而每一个单元格保存着一份数据的多个版本,版本之间通过时间戳(version)来做区分,不同版本的数据按照时间的倒叙排序,即最新的数据排在最前面。

 

物理存储:

Hbase的table在行的方向上分割为多个Hregion,Hregion增大到一定程度时,会自动分割为两个新的Hregion。不同Hregion会分布在不同的Hregion Server上面。因此HRegion是Hbase中分布式存储和负载均衡的最小单元。

不过HRegion不是存储的最小单元,下面可以细分为Store,StoreFile。

 

关于Hbase的更详细的内容,可以参考淘宝数据平台的博客“Hbase 介绍”,写得非常的好和全面。

 

如何使用Hbase

Hbase的环境搭建目前是公司DBA来弄的,还没有自己动手实践,以后有机会自己安装一次试试。这里的使用就是使用

Java Client API连接Hbase数据库,通过程序操纵数据库的增删改查。

Hbase的API设计的蛮简单的,简单功能的使用只需要掌握下面几个类就OK了,如下:

Configuration、HBaseAdmin、HTableDescriptor、HTable、HTablePool、ResultScanner、KeyValue、Scan、Get、Result

 

具体实例,可以参考HBase编程api介绍、H.E.'s Blog关于Hbase的系列文章,其中HBase入门篇2-Java操作HBase例子这篇文章写和详细。

 

Hbase的写入性能

测试了Hbase在单线程和多线程的读写性能,测试文档如附件。

关于影响Hbase性能的因素,可以参考文章:

影响HBase insert性能的几个因素

 

Hbase的封装访问类

目前Hbase比较成熟的封装类不多,比较好的就是Hbase-dsl,项目地址:https://github.com/nearinfinity/hbase-dsl/wiki

 

常用链接:

Hbase的中文API

Apache HBase Book

 

 

这篇文章只是简单罗列了一些找到的关于Hbase的资料,方便自己和他人,欢迎讨论

Hbase挺强大的,还要不断的学习。

 

文 by 中亭