hbase热点问题排查及处理

2024-04-04 10:36

本文主要是介绍hbase热点问题排查及处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.现象:10.22.33.41机器频繁出现告警,每20分钟一次,可以复现
现后台登录10.22.33.41机器,使用top c 命令定位到cpu高的进程,发现该进程就hbase相关的
登录HD集群的WebUI界面,选hbase集群
Hbase->实例 ->找到cup告警的实例 ->进入该实例
RegionServer CPU统计 -> 每隔段时间都会有cpu过高的情况

2.排查
HMaster WebUI(主) ->Region Servers -> 看Num. Regions数量是否均衡
Regions -> Request metris -> Read Request Count
这步先把下图数据拷贝到一份Excel,等cpu高峰之后再拷贝一份,做对比,定位高峰比平峰哪些表读写请求增长快
以上步骤定位到HBASE_TPI该表导致的10.22.33.41 cup过高
通过表名再定位HBASE_TPI表对应的Region
Home -》搜索表名HBASE_TPI -> 复制Region名称出来备用
HBASE_TPI,200a2857cd2e162b8af5298a21e5994e,1710731327389.045aa82b47f469698792160419d6aaab.
HBASE_TPI,1710731327389.f206ab4614748c717b24c05b845f85e6.

先把region先移动到其他实例,观察10.22.33.41 cup是否降下来, 并观察10.22.9.4,10.22.9.6节点cpu是否明显上升, 确认该表HBASE_TPI导致cup过高
Hbase shell执行移动region命令:
move ‘045aa82b47f469698792160419d6aaab’,‘tpi04,21302,1701846496478’
move ‘f206ab4614748c717b24c05b845f85e6’,‘tpi06,21302,1692893131315’

3.方案
临时方案:切分热点region
Hbase shell执行切分region命令,会把原先1个region切分为2个region,切分完成后再执行合并的动作, 可以暂时缓解region热点问题
split ‘045aa82b47f469698792160419d6aaab’
split ‘f206ab4614748c717b24c05b845f85e6’
split ‘0d783993a76bdd826a374e11a4d3248a’
major_compact ‘HBASE_TPI’
再查看HBASE_TPI region是否均衡

最终方案:删除该表HBASE_TPI,重建表并指定预分区为当前分区的3倍

4.重启regionserver(看某个regionserver是否读写明显超其他regionserve,如有该情况可重启单个regionserver节点)
Hbase -> 实例 -> 分别进入每个 RegionServer -> 单个RegionServer读写请求次数
重启regionserver节点过程
勾选节点 ->更多 ->重启

这篇关于hbase热点问题排查及处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/875548

相关文章

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

Go语言使用Buffer实现高性能处理字节和字符

《Go语言使用Buffer实现高性能处理字节和字符》在Go中,bytes.Buffer是一个非常高效的类型,用于处理字节数据的读写操作,本文将详细介绍一下如何使用Buffer实现高性能处理字节和... 目录1. bytes.Buffer 的基本用法1.1. 创建和初始化 Buffer1.2. 使用 Writ

Python视频处理库VidGear使用小结

《Python视频处理库VidGear使用小结》VidGear是一个高性能的Python视频处理库,本文主要介绍了Python视频处理库VidGear使用小结,文中通过示例代码介绍的非常详细,对大家的... 目录一、VidGear的安装二、VidGear的主要功能三、VidGear的使用示例四、VidGea

Python结合requests和Cheerio处理网页内容的操作步骤

《Python结合requests和Cheerio处理网页内容的操作步骤》Python因其简洁明了的语法和强大的库支持,成为了编写爬虫程序的首选语言之一,requests库是Python中用于发送HT... 目录一、前言二、环境搭建三、requests库的基本使用四、Cheerio库的基本使用五、结合req

使用Python处理CSV和Excel文件的操作方法

《使用Python处理CSV和Excel文件的操作方法》在数据分析、自动化和日常开发中,CSV和Excel文件是非常常见的数据存储格式,ython提供了强大的工具来读取、编辑和保存这两种文件,满足从基... 目录1. CSV 文件概述和处理方法1.1 CSV 文件格式的基本介绍1.2 使用 python 内

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

SpringBoot操作spark处理hdfs文件的操作方法

《SpringBoot操作spark处理hdfs文件的操作方法》本文介绍了如何使用SpringBoot操作Spark处理HDFS文件,包括导入依赖、配置Spark信息、编写Controller和Ser... 目录SpringBoot操作spark处理hdfs文件1、导入依赖2、配置spark信息3、cont

MyBatis延迟加载的处理方案

《MyBatis延迟加载的处理方案》MyBatis支持延迟加载(LazyLoading),允许在需要数据时才从数据库加载,而不是在查询结果第一次返回时就立即加载所有数据,延迟加载的核心思想是,将关联对... 目录MyBATis如何处理延迟加载?延迟加载的原理1. 开启延迟加载2. 延迟加载的配置2.1 使用

Android WebView的加载超时处理方案

《AndroidWebView的加载超时处理方案》在Android开发中,WebView是一个常用的组件,用于在应用中嵌入网页,然而,当网络状况不佳或页面加载过慢时,用户可能会遇到加载超时的问题,本... 目录引言一、WebView加载超时的原因二、加载超时处理方案1. 使用Handler和Timer进行超

Python中处理NaN值的技巧分享

《Python中处理NaN值的技巧分享》在数据科学和数据分析领域,NaN(NotaNumber)是一个常见的概念,它表示一个缺失或未定义的数值,在Python中,尤其是在使用pandas库处理数据时,... 目录NaN 值的来源和影响使用 pandas 的 isna()和 isnull()函数直接比较 Na