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

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

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

HBase自己已经思量了许多妨碍切换和规复的方案:

  • Zookeeper集群:自身计划担保了可用性;
  • Master:通过多个Master注册在Zookeeper集群上来举办主节点的HA和更新;
  • RegionServer:自己就是无状态的,节点失效下线往后会把上面的Region自动迁走,对处事可用性不会有太大影响;
  • Thriftserver:其时营业大大都是Python和Golang,通过用Thrift对HBase的举办,Thriftserver自己是单点的,这里我们通过HAProxy来署理一组Thriftserver处事;
  • HDFS:自己又由Namenode和DataNode节点构成,Namenode我们开启HA成果,担保了HDFS的集群可用性;

2、集群级别

  • Pod容器失效:Pod是通过Replication Controller维护的,K8S的Controller Manager会在它的存储etcd去监听组件的失效环境,假如副本少于预设值会自动新的Pod容器来举办处事;
  • Kubernetes集群瓦解:该场景曾经在出产情形中呈现过,针对这种环境,我们对SLA要求较高的营业回收了少量物理机搭配容器的方法举办殽杂陈设,极度场景呈现时,可以担保重要营业收到的影响可控;

3、数据级别

全部在K8S上构建的HBase集群都共享了一套HDFS集群,数据的可用性由HDFS集群的多副原来提供。

五、实现细节

1、资源分派

初期物理节点同一回收2*12焦点的cpu,128G内存和4T的磁盘,个中磁盘用于搭建处事的HDFS,CPU和内存则在K8S情形顶用于成立HBase相干处事的节点。

Master组件的成果首要是打点HBase集群,Thriftserver组件首要包袱署理的脚色,以是这两个组件资源都凭证牢靠额度分派。

在对Regionserver组件举办资源分派计划的时辰,思量两种方法去界说资源:

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

资源分派方法

凭证营业需求分派:

  • 按照营业方对自身处事的描写,对相干的QPS以及SLA举办评估,为营业专门设置参数,包括blockcache,region巨细以及数目等;
  • 利益是针对营业优化,可以或许充实的操作资源,低落营业的资源占用本钱;
  • 打点本钱增进,必要对每一个营业举办评估,对平台维护职员很是不友爱,同时必要营业同窗自己对HBase有领略;

同一规格的资源分派:

  • CPU以及MEM都凭证预先设定好的配额来分派,提供多档的设置,将CPU和MEM的设置套餐化;
  • 利便之处在于营业扩容时直接增进Regionserver的个数,设置不变,运维本钱较低,碰着题目时排障利便;
  • 针对某些有特有会见方法的营业有范围性,如CPU计较型,大KV存储,可能有MOB需求的营业,必要非凡的定制;
  • 介于其时思量接入的在线营业并不多,以是回收了按营业定制的方法去设置Regionserver,正式情形统一营业回收同一设置的一组Regionserver,不存在殽杂设置的Regionserver组。

2、参数设置

基本镜像基于cdh5.5.0-hbase1.0.0构建:

  1. # Example for hbase dockerfile  
  2. # install cdh5.5.0-hbase1.0.0 
  3. ADD hdfs-site.xml /usr/lib/hbase/conf/ 
  4. ADD core-site.xml /usr/lib/hbase/conf/ 
  5. ADD env-init.py /usr/lib/hbase/bin/ 
  6. ENV JAVA_HOME /usr/lib/jvm/java-8-oracle 
  7. ENV HBASE_HOME /usr/lib/hbase 
  8. ENV HADOOP_PREFIX /usr/lib/hadoop 
  9. ADD env-init.py /usr/lib/hbase/bin/ 
  10. ADD hadoop_xml_conf.sh /usr/lib/hbase/bin/ 
  • 牢靠的情形变量,如JDK_HOME,HBASE_HOME,都通过ENV注入到容器镜像中;
  • 与HDFS相干的情形变量,如hdfs-site.xml和core-site.xml预先插手Docker镜像中,构建的进程中就放入了HBase的相干目次中,用以确保HBase处事可以或许通过对应设置会见到HDFS;
  • 与HBase相干的设置信息,如组件启动依靠的Zookeeper集群地点,HDFS数据目次路径,堆内存以及GC参数等,这些设置都必要按照传入KubasService的信息举办对应变量的修改,一个典范的传入参数示例。
    1. REQUEST_DATA = { 
    2.        "name": 'test-cluster', 
    3.        "rootdir": "hdfs://namenode01:8020/tmp/hbase/test-cluster", 
    4.        "zkparent": "/test-cluster", 
    5.        "zkhost": "zookeeper01,zookeeper02,zookeeper03", 
    6.        "zkport": 2181, 
    7.        "regionserver_num": '3', 
    8.        "codecs": "snappy", 
    9.        "client_type": "java", 
    10.        "cpu": '1', 
    11.        "memory": '30', 
    12.        "status": "running", 

(编辑:湖南网)

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

热点阅读