HBase是Hadoop的数据库,能够对大数据提供随机、实时读写访问。他是开源的,分布式的,多版本的,面向列的,存储模型。在讲解的时候我首先给大家讲解一下HBase的整体结构,如下图:
HBase Master是服务器负责管理所有的HRegion服务器,HBase Master并不存储HBase服务器的任何数据,HBase逻辑上的表可能会划分为多个HRegion,然后存储在HRegion Server群中,HBase Master Server中存储的是从数据到HRegion Server的映射。一台机器只能运行一个HRegion服务器,数据的操作会记录在Hlog中,在读取数据时候,HRegion会先访问Hmemcache缓存,如果缓存中没有数据才回到Hstore中上找,没一个列都会有一个Hstore集合,每个Hstore集合包含了很多具体的HstoreFile文件,这些文件是B树结构的,方便快速读取。
再看下HBase数据物理视图如下:
| Row Key | Timestamp | Column Family |
| URI | Parser |
| r1 | t3 | url=http://www.taobao.com | title=天天特价 |
| t2 | host=taobao.com | |
| t1 | | |
| r2 | t5 | url=http://www.alibaba.com | content=每天… |
| t4 | host=alibaba.com | |
?
Row Key: 行键,Table的主键,Table中的记录按照Row Key排序? Timestamp: 时间戳,每次数据操作对应的时间戳,可以看作是数据的version number? Column Family:列簇,Table在水平方向有一个或者多个Column Family组成,一个Column Family中可以由任意多个Column组成,即Column Family支持动态扩展,无需预先定义Column的数量以及类型,所有Column均以二进制格式存储,用户需要自行进行类型转换。
了解了HBase的体系结构和HBase数据视图够,现在让我们一起看看怎样通过Java来操作HBase数据吧!先说说具体的API先,如下
HBaseConfiguration是每一个hbase client都会使用到的对象,它代表的是HBase配置信息。它有两种构造方式:public HBaseConfiguration()public HBaseConfiguration(final Configuration c)默认的构造方式会尝试从hbase-default.xml和hbase-site.xml中读取配置。如果classpath没有这两个文件,就需要你自己设置配置。Configuration HBASE_CONFIG = new Configuration();HBASE_CONFIG.set(“hbase.zookeeper.quorum”, “zkServer”);HBASE_CONFIG.set(“hbase.zookeeper.property.clientPort”, “2181″);HBaseConfiguration cfg = new HBaseConfiguration(HBASE_CONFIG);HBase Java API使用操作例子Hbase的入门配置教程(0.20.6)相关资讯 Hbase - HBase 参考文档翻译之 Getting (08月15日)
- HBase应用开发回顾与总结系列 (01月10日)
- Apache HBase 2015年发展回顾与未 (01月04日)
| - 为啥HBase需要搭建SQL引擎层 (02月19日)
- HBase表数据分页处理 (01月10日)
- Hbase VS Oracle (11/21/2015 20:22:40)
|
本文评论 查看全部评论 (0)