当前位置: 首页 > news >正文

Hbase -- Compact工具梳理

1. 背景

当前,线上HBase集群的自动Major Compact是关闭的,我们选择在凌晨业务空闲的时候进行手动触发Major Compact,Compact工具就是在运维平台上对资源组、RS、表进行Major Compact。目前线上有2种版本的Compact程序:Compact_v1和Compact,Compact_v1是基于Compact做了部分优化。在实际运行中,也发现有部分Compact任务运行失败,并且该工具目前处于无人运维的状态。本文对该工具从输入、代码流程、使用方法进行说明,并且后续会持续对该文档进行补充,增加线上运行失败的原因分析和改进。

2. Compact_v1

2.1 程序输入

序号参数名参数含义是否必选备注
1cluster集群名
2rsgroup资源组
3cmd执行命令类型,支持

compact_server、compact_rsgroup、compact_table

4parameter对应cmd的参数,如果是compact_server则为具体的机器名,如果是compact_rsgroup则为具体的rsgroup,如果是compact_table,则为具体的table
5batchSize一次批量添加任务的大小
6queueLimitMajor Compaction队列长度限制
7mcIntervalMajor Compaction时间间隔,单位毫秒
8mcTaskExecutionTimeMajor Compaction任务执行的时间,单位毫秒
9execute是否执行任务,如果为false,则仅输出执行计划
10compactNum执行Major Compaction的并发线程数默认为1

2.2 程序流程图

2.2.1 总体流程图

 

2.2.2详细流程图

图1是Compact_v1版本程序的详细流程图。

 

 

 

其中executePlan的流程图入图2所示:

 

  

ServerCompactBatchTask是集成了Callable<Boolean>的类,其中call方法的流程图如图3所示:

 

 

3 Compact

3.1 程序输入

序号

参数名

参数含义

是否必选

备注

1cluster集群名
2rsgroup资源组
3cmd执行命令类型,支持

compact_server、compact_rsgroup、compact_table

4parameter对应cmd的参数,如果是compact_server则为具体的机器名,如果是compact_rsgroup则为具体的rsgroup,如果是compact_table,则为具体的table
5batchSize一次批量添加任务的大小
6queueLimitMajor Compaction队列长度限制
7mcIntervalMajor Compaction时间间隔,单位毫秒
8mcTaskExecutionTimeMajor Compaction任务执行的时间,单位毫秒
9execute是否执行任务,如果为false,则仅输出执行计划

3.2 程序流程图

3.2.1 总体流程图

 

3.2.2 详细流程图

图4是Compact版本程序的总体流程图。

 

 

 

其中executePlan的方法的流程图如图5所示:

 

 

 

 

4. 两个程序的区别

序号区别备注
1compact_v1支持多线程对region执行compact,compact仅支持单线程
2compact_v1生成plan的时候,对plan中的region进行排序,compact没有
3compact_v1对plan队列的每个plan进行了排序,compact没有
4sleep的时间不一样,compact_v1短一点

5. Compact程序线上问题分析

目前线上因为Compact_v1有失败的,所以已经将所有的Compact_v1改为Compact任务。

通过查看代码,可以看到Compact_v1是基于Compact做了多个优化,包括可以多线程执行Compact、Region合并按照优先级的顺序执行,各台机器的Compact也是按照优先级排序 ,所以建议采用Compact_v1的代码。

线上执行Compact_v1有失败的问题,查看了运行日志,失败基本都是超时导致,没有打印出程序运行日志,所以目前先配置了几个Compact_v1的定时任务,通过增加日志的方式,每天查看任务运行状况。

后续进展会在这里描述。

相关文章:

Hbase -- Compact工具梳理

1. 背景 当前&#xff0c;线上HBase集群的自动Major Compact是关闭的&#xff0c;我们选择在凌晨业务空闲的时候进行手动触发Major Compact&#xff0c;Compact工具就是在运维平台上对资源组、RS、表进行Major Compact。目前线上有2种版本的Compact程序&#xff1a;Compact_v1…...

【java代码审计】SQL注入

1 原理 没有正确的对用户的输入进行检查&#xff0c;将用户的输入以拼接的方式带入到SQL语句中&#xff0c;导致SQL注入。 2 产生SQL注入的原因 2.1 JDBC拼接不当造成SQL注入 前置知识&#xff1a; JDBC执行SQL语句的两种方式&#xff1a; PrepareStatement&#xff1a;会对…...

前置知识-辛 Runge-Kutta 方法

1.3.3 辛 Runge-Kutta 方法 将方程 ( 1.10.2 ) (1.10 .2) (1.10.2) 改写为 d z d x =...

require 与 import 两种引入模块方式到底有什么区别?

关于JavaScript 的模块化规范&#xff0c;可以移步至&#xff1a; 【JavaScript高级】模块化规范「一文让你彻底搞懂前端模块化规范 & 区别」 下面进入正题 require 与 import 两种引入模块方式&#xff0c;到底有什么区别呢&#xff1f; 大致可以分为以下几个方面&#…...

软考信息系统监理师备考建议

用好备考方法&#xff0c;两三个月就可以过的。信息系统监理师备考最好以教材和历年真题为主&#xff0c;教学视频模拟题为辅。考试介绍与复习建议&#xff1a;考试设置的科目包括&#xff1a;&#xff08;1&#xff09;信息系统工程监理基础知识&#xff0c;考试时间150分钟&a…...

第八届蓝桥杯省赛——4承压计算(二维数组,嵌套循环)

题目&#xff1a;X星球的高科技实验室中整齐地堆放着某批珍贵金属原料。每块金属原料的外形、尺寸完全一致&#xff0c;但重量不同。金属材料被严格地堆放成金字塔形。7 5 8 7 8 8 9 2 7 2 8 1 4 9 1 8 1 8 8 4 1 7 9 6 1 4 5 4 5 6 5 5 6 9 5 6 5 5 4 7 9 3 5 5 1 7 5 7 9 7 4…...

【ECNU】3645. 莫干山奇遇(C++)

目录 题目 输入格式 输出格式 样例 提示 思路 代码 题目 单点时限: 2.0 sec 内存限制: 512 MB 出题人当然是希望出的题目有关 oxx&#xff0c;于是想方设法给题目配上一些有关 oxx 的背景故事&#xff0c;使得它看起来不那么无趣。但有的时候却无法引入合适的小姐姐&…...

为什么需要学习shell、shell的作用

课程基于B站于超课程笔记 03 Shebang的正确玩法_哔哩哔哩_bilibili P1 shell的作用 P2 shell执行命令的流程 P3 Shebang的正确玩法 什么是shell及组成 shell概念 shelll组成 Shebang概念 /bin/sh /bin/bash一样&#xff0c;都是指向一个bash解释器 [rootlocalhost ~]#…...

pgsql-Create_ALTER_GRANT_REVOKE命令语法

pgsql-Create_ALTER_GRANT_REVOKE命令语法 资料 语法约定 CREATE ROLE ALTER ROLE GRANT授权 REVOKE回收授权 权限类型说明 语法约定 下面的约定被用于命令的大纲&#xff1a;方括弧&#xff08;[和]&#xff09;表示可选的部分&#xff08;在 Tcl 命令里&#xff0c;使…...

【linux】:进程概念

文章目录 冯诺依曼体系结构一&#xff1a;操作系统二: 进程总结冯诺依曼体系结构 我们常见的计算机&#xff0c;如笔记本。我们不常见的计算机&#xff0c;如服务器&#xff0c;大部分都遵守冯诺依曼体系。 冯诺依曼体系如下图&#xff1a; 那么输入设备有哪些呢&#xff1f…...

创建对象的方式和对属性的操作

javaScript支持多种编程范式&#xff0c;包括函数式编程和面向对象编程&#xff0c;javaScript的对象被设计成一组属性的无序集合&#xff0c;由key和value组成。 创建对象的两种方式 早期使用创建对象方式最多的是使用Object类&#xff0c;使用new关键字来创建一个对象&…...

GO时间相关操作说明

文章目录 GO时间相关操作时间转换成字符串字符串转换成时间时间戳和时间操作时间比较操作时间增加和减少操作休眠操作time.AfterFunc操作time.NewTicker操作GO时间相关操作 ​ GO语言在使用时间转换的时候会用到2006-01-02 15:04:05 这是固定参数写法,类似java语言中的yyyy-M…...

选择和分支结构

选择和分支结构选择和分支结构一、复习问答二、选择结构2.1 基础选择结构2.2 if-else结构2.3 多重if结构2.4 嵌套if结构三、分支结构四、局部变量选择和分支结构 一、复习问答 1、Java中基本数据类型 2、类型的转换的两种情形 3、数据类型提升的规则 二、选择结构 2.1 基础选…...

Elasticsearch总结笔记

文章目录简介类型增删改查操作索引原理简介 底层使用的lucene引擎&#xff0c;lucene引擎直接使用相对复杂&#xff0c;有一定的学习成本&#xff0c;同样是使用Java编写&#xff0c;Elasticsearch使用的rest风格的进行交互&#xff0c;而数据呢则是以JSON的方式进行传输。学习…...

Ubuntu 安装指定版本 Mysql,并设置远程连接(以安装mysql 5.5 为例)

目录 一、安装Mysql 1、卸载Mysql&#xff08;可跳过&#xff09; 2、安装mysql 软件源 3、安装mysql 5.5 4、验证测试 二、设置远程登录 1、允许使用root账号远程连接 2、Mysql 允许远程登录 一、安装Mysql 1、卸载Mysql&#xff08;可跳过&#xff09; 如果之前安装…...

NumPy:Python中的强大数学工具

NumPy&#xff1a;Python中的强大数学工具 文章目录NumPy&#xff1a;Python中的强大数学工具一、NumPy简介二、创建数组三、数组尺寸四、数组运算五、数组切片六、数组连接七、数据存取八、数组形态变换九、数组排序与搜索十、矩阵与线性代数运算一、NumPy简介 当谈到数据科学…...

Hbase资源隔离操作指南

1.检查集群的环境配置 1.1 HBase版本号确认> 5.11.0 引入rsgroup的Patch&#xff1a; [HBASE-6721] RegionServer Group based Assignment - ASF JIRA RegionServer Group based Assignment 社区支持版本&#xff1a;2.0.0 引入rsgroup的CDH版本 5.11.0 https://www.…...

TPS2012B泰克Tektronix隔离通道示波器

简  述&#xff1a; 复杂环境中开发和测试你的设计&#xff0c;进行浮动或差 分测量&#xff1b;100MHz&#xff0c;2通道 主要特点和优点 100 MHz和200 MHz带宽 高达2 GS/s的实时采样率 2条或4条全面隔离和浮动通道&#xff0c;外加隔离外部触 发 在安装两块电池时可以连续…...

9.4 PIM-DM

实验目的 熟悉PIM-DM的应用场景掌握PIM-DM的配置方法 实验拓扑 实验拓扑如图9-28所示&#xff1a; 图9-28&#xff1a;PIM-DM 实验步骤 &#xff08;1&#xff09;IP地址的配置 MCS1的配置如图9-29所示&#xff1a; 图9-29&#xff1a;配置MCS1的IP地址 R1的配置 <Huawe…...

程序员推荐的良心网站合集!

今天来给大家推荐几个程序员必看的国外良心网站合集。 IBM developer 技术性很强的博客网站&#xff0c;网站自带真实示例代码和架构解决方案&#xff0c;大家可以在上面找到适合自己的语言方向开始学习交流。 https://developer.ibm.com/ infoq 技术论坛社区&#xff0c;内…...

大模型的token究竟是什么?如何通俗易懂地解释?

说实话&#xff0c;最开始我第一次撞见「Token」这个词&#xff0c;第一反应还以为是武侠里的令牌&#xff0c;也像游乐场的游戏代币&#xff0c;得投币才能启动机器那种。 一直以来都没人直白地讲解过 Token 到底是什么&#xff0c;我也就稀里糊涂跟着用&#xff0c;始终一知…...

【研报442】美国汽车产业战略的需求研究:五大政策方向重塑美国汽车工业

本报告提供限时下载&#xff0c;请查看文后提示以下仅为报告部分内容&#xff1a;摘要&#xff1a;美国汽车产业全球竞争力持续下滑&#xff0c;产量份额、本土巨头市占率、经济贡献度均大幅落后&#xff0c;面对中国电动车强势扩张&#xff0c;亟需出台国家级战略。报告围绕降…...

Java 并发容器深度解析:从早期遗留类到现代高并发架构

Java 并发容器的演进历程是 Java 语言在多线程环境下追求性能与安全平衡的缩影。本文将针对 List、Set、Queue&#xff08;含 Stack&#xff09;以及 Map 的并发实现方案进行系统化总结&#xff0c;并深度剖析装饰器模式与 Legacy 类的原理差异及底层实现机制。一、 并发容器实…...

基于MCP协议为本地工具集构建AI能力:syzygy-mcp-layer项目解析

1. 项目概述与核心价值最近在折腾AI应用开发&#xff0c;特别是想给本地的大语言模型&#xff08;LLM&#xff09;加上“联网”和“调用工具”的能力时&#xff0c;发现了一个绕不开的组件&#xff1a;MCP&#xff08;Model Context Protocol&#xff09;。简单来说&#xff0c…...

终极开源气象服务:Open-Meteo完整部署与深度应用指南

终极开源气象服务&#xff1a;Open-Meteo完整部署与深度应用指南 【免费下载链接】open-meteo Free Weather Forecast API for non-commercial use 项目地址: https://gitcode.com/GitHub_Trending/op/open-meteo Open-Meteo是一款革命性的开源天气数据服务平台&#xf…...

AntiDupl.NET:3步释放硬盘空间,智能图片去重实战指南

AntiDupl.NET&#xff1a;3步释放硬盘空间&#xff0c;智能图片去重实战指南 【免费下载链接】AntiDupl A program to search similar and defect pictures on the disk 项目地址: https://gitcode.com/gh_mirrors/an/AntiDupl 数字时代&#xff0c;图片重复问题已成为存…...

Unity语音驱动口型动画终极指南:5分钟实现角色真实对话效果

Unity语音驱动口型动画终极指南&#xff1a;5分钟实现角色真实对话效果 【免费下载链接】LipSync LipSync for Unity3D 根据语音生成口型动画 支持fmod 项目地址: https://gitcode.com/gh_mirrors/lip/LipSync 还在为Unity角色对话时僵硬的口型匹配而烦恼吗&#xff1f;…...

从阻车钉到GPS追踪器:技术如何革新警用车辆追捕安全

1. 高速追捕的代价与技术介入的必要性前几天翻看本地报纸&#xff0c;一组数据让我这个在汽车电子行业干了十几年的人心里一沉。从1979年到2013年&#xff0c;因为警方高速追捕试图逃逸的车辆&#xff0c;总共造成了11,506人丧生。更令人揪心的是&#xff0c;其中近一半的遇难者…...

Chat2DB:重构数据库管理的AI原生范式

Chat2DB&#xff1a;重构数据库管理的AI原生范式 【免费下载链接】Chat2DB AI-driven database tool and SQL client, The hottest GUI client, supporting MySQL, Oracle, PostgreSQL, DB2, SQL Server, DB2, SQLite, H2, ClickHouse, and more. 项目地址: https://gitcode.…...

利用Taotoken CLI工具一键配置团队开发环境与统一密钥

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 利用Taotoken CLI工具一键配置团队开发环境与统一密钥 1. 引言 在团队协作开发中&#xff0c;统一管理大模型API的接入配置是一个…...