hbase的高可用
什么是hbase的高可用?
指的是:让master节点能够有多个,当节点宕机后,能够有备份的节点顶的上来,此时认为master形成了高可用状态
如何实现hbase的主节点的高可用呢?环境为VMware 三台虚拟机
- 在hbase的conf目录下,创建backup-master文件,并添加如下内容:
node1中执行: cd /export/server/hbase-2.1.0/conf/ vim backup-masters 内容如下: node2.itcast.cn node3.itcast.cn
- 将这个文件发送到node2和node3中
node1执行: cd /export/server/hbase-2.1.0/conf/ scp backup-masters node2:$PWD scp backup-masters node3:$PWD
- 启动hbase:
3.1) 先启动zookeeper
3.2) 接着启动 hadoop集群
3.3) 启动hbase
- 启动后, 可以将主节点进行宕机, 然后检测其他的节点是否升级为主节点操作, 如果可以, 说明高可用配置成功了
思考: 为什么第一次启动 每一次都node1成为主节点呢?
在启动过程中, node1往往是第一个先启动, 导致具有抢先权限, 导致node1往往是主节点
hbase的集群架构
Hbase的原理
hbase的读取流程
读取数据的流程:(注:防手机端看不清图片文字)
1. 客户端发起读取数据的请求,首先会连接zookeeper
2. 从zookeeper中获取hbase:meta表 被那个regionServer所管理着
(hbase:meta表Lhbase的元数据表,此表中主要适用于存储用户创建的表元数据信息,
包含有哪些表,每个表有哪些region,每个region被那些regionServer所管理,以及每个
region详细的信息数据。 如果执行get操作,只能返回一个regionServer地址,如果执行
scan操作,将这个表对应的所有regionServer地址返回)
3. 连接meta表对应regionServer,从meta表中获取当前读取的这个表对应的region被哪个regionServer所管理
4. 连接对应的regionServer,开始读取数据
5. 首先现行memstore--》blockCache(块缓存)--》s