专栏首页码字搬砖Hbase原理详解

Hbase原理详解

各位看官,下面跟着小二一起开始hbase原理的冒险之旅吧,坐稳了,go~

先上一张官方图片

首先指出图片的一个错误,Hlog应该属于HRegionserver的,不应该在HRegion中。

Hbase基本组件说明:

Client 包含访问HBase的接口,并维护cache来加快对HBase的访问,比如region的位置信息 Master 为Region server分配region 负责Region server的负载均衡 发现失效的Region server并重新分配其上的region 管理用户对table的增删改查操作 Region Server Regionserver维护region,处理对这些region的IO请求 Regionserver负责切分在运行过程中变得过大的region Zookeeper作用 通过选举,保证任何时候,集群中只有一个master,Master与RegionServers 启动时会向ZooKeeper注册 存贮所有Region的寻址入口 实时监控Region server的上线和下线信息。并实时通知给Master 存储HBase的schema和table元数据 Zookeeper的引入使得Master不再是单点故障 HLog 该机制用于数据的容错和恢复: 每个HRegionServer中都有一个HLog对象,HLog是一个实现Write Ahead Log的类,在每次用户操作写入MemStore的同时,也会写一份数据到HLog文件中(HLog文件格式见后续),HLog文件定期会滚动出新的,并删除旧的文件(已持久化到StoreFile中的数据)。当HRegionServer意外终止后,HMaster会通过Zookeeper感知到,HMaster首先会处理遗留的 HLog文件,将其中不同Region的Log数据进行拆分,分别放到相应region的目录下,然后再将失效的region重新分配,领取 到这些region的HRegionServer在Load Region的过程中,会发现有历史HLog需要处理,因此会Replay HLog中的数据到MemStore中,然后flush到StoreFiles,完成数据恢复(Region就是StoreFiles,StoreFiles里由HFile构成,Hfile里由hbase的data块构成,一个data块里面又有很多keyvalue对,每个keyvalue里存了我们需要的值。

1.图片解释:

Client写入 -> 存入MemStore,一直到MemStore满 -> Flush成一个StoreFile,直至增长到一定阈值 -> 出发Compact合并操作 -> 多个StoreFile合并成一个StoreFile,同时进行版本合并和数据删除 -> 当StoreFiles Compact后,逐步形成越来越大的StoreFile -> 单个StoreFile大小超过一定阈值后,触发Split操作,把当前Region Split成2个Region,Region会下线,新Split出的2个孩子Region会被HMaster分配到相应的HRegionServer 上。HBase只是增加数据,有所得更新和删除操作,都是在Compact阶段做的,所以,用户写操作只需要进入到内存即可立即返回,从而保证I/O高性能。

2.对应关系

Hbase为列式存储,table中所有行按照rowkwy字典顺序排列。table在行方向上分割成多个HRegion,一个HRegion对应一到多行。不同Region可以分到不同的RegionServer上(RegionServer对应着物理节点),另外同一个HRegion不会拆分到不同的RegionServer上。一个Hregion有一到多个Store组成,每个Store对应一个Columns Family。每一个Store有一个MemStore和0至多个StoreFIle组成,StoreFile以HFile存储到HDFS上

3.注意

上图中有个细节那就是HFile对应着HDFS Client,换句话说HFile是通过HDFS Client 写到HDFS上的,满足HDFS文件的所有性质

4.重点说明一下Client通过Zookeeper寻址的过程

图1:

Client访问流程 Client -> Zookeeper -> -ROOT- -> .META. -> 用户数据表 hbase 的数据字典: -ROOT- .META. 这俩表被hbase shell 的list 命令过滤掉,不显示,但是他们跟普通的hbase TABLE 是一样的。 .META.  表包含所有的用户空间region列表,同时,以及RegionServer的服务器地址,.META.也可以有多个region -ROOT- 记录.META.表的Region的路径信息,但是,-ROOT-只有一个region Zookeeper存储了-ROOT-表的地址和HMaster的地址,HRegionServer也会把自己以Ephemeral方式注册到Zookeeper中,使得HMaster可以随时感知到各个HRegionServer的健康状态(这也就是为什么官方图中zk会去连接HMaster)。 所以Client先连接zk,找到- ROOT-表的位置(meta-region-server),然后去Hbase中找到这张表根据TableName、startkey找到相应的regoninfo,从而找到相应的.META.的Region所在的Regionserver,从而找到目标表的信息,最后去访问目标表 需要注意的是:整个过程中并没有涉及到MasterServer,也就是说HBase日常的数据操作并不需要MasterServer,不会造成MasterServer的负担。 未启动hbase

启动hbase

图二:

首先是RowKey,RowKey由三部分组成:TableName, StartKey 和 TimeStamp。RowKey存储的内容我们又称之为Region的Name。 表中最主要的Family:info,info里面包含三个Column:regioninfo, server, serverstartcode。其中regioninfo就是Region的详细信息,包括StartKey, EndKey 以及每个Family的信息等等。server存储的就是管理这个Region的RegionServer的地址。 所以当Region被拆分、合并或者重新分配的时候,都需要来修改这张表的内容。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • AI一分钟 | 程维成立滴滴股权投资公司;特斯拉董事会决定放弃私有化

    8 月 27 日午间消息,滴滴 CEO 程维近日出资成立滴滴(厦门)股权投资有限公司,主营股权投资以及相关咨询服务。工商资料显示,滴滴(厦门)股权投资有限公司于...

    AI科技大本营
  • 传统程序员转型AI做错了吗?

    近年来,随着 Google 的 AlphaGo 打败韩国围棋棋手李世乭之后,机器学习尤其是深度学习的热潮席卷了整个 IT 界。所有的互联网公司,尤其是 Goog...

    AI科技大本营
  • 王者Python,薪酬榜第一了!干掉Java后如是说……

    近期,IEEE Spectrum 杂志发布了一年一度的编程语言排行榜,这个排行榜已经连续发布了五年。对于每位开发者而言,想要衡量编程语言流行度则需要依赖相对流行...

    AI科技大本营
  • 汉语转拼音工具、新华字典API——两个支持Python的中文资源

    【导读】平常为大家推荐的资源中,以英语语言占据大多数。今天 AI科技大本营特别要为大家推荐两个跟中文相关的资源工具。先简单介绍下这两个资源工具都是什么。第一个,...

    AI科技大本营
  • 你们都用 Python 做人脸识别,我就偏要用 Go!

    做人脸识别用 Python 比较多,但是今天碰上一个另类,他就跟别人不一样,就不用 Python 用 Go。其实不管是 P 还是 G,能认出脸来就是好样的。

    用户1737318
  • AI一分钟 | 传阿里暂停在美扩张云业务;Google发布AI工具以识别儿童性侵犯图片

    9 月 3 日消息,据美国媒体报道,消息人士透露,由于阿里巴巴挑战亚马逊AWS服务和美国其他云服务的最初努力未达预期效果,因此该公司将暂停在美国扩张云业务的计划...

    AI科技大本营
  • 美国防部投20亿发展AI针对中国;谷歌做数据集搜索受追捧;联合国教科文+区块链AI公司发誓打破技术垄断

    机器学习基础是什么。算法吗?数学吗?都不是,是数据。海量的数据!数据是机器学习的基石,也是机器学习的天花板。数据不光重要,而且难得。

    用户1737318
  • 这一次,我拒绝了Python,选择了Go

    最近,我用一个以 Go 语言为后端的软件,实现了一个人脸识别项目。它能够识别出上传照片中的人像 (如流行歌手)是谁。这听起来不错,我决定试一下也给你们介绍一下项...

    AI科技大本营
  • 在TensorFlow2.0发布前,帮你掌握TensorFlow的必备内容

    【导读】AI科技大本营曾报道过,TensorFlow 2.0 已经在开发计划中了,相信在不久的将来就会和我们见面。那么现在的 TensorFlow 都有哪些功能...

    AI科技大本营
  • 互联网广告CTR预估新算法:基于神经网络的DeepFM原理解读

    CTR(Click-Through-Rate)即点击通过率,是互联网广告常用的术语,指网络广告(图片广告/文字广告/关键词广告/排名广告/视频广告等)的点击到达...

    用户1737318

扫码关注云+社区

领取腾讯云代金券