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

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

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

HBase是一个基于Hadoop面向列的非相关型漫衍式数据库(NoSQL),计划观念来历于谷歌的BigTable模子,面向及时读写、随机遇见大局限数据集的场景,是一个高靠得住性、高机能、高伸缩的漫衍式存储体系,在大数据相干规模应用普及。

HBase体系支持对所存储的数据举办透明切分,从而使得体系的存储以及计较具有精采的程度扩展性。

知乎从2017年起开始逐渐回收HBase体系存储种种在线营业数据,并在HBase处事之上构建种种应用模子以及数据计较使命。

  • 陪伴着知乎这两年的成长,知乎焦点架构团队基于开源容器调治平台Kubernetes打造了一整套HBase处事平台打点体系;
  • 颠末近两年的研发迭代,今朝已经形成了一套较为完备的HBase自动化运维处事系统,可以或许完成HBase集群的快捷陈设、滑腻扩缩容、HBase组件细粒度监控、妨碍跟踪等成果。

配景

知乎对HBase的行使履历不算太长,在2017年头的时辰,HBase处事首要用于离线算法、保举、反作弊,尚有基本数据客栈数据的存储计较,通过MapReduce和Spark来举办会见。而在其时知乎的在线存储首要回收MySQL和Redis体系,个中:

  • MySQL:支持大部门的营业数据存储,当数据局限增大后有一些必要举办扩容的表,分表会带来必然的伟大性,有些营业但愿能屏障这个工作,尚有一些是由于汗青缘故起因在表计划的时辰用rmsdb的情势存了一些本该由列存储的数据,但愿做一下迁徙。另外MySQL基于SSD,固然机能很好,花销也较量大;
  • Redis:可以提供大局限的缓存,也可以提供必然的存储支持。Redis机能极好,首要的范围是做数据Resharding较为繁琐,其次是内存本钱较高。

针对以上两种在线存储所存在的一些题目,我们但愿成立一套在线存储NoSQL处事,对以上两种存储作为一个增补。

选型时代我们也思量过Cassandra,早期一些营业曾实行行使Cassandra作为存储,隔邻团队在运维了一段时刻的Cassandra体系之后,碰着不少的题目,Cassandra体系可操纵性没有到达预期,今朝除了Tracing相干的体系,其他营业已经放弃行使Cassandra。

我们从已有的离线存储体系出发,在权衡了不变性、机能、代码成熟度、上下流体系承接、业界行使场景以及社区活泼度等方面之后,选择了HBase,作为知乎在线存储的支撑组件之一。

一、HBase On Kubernetes

  • 初期知乎只有一套举办离线计较的集群,全部营业都跑在一个集群上,而且HBase集群和其他离线计较yarn以及Impala殽杂陈设,HBase的一般离线计较和数据读写都严峻受到其他体系影响;
  • 而且HBase的监控都只逗留在主机层面的监控,呈现运行题目时,举办排查很坚苦,体系规复处事时刻较长,这种状态下,我们必要从头构建一套合用于在线处事的体系。

在这样的场景下,我们对在线HBase处事的需求是明晰的:

断绝性

  • 从营业方的视角来说,但愿相干的处事做到情形断绝,权限收归营业,停止误操纵和营业彼此影响;
  • 对付相应时刻,处事的可用性,都可以按照营业的必要指定SLA;
  • 对付资源的分派和blockcache等参数的设置也可以或许越发有顺应性,提供营业级此外监控和报警,快速定位和相应题目;

资源操作率:从运维的角度,资源的分派要公道,尽也许的晋升主机cpu,内存包罗磁盘的有用操作率;

本钱节制:团队用最小的本钱去获得最大的运维收益,以是必要提供便捷的挪用接口,可以或许机动的举办HBase集群的申请、扩容、打点、监控。同时本钱包罗呆板资源,尚有工程师。其时我们线上的这套体系是由一位工程师独立去举办维护。

综合以上需求,参考我们团队之前对基本办法平台化的履历,最终的方针是把HBase处事做成基本组件处事平台向提供应上游营业,这个也是知乎技能平台部分事变思绪之一,尽也许的把全部的组件对营业都黑盒化,接口化,处事化。同时在行使和监控的粒度上尽也许的精确,过细,全面。这是我们构建在线HBase打点运维体系的一个初志。

二、Why Kubernetes?

前文说到我们但愿将整个HBase体系平台处事化,那就涉及到怎样打点和运维HBase体系,知乎在微处事和容器方面的事变蕴蓄和履历是相等富厚的。

  • 在其时我们全部的在线营业都已经完成了容器化的迁徙事变,超万级此外营业容器安稳运行在基于mesos的容器打点平台Bay上(拜见[1]);
  • 与此同时,团队也在起劲的做着Infrastructure容器化的实行,已经乐成将基本动静行列组件Kafka容器化运行于Kubernetes体系之上(拜见[2]),因此我们抉择也将HBase通过Kubernetes来举办资源的打点调治。

Kubernetes[3]是谷歌开源的容器集群打点体系,是Google多年大局限容器打点技能Borg的开源版本。Kubernetes提供各类维度组件的资源打点和调治方案,断绝容器的资源行使,各个组件的HA事变,同时尚有较为完美的收集方案。

Kubernetes被计划作为构建组件和器材的生态体系平台,可以轻松地陈设、扩展和打点应用措施。有着Kubernetes大法的加持,我们很快有了最初的落地版本([4])。

三、初代

最初的落地版本架构见下图,平台在共享的物理集群上通过Kubernetes(以下简称K8S)API成立了多套逻辑上断绝的HBase集群,每套集群由一组Master和多少个Regionserver(以下简称RS)组成,集群共享一套HDFS存储集群,各自依靠的Zookeeper集群独立;集群通过一套打点体系Kubas处事来举办打点([4])。

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

第一代架构

模块界说

在K8S中怎样去构建HBase集群,起首必要用K8S自己的基本组件去描写HBase的组成;K8S的资源组件有以下几种:

  • Node:界说主机节点,可所以物理机,也可所以假造机;
  • Pod:一组细密关联的容器荟萃,是K8S调治的根基单元;
  • ReplicationController:一组pod的节制器,通过其可以或许确保pod的运行数目和康健,并可以或许弹性伸缩。

(编辑:湖南网)

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

热点阅读