美文网首页我爱编程
hbase的shell应用v2.0

hbase的shell应用v2.0

作者: 有一束阳光叫温暖 | 来源:发表于2018-05-24 17:44 被阅读0次

1.HBase体系架构

HBase的服务器体系结构遵循简单的主从服务器架构,它由HRegion服务器(HRegion Server)群和HBase Master服务器(HBase Master Server)构成。HBase Master服务器负责管理所有的HRegion服务器,而HBase中所有的服务器都是通过ZooKeeper来进行协调,并处理HBase服务器运行期间可能遇到的错误。HBase Master Server本身不存储HBase中的任何数据,HBase逻辑上的表可能会被划分为多个HRegion,然后存储到HRegion Server群中,HBase Master Server中存储的是从数据到HRegion Server中的映射。

hbase架构可以简单通过一张图描述:

  Hbase基础组件说明:

HRegion

当表的大小超过设置值的时候,HBase会自动地将表划分为不同的区域,每个区域包含所有行的一个子集。对用户来说,每个表是一堆数据的集合,靠主键来区分。从物理上来说,一张表被拆分成了多块,每一块就是一个HRegion。我们用表名+开始/结束主键来区分每一个HRegion,一个HRegion会保存一个表里某段连续的数据,从开始主键到结束主键,一张完整的表是保存在多个HRegion上面的。

HMaster

管理HRegionServer,实现其负载均衡。

管理和分配HRegion,比如在HRegion split时分配新的HRegion;在HRegionServer退出时迁移其内的HRegion到其他HRegionServer上。

实现DDL操作(Data Definition Language,namespace和table的增删改,column familiy的增删改等)。

管理namespace和table的元数据(实际存储在HDFS上)。

权限控制(ACL)。

HRegionServer

存放和管理本地HRegion。

读写HDFS,管理Table中的数据。

Client直接通过HRegionServer读写数据(从HMaster中获取元数据,找到RowKey所在的HRegion/HRegionServer后)。

ZooKeeper集群协调系统

存放整个 HBase集群的元数据以及集群的状态信息。

实现HMaster主从节点的failover。

另外还有一些需要注意

HBase Client通过RPC方式和HMaster、HRegionServer通信;

一个HRegionServer可以存放1000个HRegion;

底层Table数据存储于HDFS中,而HRegion所处理的数据尽量和数据所在的DataNode在一起,实现数据的本地化;

数据本地化并不是总能实现,比如在HRegion移动(如因Split)时,需要等下一次Compact才能继续回到本地化。

2.HBase逻辑视图

HBase以表的形式存储数据。表有行和列组成。列划分为若干个列族(row family),每个列族有多个列,每个rowkey和一个列对应一个cell,每个 cell都保存着同一份数据的多个版本。版本通过时间戳来索引。

表结构:


逻辑视图:


  其实,我们把HBase想象成一个大的映射关系,再者,HBase存储的数据可以理解为一种key和value的映射关系,但有不是简简单单的映射关系那种,因为比如有各个时间戳版本等。

通过行键、行键+时间戳或行键+列(列簇:列修饰符),就可以定位特定是数据。

HBase是稀疏存储数据的,因此某些列可以是空白的。

列在列簇中依照字典排序。

  下图中我们可以更加直观的理解:

相关文章

网友评论

    本文标题:hbase的shell应用v2.0

    本文链接:https://www.haomeiwen.com/subject/jyldjftx.html