概述
HBase
- 基本概念
- 基本元素
- 表 Table
基本概念
基本元素
- Row key(行键):对应为关系型数据库中的主键,唯一,可以是任意的字符串,最大长度为64K,在内部存储中会被存储为字节数组。如示例1中"com.cnn.www"为Row Key。HBase表中的数据是按照Row Key字符串的字典序排列的;利用此特性,将一下经常读取的行存储到一起或者靠近,减少Scan耗时,提高读取的效率。
- Column Family(列族):表Schema的一部分,HBase表中的每个列都归属于某个列族,即列族是由一系列的列组成的,必须在创建表的时候就指定好。如示例1中,contents和anchor为两个列族,分别包含了不同的列。列族不是越多越好,过多的列族会导致io增多及分裂时数据不均匀,官方推荐列族数量为1~3个。列族不仅能帮助开发者构建数据的语义边界,还能有助于开发者设置某些特性,例如可以指定某个列族内的数据压缩形式。访问控制、磁盘和内存怒的使用统计都是在列族层面进行的。
- Column(列):只能从属于一个列族。列的数量一般没有强限制,一个列族中可以有数百万列,且这些列都可以动态添加。如示例1中,anchor:cssnsi.com, anchor:my.look.ca和contents:html,分别为anchor和contents列族的列。
- Version Number(版本号):HBase中每一列的值或者说每个单元格的值都是具有版本号的,默认使用系统当前时间戳,如示例1中Time stamp,也可以用户显式地设置。一个单元格的不同版本号按照降序排列,访问的时候优先读取最新的值,这种优化的目的在于让新值比旧值更容易被读取。用户可以指定每个值所能保存的最大版本数。
- Cell(单元格):一个单元格就是由RowKey、Column Family:Column、Version Number唯一确定的,Cell中的数据是没有类型的,全部都是字节码。
表 Table
- 概念模型
示例1:表webtable
有一个名为webtable的表,包含两个列族:contents和anchor.在这个例子里面,anchor有两个列 (anchor:cssnsi.com, anchor:my.look.ca),contents仅有一列(contents:html)
Row key | Time stamp | ColumnFamily contents | ColumnFamily anchor |
---|---|---|---|
“com.cnn.www” | t9 | anchor:cnnsi.com = “CNN” | |
“com.cnn.www” | t8 | anchor:my.look.ca = “CNN.com” | |
“com.cnn.www” | t6 | contents:html = “<html>…” | |
“com.cnn.www” | t5 | contents:html = “<html>…” | |
“com.cnn.www” | t3 | contents:html = “<html>…” |
- 物理模型
在概念模型中,整个表综观上表现为一个稀疏的矩阵,但是在实际的物理存储中,整个表是区分列簇存储的。
Row Key | Time stamp | Column Family anchor |
---|---|---|
“com.cnn.www” | t9 | anchor:cnnsi.com = “CNN” |
“com.cnn.www” | t8 | anchor:my.look.ca = “CNN.com” |
Row Key | Time stamp | Column Family contents |
---|---|---|
“com.cnn.www” | t6 | contents:html = “<html>…” |
“com.cnn.www” | t5 | contents:html = “<html>…” |
“com.cnn.www” | t3 | contents:html = “<html>…” |
在物理模型中,又有Region Server、Region、Store等概念。
- Store:每个列族保存在一个store中,每个store又包含一个MemStore和多个StoreFile;当MemStore达到一定容量时,会持久化到StoreFile中。
- Region:HBase中扩展和负载均衡的基本单位,一个Region包含多个store。当Region达到一定容量上限是,会分裂成多个Region。
- Region Server:维护Region并处理对Region的IO请求、切分在运行过程中变得过大的Region。
参考链接:最近学习了HBase
最后
以上就是沉静小海豚为你收集整理的【大数据】HBase基本概念的全部内容,希望文章能够帮你解决【大数据】HBase基本概念所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复