美文网首页
HBase学习总结

HBase学习总结

作者: Moon_魔宽 | 来源:发表于2018-11-12 14:06 被阅读0次

版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/201f93d78fbf

逻辑视图:

HBase存储方式为列式存储,最基本的单位是列(column),一列或多列形成一行(row),并由唯一的行键(row key)确定存储。

       row1,row2,row3是三条记录唯一的row key值,Column-family1、Column-family2、Column-family3是三个列族,每个列族又有不同数量的列,比如Column-family1包括column1和column2两列,t1:abc和t2:opq是由row1和Column-family1唯一确定的单元cell,这个单元包括两个内容:abc和opq,t1和t2为时间戳。

行序是按照行键的字典序进行排序的(字典序:1,10,100,11,12,13……19,2,20,21,22……9,91,92……99),即按照二进制逐字节从左到右依次对比每一个行键,例如row-1<row-2……

物理存储:

1、HBase表中所有行都是按照row key的字典序排序;

2、表在行的方向上分割为多个region,由[startkey,endkey]表示,不同的region会被master分配给不同的Region Server进行管理;

3、region按大小分割,每个表在开始时只有一个region,随着数据不断增多,region不断增大,达到阈值时,region就会等分为两个新的region。当数据持续增多,就有更多的region;

4、region分布在不同的Region Server上,但不会跨越在不同的Region Server;Region Server一方面维护管理region的状态,另一方面与HMaster交互通信;

5、region是HBase分布式存储和负载均衡的最小单元,它由一个或多个Store组成,每个store保存一个列族,每个store由一个memstore和0到多个StoreFile组成,StoreFile以HFile的格式保存在HDFS上。

region定位:

HBase中有两张特殊的表:-ROOT-和.META.

.META.表:记录了用户表的region信息,.META.可以有多个region;

-ROOT-表:记录了.META.表的region信息,-ROOT-只有一个region;

而zookeeper中记录了-ROOT-表的地址

因此HBase使用三层结构来定位region:

1.通过zookeeeper file里的文件得到-ROOT-表的地址;

2.通过-ROOT-表查找.META.表的第一个表中相应region的地址;

3.通过.META.表找到所要用户表region的位置。

       三次访问,需要多次网络操作,但client会做一定缓存。

HBase shell操作:

       部分命令清单:

Hbase Shell常用命令

HBase相关组件:

1.Client

HBase Client通过RPC与HMaster和Region Server进行通信。HMaster负责region的管理,Region Server负责读写操作。

2.Zookeeper

Zookeeper存储了-ROOT-表及HMaster的地址,Region Server也通过Ephemeral方式注册到Zookeeper中,使得HMaster随时可以感知到各Region Server的健康状态,也避免了HMaster单点故障发生。

1、保证任何时候,集群中只有一个HMaster;

2、存储所有region的寻址入口;

3、实时监控Region Server的上线下线信息,并通知给HMaster;

4、存储HBase的scheme和table元数据

3.HMaster

主要负责table和region的管理:

1、管理用户对table的增删改查工作;

2、为Region Server分配region,负责Region Server的负载均衡;

3、在Region Server停机后,负责其上region的迁移

4.HRegion server

响应client的I/O请求,向HDFS中读写数据。

1、Region Server内部管理了很多HRegion对象,每个HRegion对象对应table中的一个region,HRegion中有多个HStore组成。

2、HStore由两部分组成:MemStore和StoreFile。数据首先会写入MemStore中,当其满了后会溢写为一个StoreFile(实现为HFile),当StoreFile数量增多时会触发compact,将多个StoreFiles合并为一个StoreFile,随着单个StoreFile越来越大,大小超过一定阈值,会触发split操作,把当前的Regionsplit成两个Region,父Region下线,新的两个子Region会被HMaster分配到相应的Region Server上,使得原先一个Region压力得以分流。如下图:

3、在每个Region Server中,存在一个HLog文件用于数据恢复。

相关文章

  • HBASE学习笔记

    本文是对Hbase组件的一个学习总结,共包括如下章节的内容: Hbase是什么 Hbase的数据模型 Hbase体...

  • HBase学习总结

    版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/201f9...

  • Hbase 学习总结

    1.Hbase 架构图: 2.Hbase组件功能: 3.Hbase 常用命令: 3.1 创建表 3.2 put 操...

  • Hbase运行机制

    本文思路 Hbase是什么 Hbase的优劣 Hbase架构 Hbase容错 Hbase使用总结 HBase是什么...

  • HBase原理总结

    在总结Spark读写HBase的同时,也顺便学习了一下HBase的原理,同样做个简单的记录。事实上,相关的总结网上...

  • 面试题汇总:HBASE

    1.《Hbase相关面试题》 2.《【面试】HBase面试题》 3.《Hbase总结(六)hbase37个笔试题》...

  • Hbase 之 Shell 初级(一)

    一. 简介 学习Hbase最直观的方式无非是通过Shell命令,本文作为基础入门篇总结回顾一下常用 Hbase S...

  • HBASE之JAVA API学习笔记

    本文是对如何使用Hbase提供的Java Api编写Hbase客户端程序的一个学习总结,共包括如下章节的内容: 概...

  • hbase资料收集

    一、HBase 0.94.1 block-cache 理解 二、HBase深入学习(1) 三、HBase深入学习(...

  • Hbase 入门

    Hbase简介 参考:Hbase技术详细学习笔记 如何合理的设计HBase RowKey? Hbase是分布式、面...

网友评论

      本文标题:HBase学习总结

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