hbase入门
Posted wanfeng1937
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hbase入门相关的知识,希望对你有一定的参考价值。
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入门的主要内容,如果未能解决你的问题,请参考以下文章
HBase学习01(HBase入门及HBase Shell简单操作)
大数据技术之HBaseHBase简介HBase快速入门HBase进阶