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组件举办资源分派计划的时辰,思量两种方法去界说资源:

资源分派方法
凭证营业需求分派:
- 按照营业方对自身处事的描写,对相干的QPS以及SLA举办评估,为营业专门设置参数,包括blockcache,region巨细以及数目等;
- 利益是针对营业优化,可以或许充实的操作资源,低落营业的资源占用本钱;
- 打点本钱增进,必要对每一个营业举办评估,对平台维护职员很是不友爱,同时必要营业同窗自己对HBase有领略;
同一规格的资源分派:
- CPU以及MEM都凭证预先设定好的配额来分派,提供多档的设置,将CPU和MEM的设置套餐化;
- 利便之处在于营业扩容时直接增进Regionserver的个数,设置不变,运维本钱较低,碰着题目时排障利便;
- 针对某些有特有会见方法的营业有范围性,如CPU计较型,大KV存储,可能有MOB需求的营业,必要非凡的定制;
- 介于其时思量接入的在线营业并不多,以是回收了按营业定制的方法去设置Regionserver,正式情形统一营业回收同一设置的一组Regionserver,不存在殽杂设置的Regionserver组。
2、参数设置
基本镜像基于cdh5.5.0-hbase1.0.0构建:
- # Example for hbase dockerfile
- # install cdh5.5.0-hbase1.0.0
- ADD hdfs-site.xml /usr/lib/hbase/conf/
- ADD core-site.xml /usr/lib/hbase/conf/
- ADD env-init.py /usr/lib/hbase/bin/
- ENV JAVA_HOME /usr/lib/jvm/java-8-oracle
- ENV HBASE_HOME /usr/lib/hbase
- ENV HADOOP_PREFIX /usr/lib/hadoop
- ADD env-init.py /usr/lib/hbase/bin/
- 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的信息举办对应变量的修改,一个典范的传入参数示例。
- REQUEST_DATA = {
- "name": 'test-cluster',
- "rootdir": "hdfs://namenode01:8020/tmp/hbase/test-cluster",
- "zkparent": "/test-cluster",
- "zkhost": "zookeeper01,zookeeper02,zookeeper03",
- "zkport": 2181,
- "regionserver_num": '3',
- "codecs": "snappy",
- "client_type": "java",
- "cpu": '1',
- "memory": '30',
- "status": "running",
- }
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|