码迷,mamicode.com
首页 > 其他好文 > 详细

hbase入门

时间:2019-01-25 12:52:32      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:nbsp   选择   单元   tab   map   增加   删除   单行   另一个   

2019-01-25 11:17:30

Hbase 是按照BIgTable模型实现的,是一个稀疏的、分布式的、持久化的、多维的映射,由行键、列键和时间戳索引。

数据存取模式:

SortedMap<RowKey,List<SortedMap<Column,List<Value,Timetamp>>>>

第一个SortedMap代表那个表,包含一个列族的List。列族中包含了另一个SortedMap存储列和相应的值。这些值在最后的List中,存储了值和该值被设置的时间戳。

1、自动分区

hbase中扩展和负载均衡的基本单位称为region,region本质上是以行键排序的连续存储的区间。如果region太大,系统就会把它们动态拆分,相反地,就把多个region合并,以减少存储文件的数量。

一张表初始对的时候只有一个region,用户开始向表中插入数据时,系统会检查这个region的大小,确保其不超过配置的最大值。如果超过了限制,系统会在中间键(middle key,region中间的那个行键)处将这个region拆分成两个大致相等的子region。

每一个region只能由一台region服务器(region server)加载,每一台region服务器可以同时加载多个region。

注意:每台服务器中region的最佳加载数量是10-1000,每个region的最佳大小是1GB-2GB

2、存储API

API提供了建表、删表、增加列族和删除列族操作,同时还提供了修改表和列族元数据的功能,如压缩和设置块大小。

还提供了客户端对给定的行键值进行增加、删除和查找的操作的功能。

SCAN API 提供了高效遍历某个范围的行的功能,同时可以限定返回那些列或者返回那些版本数。通过设置过滤器可以匹配返回的列,通过设置起始和终止的时间范围可以选择查询的版本。

系统支持单行事务,基于这个特性,系统实现了对单个行键下存储的数据的原子读-修改-写(read-modify-write)序列。不支持跨行和跨表的事务。

单元格的值可以当作计数器使用,并且能够支持原子更新。

3、实现

数据存储在存储文件(store file)中,称为HFile,HFile中存储的是经过排序的键值映射结构。文件内部由连续的快组成,块的索引信息存储在文件的尾部。当把HFile打开并加载到内存中时,索引信息会优先加载到内存中,每个块的默认大小是64KB,可以根据需要配置不同的块的大小。存储文件提供了一个设定起始和终止行键范围的API用于扫描特定的值。

 

hbase入门

标签:nbsp   选择   单元   tab   map   增加   删除   单行   另一个   

原文地址:https://www.cnblogs.com/wanfeng1937/p/10318855.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!