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

相关实践学习
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
4月前
|
弹性计算 运维 监控
|
4月前
|
弹性计算 运维 监控
带你读《云上自动化运维宝典》——多云基础设施的统一纳管与运维实践分享(2)
带你读《云上自动化运维宝典》——多云基础设施的统一纳管与运维实践分享(2)
106 1
|
25天前
|
运维 监控 持续交付
构建高效自动化运维体系:策略与实践
在数字化时代,企业IT基础设施的管理和维护变得日益复杂。为了提高效率、降低错误率并快速响应市场变化,构建一个高效的自动化运维体系至关重要。本文将探讨自动化运维的核心策略,并通过实际案例分析展示如何将这些策略应用于日常管理中,以实现IT运维的优化。
15 0
|
1月前
|
SQL 关系型数据库 MySQL
Sqoop【付诸实践 01】Sqoop1最新版 MySQL与HDFS\Hive\HBase 核心导入导出案例分享+多个WRAN及Exception问题处理(一篇即可学会在日常工作中使用Sqoop)
【2月更文挑战第9天】Sqoop【付诸实践 01】Sqoop1最新版 MySQL与HDFS\Hive\HBase 核心导入导出案例分享+多个WRAN及Exception问题处理(一篇即可学会在日常工作中使用Sqoop)
88 7
|
3天前
|
运维 Kubernetes Devops
构建高效自动化运维体系:DevOps与容器技术融合实践
【4月更文挑战第15天】 在当今快速发展的信息技术时代,传统的IT运维模式已难以满足业务敏捷性的需求。本文旨在探讨如何通过整合DevOps理念和容器技术来构建一个高效的自动化运维体系。文章将详细阐述DevOps的核心原则、容器技术的基础知识,以及两者结合的优势。此外,文中还将分享一系列实践经验,包括持续集成/持续部署(CI/CD)流程的搭建、微服务架构的应用,以及监控和日志管理策略的优化,以期帮助企业实现快速、可靠且安全的软件交付过程。
|
10天前
|
运维 监控 Kubernetes
构建高效自动化运维体系的实践与思考
【4月更文挑战第8天】在数字化时代,IT基础设施的复杂性日益增加,传统的手工运维模式已经难以满足快速响应和高效率的需求。本文将探讨如何通过自动化工具和策略构建一个高效的自动化运维体系,旨在提高系统的稳定性、减少人为错误以及优化资源分配。文章首先分析了自动化运维的必要性,接着介绍了实现自动化的关键技术和工具,并通过案例分析展示自动化运维体系的实际效果。最后,对自动化运维的未来发展趋势进行了展望。
|
23天前
|
运维 监控 数据可视化
现代化运维管理系统的关键特性及实践应用
随着信息技术的迅猛发展,现代企业对于运维管理系统的需求日益增长。本文将探讨现代化运维管理系统的关键特性,以及在实际应用中的重要性和优势所在,帮助企业更好地理解和应用现代化运维管理系统。
13 2
|
26天前
|
运维 监控 Devops
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
在数字化转型的浪潮中,企业的IT基础设施和软件交付模式正经历着深刻的变革。传统的运维方式已难以满足快速迭代、灵活扩展的现代业务需求。本文将探讨如何通过容器技术实现高效的自动化运维体系,重点分析持续集成(CI)与持续部署(CD)的实践方法及其对企业运维效率的影响。通过引入微服务架构、容器编排、DevOps文化等概念,我们旨在为读者提供一套全面的自动化运维解决方案,以支持业务的敏捷性和可扩展性。
|
28天前
|
机器学习/深度学习 人工智能 运维
构建高效自动化运维体系的探索与实践
【2月更文挑战第30天】 在信息技术迅猛发展的今天,企业对于IT系统的依赖日益加深。随之而来的是运维工作的复杂性和难度不断上升,传统的手动运维模式已经难以满足快速响应和高效率的需求。本文旨在探讨如何构建一个高效的自动化运维体系,以提升系统稳定性、降低人为错误并优化资源配置。文中将详细介绍自动化运维的核心组件,包括配置管理、持续集成与持续部署(CI/CD)、监控告警以及故障自愈等,并通过实际案例分析自动化运维实施过程中的关键考量因素和挑战。
|
28天前
|
运维 监控 持续交付
构建高效自动化运维体系的实践之路
【2月更文挑战第30天】随着信息技术的飞速发展,企业对于运维服务的要求越来越高。本文将深入探讨如何构建一套高效的自动化运维体系,包括监控、部署、日志管理以及故障响应等方面。文章首先分析了当前自动化运维的必要性和挑战,随后提出了基于容器化技术、微服务架构和DevOps理念的解决方案框架,并通过实际案例展示了实施该体系的详细步骤与成效评估。本研究的目标是为运维团队提供一套可行的方法论,以提升系统稳定性和运维效率。