美文网首页我爱编程
Hbase学习笔记-Hbase架构详解

Hbase学习笔记-Hbase架构详解

作者: 时待吾 | 来源:发表于2017-05-03 00:29 被阅读574次

主从架构:HmasterHRegionServer

协调服务Zookeeper协调hmaster与hregionServer

底层hbase数据存储hbase文件中

Client与zookeeper和hregionServer交互不与Hmaster交互类似于hdfs

namenode和datanode

客户端Client:

整个hbase集群的入口进行表的增删查改操作入口与zookeeper进行一系列的的交互

使用hbase

rpc机制与hmaster、hregionServer进行通信

与hmaster通信进行管理类的操作

与hregionserver通信进行读写类的操作表的交互

包含访问hbase的接口,并维护cache加快对hbase的访问,与hregionServer交互

协调服务zookeeper

保证任何时候,集群中只有一个master HA解决单节点故障

存储所有region的寻址入口

实时监控Region server的上线和下线信息并实时通知给master

存储hbase的schema和table元数据

Hbase主节点Hmaster

通过zookeeper选举机制解决单节点故障问题

管理用户对表table的增删改查操作主要是针对表的管理不是表数据的管理

管理HregionServer的负载均衡和调整Region的分布

在Region Split(扩大)后,负责新Region的分配

Hmaster失效仅会导致所有元数据无法被修改,表的数据读写还是可以正常进行

RegionServer节点:

维护Hregion并往HDFS中写数据

当表的大小超过设置时候,split HRegion

在Hregion Server停机后,负责失效HregionServer上的Region迁移

Hbase与Zookeeper

Hbase元数据存储在zookeeper中

默认情况下,Hbase(自带zookeeper,生产环境中一般使用外置通用的的zookeeper)管理Zookeeper的实例比如启动或停止zookeeper

Zookeeper解决Hbase单点故障问题zookeeper选举机制

Hmaster与HregionServer启动时会向Zookeeper注册

Zookeeper文件->root表信息(0.96后不存储root表信息)->meta Data->user Table

寻找RegionServer过程:

Zookeeper(读取zookeeper找到root表位置) ->

Root (root表包含meta表所在的region列表该表只会有一个Region

zookeeper中记录了root的location)

Meta(meta表包含所有用户控件region列表以及RegionServer服务器的地址)

用户表

Client第一次操作后,会将root meta缓存到本地不需要再访问zoookeeper

Hbase容错:

Master容错:zookeeper重新选择一个新的master

无master过程中,数据读取照常进行客户端读取数据无需经过hmaster

无master过程中,region切分、负载均衡等无法进行

RegionServer容错:定时向zookeeper汇报心跳如果一段时间未出现心跳,master将该RegionServer的region重新分配到其他RegionServer

失效服务器上的预写日志由主服务器进行分割并派送给新的RegionServer

Zookeeper容错:zookeeper高可靠的服务不存在单点故障

HBase数据存储:

HLog HFileStoreFile是对HFile做一层封装

插入一条数据写两份文件一个是HLog文件二进制日志文件

Region文件,内存中写数据-memstore文件达到一定大小后StoreFile文件

Hbase中所有数据文件都存储在hadoop

hdfs文件系统上,格式主要有:

HFile:Hbase中keyValue数据的存储格式,Hfile是hadoop的二进制格式文件,实际上StoreFile就是对HFile做了轻量级包装,即StoreFile底层就是HFile

HLogFile:Hbase中WAL write

ahead log的存储格式,物理上是hadoop的sequence file带项目符号的内容。在机器学习的迭代计算中非常有优势

Delete是针对数据打上标签,后期进行compactor时候,再进行删除操作。

不是立即删除。

Log flusher -> HLog线程同步

HRegionServer:

其管理一些列Hregion对象

每个HRegion对应Table中一个Region,HRegion由多个HStore组成

每个HStore对应Table中一个Column Family的存储

Column Family就是一个集中地存储单元,将具有IO特性的Column放在一个Column

Family会更高效

版本合并和数据删除:删除的数据是客户端打了标签的数据,即之前delete的数据。

Hbase的写操作非常快,直接往内存中写数据。

所有的更新和删除操作都是在conpact阶段做的。

StoreFile文件结构:

StoreFile以HFile格式保存在HDFS上

Data Block段-保存表中的数据,可以被压缩

Meta block段可选,保存用户自定义的kv对,可以被压缩

File info段,HFile的元信息,不压缩用户也可以在这一部分添加自己的元信息

Data block index段– data block索引,每条索引的key是被索引的block的第一条记录的key

Meta block index段meta block索引

Trailer定长保存每一段的偏移量

类似于Mysql的banglog用于做灾难恢复集群挂了下次启动根据日志恢复

相关文章

  • Hbase学习笔记-Hbase架构详解

    主从架构:HmasterHRegionServer 协调服务Zookeeper协调hmaster与hregionS...

  • HBase知识点

    深度分析HBase架构 HBase技术简介 Hbase 技术细节笔记(上) Hbase 技术细节笔记(下) 回答思...

  • HBase学习笔记(二)HBase架构

    HBase Architectural Components(HBase架构组件) HBase架构也是主从架构,由...

  • Hbase 入门

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

  • Hbase运行机制

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

  • HBase

    简述 1 HBase的应用场景 2 HBase的概念与定位 3 HBase架构体系与设计模型 HBase架构体系 ...

  • 数据存储-Hbase基础

    Outline 什么是Hbase 为什么需要Hbase Hbase的基础概念 Hbase的架构 Hbase的读写操...

  • HBase架构详解及读写流程

    目录一、HBase存储结构详解二、HBase写流程三、HBase读流程 Hbase是bigtable的开源山寨版本...

  • (转) 深入HBase架构解析

    title: (转)HBase架构深入解析 tags: hbase categories: Hbase comme...

  • 实战代码(十一):Springboot集成Hbase

    一、理论基础 Hbase基础见另一篇笔记《学习笔记 | HBase学习笔记[https://www.jianshu...

网友评论

    本文标题:Hbase学习笔记-Hbase架构详解

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