HBase高可用集群运维实践

随着越来越多的业务选择HBase作为存储引擎,对HBase的可用性要求也越来越高,对于HBase的运维也提出了新的挑战。目前运维集群超过30+,而且接入的业务类型繁多,对于性能要求也不完全一样,这是今年面临的问题。从15年开始,结合京东的业务情况,基于大数据平台,实现用户接入使用全流程自动化。而今年,我们主要从集群层面上提升集群可用性。

1.控制隔离——rsgroup

在94版本中,经常困扰我们的一个问题就是集群上的某些机器会因为某些用户的不恰当操作,例如热点问题,大量的scan操作等导致机器上的其他表正常读写受到影响。之前的运维经验,一般的做法就是stop balance,然后通过move region的方式把有影响的表移到某些机器上。由于存在这个原因和业务的压力,往往只能采用拆分集群的方式,在一个HDFS 上往往运行几个HBase集群,但是带来的是运维成本的增加。

今年618之前,在我们决定采用新版本之后,我们将HBase 2.0 尚未发布的rsgroup功能迁移到我们的自己维护的1.1.X版本中,从而实现在HBase集群上隔离和控制。整个架构如下:

最后我们把分组功能接入了BDP运维平台。DBA在配置实例的时候,根据业务选择不同的分组。通过rsgroup 解决拆分集群问题,可运维性也得到了提升。另外,不同于之前的平滑滚动重起,动不动就需要几天,我们也通过移动分组的方式进行集群滚动从而缩短维护时间。考虑到不同分组的replication可能会产生影响,我们也开发不同分组的replication功能,主集群的日志只能发送到备份集群的同一个分组的regionserver中。在集群页面上,我们也添加不同分组统计,效果如下:

2.异地容灾——replication

HDFS提供了三个备份的功能,但是对于重要的业务还远远不够。HBase本身的replication功能可以实现集群间秒级的数据同步,而且整个replication的过程是异步化,对于主集群几乎没有影响。考虑业务的重要性,在新版本的集群配置了集群间的主主同步。如果机房出现问题或者主集群异常短时间无法恢复,那么用户可以切换到备份集群。

由于采用实例来管理集群,所以DBA配置的时候可以选择实例是否进行主备以及集群:增加备份集群之后,我们把所有需要抽取的表从主集群改成为备份集群,这样对于大量的抽取可以减少对主集群的影响。

目前集群的数据,除了用户普通的写入之外,还有采用bulkload的方式入库,不同用户在不同的集市生成HFile导入到HBase中。针对这种情况,我们把2.0 版本的HBASE-13153(Bulk Loaded HFile Replication)打进到我们的版本中,实现了HFile的replication。

最终通过replication实现数据的备份和聚合,这样在用户申请实例的时候,可以选择不同的套餐组合。例如只需要实时数据存储,可以选择主主备份,需要离线分析的可以选择主备同步到离线分析集群。

3.资源限制——配置quotas

虽然rsgroup 起到了隔离功能,HBase本身读写队列分离,但是同个分组的表还会互相影响,而且京东这么多业务部门,不可能都独立分组。HBase1.0 发布了一个针对读写进行限制的功能——配额管理。使用配额管理做到对namespace和table 的rpc请求的限制,目前是限制读写次数和流量。

这个功能很适合我们,作为底层提供者,很大程度上我们没有办法预估用户的所有情况,在运维过程中,经常有用户出现热点问题导致单台服务的请求量过高从而影响到了其他表的读写。我们针对实例,也就是表空间的请求进行限制,这就需要用户在申请的时候衡量资源了。

通过配额,我们可以做到对集群的资源整体把控。唯一的遗憾是当前HBase的quotas 只能限制单台的ReginServe。目前配额管理功能在开发集成自动化配置流程当中,预计年后上线。

本文作者:zengweizhan

来源:51CTO

时间: 2024-10-02 21:30:23

HBase高可用集群运维实践的相关文章

MongoDB高可用集群配置的几种方案

一.高可用集群的解决方案 高可用性即HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性. 计算机系统的高可用在不同的层面上有不同的表现: (1)网络高可用 由于网络存储的快速发展,网络冗余技术被不断提升,提高IT系统的高可用性的关键应用就是网络高可用性,网络高可用性与网络高可靠性是有区别的,网络高可用性是通过匹配冗余的网络设备实现网络设备的冗余,达到高可用的目的. 比如冗余的交换机,冗余的路由器等

利用IBM PowerHA SystemMirror plug-in管理基Power平台的高可用集群

PowerHA 是 IBM 发布的一款高可用集群套件,通过它可以在 AIX 系统上构建由多个节点组成的高可用集群计算环境,增强应用的防灾能力,减少停机时间.IBM System Director(以下简称 ISD)是 IBM 推出的平台管理工具,可以在统一的用户界面实现跨平台的主机系统管理.通过 PowerHA SystemMirror plug-in,ISD 可以实现对高可用平台的创建和管理.基于 ISD 的统一http://www.aliyun.com/zixun/aggregation/1

轻松构建Mysql高可用集群系统

一. MySQL复制的实现原理 MySQL支持单向.双向复制.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入一个二进制日志文件中,并创建一个索引文件以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,日志文件会通知主服务器,从服务器在日志中读取的最后一次成功更新的位置.接着,从服务器在上次成功更新的位置处开始进入更新操作.更新完成后从服务器开始进入等待状态,等待主服务器后续的更新. 需要注意的是:在进行复制时,所

高可用集群Heartbeat简述

一.什么是高可用集群?高可用集群是怎么工作的? 高可用集群(HA:High Availability),就是为了保证服务的持续可用性,使用1个或多个备用主机来保证主服务器宕掉后能自动接替其工作的方案. 这些主机中,正在工作的,我们称为主节点,看着主节点挂掉然后才能干活的,我们称之为备节点,一般高可用集群中,只有两个节点是很特殊的HA集群,一般都是3个或3个以上. 而主机工作一般都是提供各种服务,不管是网页服务还是邮件服务或者数据库服务等,我们将这些服务和服务所需的一些特性或者属性称为资源:(re

基于corosync+pacemaker的nginx高可用集群安装配置

  一.corosync.pacemaker介绍 corosync是用于高可用环境中的提供通讯服务的,它位于高可用集群架构中的底层(Message Layer),扮演着为各节点(node)之间提供心跳信息传递这样的一个角色; pacemaker是一个开源的高可用资源管理器(CRM),位于HA集群架构中资源管理.资源代理(RA)这个层次,它不能提供底层心跳信息传递的功能,它要想与对方节点通信需要借助底层的心跳传递服务,将信息通告给对方.通常它与corosync的结合方式有两种: pacemaker

CentOS 7下怎么搭建高可用集群?

  CentOS 7下怎么搭建高可用集群.高可用集群是指以减少服务中断时间为目的的服务器集群技术.它通过保护用户的业务程序对外不间断提供的服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度.那么新的centos下怎么来搭建高可用集群. 环境:本文以两台机器实现双集热备高可用集群,主机名node1的IP为192.168.122.168 ,主机名node2的IP为192.168.122.169 . 一.安装集群软件必须软件pcs,pacemaker,corosync,fence-agen

ActiveMQ私有云、公有云以及Docker环境高可用集群方案汇总

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dgd2010.blog.51cto.com/1539422/1749983 ActiveMQ软件概述 ActiveMQ提供消息队列服务. ActiveMQ高可用原理 ActiveMQ高可用由三部分组成. 1.ActiveMQ的master-slave 两个运行的ActiveMQ instance如果同时使用一套持久化存储,那么这两个ActiveMQ instance就会构成ma

CentOS6.5高可用集群LVS+Keepalived(DR模式)

环境介绍 操作系统:CentOS6.5_x64 mini 负载均衡模式:DR(直接路由) LVS与Keepalived简述: LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.使用集群技术和Linux操作系统实现一个高性能.高可用的服务器,很好的可伸缩性.可靠性和管理性. LVS集群采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构

memcached+magent+keepalived高可用集群二

memcached+magent+keepalived高可用集群二. 上篇我们已经配置好memcached+magent了下面 那如果magent宕机了,讲不能继续提供服务,所以就用到了keepalived,添加一台备用的magent代理服务器.当一台magent宕机了由另一台来接替. 配置步骤: 两台magent代理服务器,一台做主一台做从,当主的宕机了由从的接替继续工作. 两台magent代理服务器再启动时指定相同的主缓存节点与备份缓存节点. 通过keepalived配置文件设置优先级来决定