阿里HBase高可用之路

  • 格式:pdf
  • 大小:1.08 MB
  • 文档页数:17

RS3
Table4
RS4
• 保证用户表在HBase层面上的相互隔离,使得在单个HBase集群中不 同用户读写访问不同的表不会相互影响
• 三个组成部分:Group名、RS列表已经Table列表
高可用之路
• 调度优化解决大请求
什么是大请求?大请求有什么影响? 大请求是指对系统资源消耗特别大的请求,典型的例子就是带有filter的scan, 这个filter过滤掉了大量的数据,导致一个next操作会访问成百上千个block。当 block大部分都在内存时,这种scan就会消耗大量cpu资源
客户端通过配置zk集群地址以及parent znode访问HBase,为了实现客户端在主备集群之间的无 缝切换使用了虚拟parent znode(vznode)代替了物理parent znode,vznode存储的内容就是 实际指向的物理parent znode,通过vznode指向不同的物理node实现客户端在主备集群之间的 无缝切换。
何进行优化保证可用率
集群灾备
程序BUG、断网、断电等情况造成单 个HBase集群挂掉,如何保证可用率
异地灾备
极端灾害情况下,某地域整个单元不 可用,如何保证异地灾备能力
高可用之路
• RS宕机自动恢复
(00-99)
Table
…...
(00-24) RegionA
(25-49) RegionB
(50-74) RegionC
优化
RS宕机
请求失败
判断RS是否宕机
将RS加入宕机列表, 访问快速抛错
后台进程间隔探测是 否假死
允许继续访问
高可用之路
• 大集群下的多租户隔离
大集群还是小集群?大集群下如何实现RS宕机的影响隔离?
HBase Cluster
Master
Default
Table1
RS1
Table2
RS2
GroupA
Table3
高可用之路
• ZK耦合灾备部署
机房A
ZK1
ZK2
/hbase-master
机房A Master Cluster
Master
机房B
机房C
ZK3
ZK4
ZK5
/hbase-standby
Standby Cluster
Replication
Master
机房C
RS
RS
RS
RS
RS
RS
RS
RS
高可用之路
• 去耦合高可用灾备部署
高可用之路
HBase – Hadoop Database,是一个高可靠性、高性能、易伸缩的分布 式存储系统。 Ali-HBase基于阿里巴巴本身业务场景和特点,对社区HBase进行深度定 制与改进,从解决方案、稳定护航、发展支撑等全方位提供一站式分布式 NOSQL数据库的产品与服务。
• 高可靠性 • 易伸缩 • 高灵活性
• 限制大请求的资源消耗,让正常的请求可以获取资源。通过sleep达到目的。
• 中断掉对客户端来说已经超时的请求,这种请求继续运行没有意义。 中断请求释放资源。
高可用之路
• HBase单集群部署
ZK1
ZK2
Master
RS
RS
ZK3
Zk4
Zk5
Backup Master
RS …... RS
JournalNode
高可用之路
什么是高可用?如何衡量?
可用率:计算机系统有效性的表示,它是在一段相当长的时间内,计算机系统的可用 时间与故障时间,维修时间及可用时间总和的比。 • 请求失败率 • RegionServer宕机比例
高可用之路
如何实现HBase集群99.99%的可用率?
节点宕机/大请求
.
节点宕机、大请求等情况都会直接影 响读写请求,威胁集群的可用率,如
(75-99) RegionD
RS1
H RegionA
L O
G RegionD
RS2
H L O G
RegionB RegionC
解决两个问题:(1)Hlog中数据的恢复;(2)Region的再分配。
高可用之路
• 分钟级快速宕机恢复
检测到RS宕机
rename rs log 目录 enqueue split task

APP 线程1 线程2
线程10
重试8s 10ms
RS1 RS2
RS10
在单台RegionServer宕机情况下,由于重试时间远大于正常访问响应时间,应用大部分线程都 会阻塞在失败请求的重R试S1上,造成报错量大大超过RS102%
高可用之路
• 宕机快速反应
RS宕机
请求失败
重试3次,且间隔时间 指数增长 放弃请求
JournalNode
JournalNode
Active NameNode
Standby NameNode
DN
DN
DN …... DN
高可用之路
• HBase主备集群数据同步
Master Cluster
RS
Synchronous Call
RS
Synchronous Call
……
Synchronous Call
ZK1
APP
配置管理+消息推送
Client
机房A
机房B
ZK1 ZK2 ZK3 ZK4
/hbase-master
Master Cluster
ቤተ መጻሕፍቲ ባይዱ
ZK5
ZK1 ZK2 ZK3 ZK4
/hbase-standby
Standby Cluster
ZK5
Master
Replication
Master
RS
RS
RS
RS
RS
HLog
Zookeeper
HLog List
HTable
HTable
HTable
Slave Cluster
Slave Cluster
Slave Cluster
/hbase/replication/… hlog-…-ts1 -> offset hlog-…-ts2 hlog-…-ts3 hlog-…-ts4 hlog-…-ts5
优化
删除 rs log 目录
AssignRegions
检测到RS宕机 rename rs log 目录 在zk上给rs上所有regi on建立recover节点
AssignRegions
enqueue split task
删除 rs log 目录 删除recover节点
高可用之路
• 线程阻塞问题
10台机器组成的集群,1台机器宕机影响多少流量?
高可用之路
• 秒级无缝灾备切换
Client
hbase.zookeeper.quorum:zk1,zk2,zk3 zookeeper.znode.parent:/vznode
ZK集群 /vznode
/hbase-master /hbase-standby
Master Cluster Standby Cluster