加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

弥补MySQL和Redis短板:看HBase怎么确保高可用

发布时间:2019-03-27 14:16:12 所属栏目:编程 来源:张小渔
导读:HBase是一个基于Hadoop面向列的非相关型漫衍式数据库(NoSQL),计划观念来历于谷歌的BigTable模子,面向及时读写、随机遇见大局限数据集的场景,是一个高靠得住性、高机能、高伸缩的漫衍式存储体系,在大数据相干规模应用普及。 HBase体系支持对所存储的数据

团结之前对Deployment以及ConfigMap的引入,以及对Dockerfile的修改,整个HBase构建流程也有了改造:

补充MySQL和Redis短板:看HBase怎么确保高可用

HBaseonKubernetes构建流程

  • 体例相干的Dockerfile并构建基本的HBase组件镜像;
  • 为将要建设的HBase构建基本属性设置模板,订制基本资源,这部门可以通过KubasAPI在Kubernetes集群中建设ConfigMap;
  • 详细建设陈设集群时,通过挪用KubasAPI,团结之前构建的ConfigMap模板,渲染出HBase集群中种种组件的具体ConfigMap,然后在Kubernetes集群中构建Deployment;
  • 最终通过之前构建好的镜像加载组件ConfigMap中的设置,完成在KubernetesNode中运行的一个HBase组件容器。

通过团结K8S的ConfigMap成果的设置模板,以及KubasAPI挪用,,我们就可以在短时刻陈设出一套可用的HBase最小集群(2Master + 3Region Server + 2Thriftserver),在全部宿主机Host都已经缓存Docker镜像文件的场景下,陈设并启动一整套HBase集群的时刻不高出15秒。

同时在穷乏专属前端节制台的环境下,可以完全依托Kubernetesdashboard完成HBase集群组件的扩容缩容,以及组件设置的查询修改更新以及从头陈设。

八、资源节制

在完成重构之后,HBase处事面向知乎内部营业举办开放,短期内知乎HBase集群上升高出30+集群,陪伴着HBase集群数目的增多,有两个题目逐渐展现:

  • 运维本钱增高:必要运维的集群逐渐增高;
  • 资源挥霍:这是由于许多营业的营业量并不高,可是为了担保HBase的高可用,我们至少必要提供2个Master+3个RegionServer,而每每Master的负载都很是低,这就造成了资源挥霍。

为了办理如上的两个题目,同时又不能冲破资源断绝的需求,我们将HBaseRSGroup成果插手到了HBase平台的打点体系中。

优化后的架构如下:

补充MySQL和Redis短板:看HBase怎么确保高可用

RSGroup的行使

因为平台方对营业HBase集群的打点自己就具有断绝性,以是在举办更进一步资源打点的时辰,平台方回收的是降级的方法来打点HBase集群。

通过监听每个单独集群的指标,假如营业集群的负载在上线一段时刻后低于阈值,平台方就会共同营业方,将该HBase集群迁徙到一套MixedHBase集群上。

同时假如在MixedHBase集群中运行的某个HBase营业负载增进,并一连一段时刻高出阈值后,平台方就会思量将相干营业晋升至单独的集群。

九、多IDC优化

跟着知乎营业的成长和扩大,知乎的基本架构逐渐进级至多机房架构,知乎HBase平台打点方法也在这个进程中举办了进一步进级,开始构建多机房打点的打点方法;根基架构如下图所示:

补充MySQL和Redis短板:看HBase怎么确保高可用

多IDC会见方法

  • 营业HBase集群别离在多个IDC上运行,由营业确定IDC机房的主从方法,营业的从IDC集群数据通过平台方的数据同步组件举办数据同步;
  • 各IDC的Kubas处事首要认真对当地Kubernetes集群的详细操纵,包罗HBase集群的建设删除打点,regionserver的扩容等HBase组件的打点操纵,Kubas处事陈设与机房相干,仅对接陈设地址机房的K8S集群;
  • 各IDC的Kubas处事向集群发明处事上报本机房集群信息,同时更新相干集群主从相干信息;
  • 营业方通过平台方封装的ClientSDK对多机房的HBase集群举办会见,客户端通过集群发明处事可以确定HBase集群的主从相关,从而将相干的读写操纵疏散,写入修改会见可以通过客户端指向主IDC的集群;
  • 跨机房间的数据同步回收了自研的HBaseReplicationWALTransfer来提供增量数据的同步。

十、数据同步

在种种营业场景中,都存在跨HBase集群的数据同步的需求,好比数据在离线HBase集群和在线集群同步、多IDC集群数据同步等,对付HBase的数据同步来说,分为全量复制和增量复制两种方法。

补充MySQL和Redis短板:看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组。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读