弥补MySQL和Redis短板:看HBase怎么确保高可用
结合之前对Deployment以及ConfigMap的引入,以及对Dockerfile的修改,整个HBase构建流程也有了改进: HBaseonKubernetes构建流程
通过结合K8S的ConfigMap功能的配置模板,以及KubasAPI调用,,我们就可以在短时间部署出一套可用的HBase最小集群(2Master + 3Region Server + 2Thriftserver),在所有宿主机Host都已经缓存Docker镜像文件的场景下,部署并启动一整套HBase集群的时间不超过15秒。 同时在缺少专属前端控制台的情况下,可以完全依托Kubernetesdashboard完成HBase集群组件的扩容缩容,以及组件配置的查询修改更新以及重新部署。 八、资源控制 在完成重构之后,HBase服务面向知乎内部业务进行开放,短期内知乎HBase集群上升超过30+集群,伴随着HBase集群数量的增多,有两个问题逐渐显现:
为了解决如上的两个问题,同时又不能打破资源隔离的需求,我们将HBaseRSGroup功能加入到了HBase平台的管理系统中。 优化后的架构如下: RSGroup的使用 由于平台方对业务HBase集群的管理本身就具有隔离性,所以在进行更进一步资源管理的时候,平台方采用的是降级的方式来管理HBase集群。 通过监听每个单独集群的指标,如果业务集群的负载在上线一段时间后低于阈值,平台方就会配合业务方,将该HBase集群迁移到一套MixedHBase集群上。 同时如果在MixedHBase集群中运行的某个HBase业务负载增加,并持续一段时间超过阈值后,平台方就会考虑将相关业务提升至单独的集群。 九、多IDC优化 随着知乎业务的发展和扩大,知乎的基础架构逐渐升级至多机房架构,知乎HBase平台管理方式也在这个过程中进行了进一步升级,开始构建多机房管理的管理方式;基本架构如下图所示: 多IDC访问方式
十、数据同步 在各类业务场景中,都存在跨HBase集群的数据同步的需求,比如数据在离线HBase集群和在线集群同步、多IDC集群数据同步等,对于HBase的数据同步来说,分为全量复制和增量复制两种方式。 HBase数据同步 在知乎HBase平台中,我们采用两种方式进行HBase集群间的数据同步: HBase Snapshot 全量数据复制我们采用了HBaseSnapshot的方式进行;主要应用在离线数据同步在线数据的场景; WALTransfer 主要用于HBase集群之间的的增量数据同步;增量复制我们没有采用HBaseReplication,相关同步方式我们通过自研的WALTransfer组件来对HBase数据进行增量同步; WALTransfer通过读取源数据HBase集群提供WAL文件列表,于HDFS集群中定位对应的WAL文件,将HBase的增量数据按序写入到目的集群,相关的细节我们会在以后的文章中详细解析。 十一、监控 从之前重构后的架构图上我们可以看到,在Kubas服务中我们添加了很多模块,这些模块基本属于HBase平台的监控管理模块。 1、Kubas-Monitor组件 基本的监控模块,采用轮询的方式发现新增HBase集群,通过订阅Zookeeper集群发现HBase集群Master以及Regionserver组。 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |