Hbase部分知识点

1.HBase与传统数据库的区别

①数据类型:关系数据库采用关系模型,具有丰富的数据类型和存储方式,HBase则采用了更加简单的数据模型,它把数据存储为未经解释的字符串。
②数据操作:关系数据库中包含了丰富的操作,其中会涉及复杂的多表连接。HBase没有太多复杂的多表连接,只有简单的插入、查询、删除、更新等。
③存储模式:关系数据库基于行模式存储。HBase是基于列存储的。
④数据索引:关系数据库通常可以针对不同列构建复杂的多个索引,以提高数据访问性能。HBase只有一个索引——行键。
⑤数据维护:在关系数据库中,更新操作会用最新的值去替换旧值,旧值被覆盖后就不会存在。而在HBase中,是生成一个新的版本,旧有的版本仍然保留。
⑥可伸缩性:关系数据库很难实现横向扩展,纵向扩展的空间也比较有限。HBase能够轻易地通过在集群中增加或者减少硬件数量来实现性能的伸缩。

2.以实例说明HBase的数据模型

Hbase部分知识点_第1张图片

3.HBase各功能组件及其作用

①库函数:链接到每个客户端
②一个Master主服务器:负责管理和维护HBase表的分区信息,维护Region服务器列表,分配Region,负载均衡。
③许多个Region服务器:负责存储和维护分配给自己的Region,处理来自客户端的读写请求。

4.HBase三层结构的名称和作用

Hbase部分知识点_第2张图片

5.简述HLog的工作原理(出现故障时拆分)

HBase系统为每个Region服务器配置了一个HLog文件,它是一种预写式日志,用户更新数据必须首先写入日志后才能写入MemStore缓存,并且直到MemStore缓存内容对应的日志已经写入磁盘,该缓存内容才能被刷写到磁盘。当服务器发生故障时:
Zookeeper监测到故障Region服务器,并通知给Master。
Matser找到该服务器上遗留下来的HLog文件。
系统把HLog的数据根据所属的Region对象进行拆分,把相应的数据分发到可用的Region服务器上。
Region服务器根据记录重新把日志记录中的数据写入Memstore缓存,然后刷新到磁盘的StoreFile文件中,完成数据恢复。

6.行键、列族、时间戳、列限定符、单元格

行键:每个HBase表都由若干行组成,每个行由行键(row key)来标识, 行键是唯一的,在一个表里只出现一次,行键可以是任意的字节数组。
列族:列族需要在创建表的时候就定义好,一个HBase表被分组成许多“列族”(Column Family)的集合,它是基本的访问控制单元。
列限定符:列族里的数据通过列限定符(或列)来定位。
单元格:在HBase表中,通过行键、列族和列限定符确定一个“单元格”(cell),单元格中存储的数据没有数据类型,总被视为字节数组byte[]。
时间戳:每个单元格都保存着同一份数据的多个版本,这些版本采用时间戳进行索引。

7.启动HBase

启动HBase集群:bin/start-hbase.sh
单独启动一个HMaster进程:bin/hbase-daemon.sh start master
单独启动一个HRegionServer进程:bin/hbase-daemon.sh start regionserver
进入客户端:hbase shell

你可能感兴趣的:(hbase)