首页 > 其他分享 >HBase-compact介绍

HBase-compact介绍

时间:2024-01-31 18:46:43浏览次数:30  
标签:compact major 介绍 compaction flush hbase HBase

一、minor和major的区别:

 

Minor Compaction:指选取一些小的、相邻的HFile将他们合并成一个更大的HFile。默认情况下,minor compaction会删除选取HFile中的TTL过期数据。
Major Compaction:指将一个Store中所有的HFile合并成一个HFile,这个过程会清理三类没有意义的数据:被删除的数据(打了Delete标记的数据)、TTL过期数据、版本号超过设定版本号的数据。另外,一般情况下,Major Compaction时间会持续比较长,整个过程会消耗大量系统资源,对上层业务有比较大的影响。因此,生产环境下通常关闭自动触发Major Compaction功能,改为手动在业务低峰期触发。

Compaction 触发条件
HBase触发Compaction的条件有三种:memstore Flush、后台线程周期性检查、手动触发。

(1)memstore flush:可以说compaction的根源就在于flush,memstore 达到一定阈值或其他条件时就会触发flush刷写到磁盘生成HFile文件,正是因为HFile文件越来越多才需要compact。HBase每次flush之后,都会判断是否要进行compaction,一旦满足minor compaction或major compaction的条件便会触发执行。
(2)后台线程周期性检查: 后台线程 CompactionChecker 会定期检查是否需要执行compaction,检查周期为hbase.server.thread.wakefrequency * hbase.server.compactchecker.interval.multiplier,这里主要考虑的是一段时间内没有写入请求仍然需要做compact检查。

其中参数 hbase.server.thread.wakefrequency 默认值 10000 即 10s,是HBase服务端线程唤醒时间间隔,用于log roller、memstore flusher等操作周期性检查;

       参数 hbase.server.compactchecker.interval.multiplier 默认值1000,是compaction操作周期性检查乘数因子。10 * 1000 s 时间上约等于2hrs, 46mins, 40sec。
(3)手动触发:是指通过HBase Shell、Master UI界面或者HBase API等任一种方式 执行 compact、major_compact等命令。

 

二、日常维护命令

    (1)major_compact 'table',通常生产环境会关闭自动major_compact(配置文件中hbase.hregion.majorcompaction设 为0),选择一个晚上用户少的时间窗口手工major_compact,如果hbase更新不是太频繁,可以一个星期对所有表做一次 major_compact,这个可以在做完一次major_compact后,观看所有的storefile数量,如果storefile数量增加到 major_compact后的storefile的近二倍时,可以对所有表做一次major_compact,时间比较长,操作尽量避免高锋期。

    (2)flush 'table',将所有memstore刷新到hdfs,通常如果发现regionserver的内存使用过大,造成该机的 regionserver很多线程block,可以执行一下flush操作,这个操作会造成hbase的storefile数量剧增,应尽量避免这个操 作,还有一种情况,在hbase进行迁移的时候,如果选择拷贝文件方式,可以先停写入,然后flush所有表,拷贝文件。

    (3)balance_switch true或者balance_switch flase,配置master是否执行平衡各个regionserver的region数量,当我们需要维护或者重启一个regionserver时,会 关闭balancer,这样就使得region在regionserver上的分布不均,这个时候需要手工的开启balance。

 

标签:compact,major,介绍,compaction,flush,hbase,HBase
From: https://www.cnblogs.com/yeyuzhuanjia/p/17999899

相关文章

  • Redis集群方案和数据分区原理介绍
    Redis集群方案主从模式一主多从,主节点负责写数据,从节点负责读数据,主节点定期把数据同步到从节点保证数据的一致性。避免单点故障,实现了读写分离。优点:主从结构具有读写分离、提高效率、数据备份、提供多个副本等优点。缺点:不具备恢复功能,如果主节点宕机,则不能提供服务,需......
  • MySQL介绍
    数据库的由来和基本概念什么是数据库?|Oracle中国【一】数据的发展史早期未出现互联网前,每个人都只可以在本地存储,且存储的数据格式都是根据每个人的需要自由定义的出现网络后,可以在局域网内进行多台计算机的数据共享,而这时,数据的格式只能由人为约束,约定俗成好一套数据存......
  • [office] Excel 2019新增功能 MINIFS函数 介绍
    定义:返回一组给定条件所指定的单元格的最小值。语法结构如下:MINIFS(min_range,criteria_range1,criteria1,[criteria_range2,criteria2],...)min_range(必需)参数指的是确定最小值的实际单元格区域;criteria_range1(必需)参数指的是一组用于条件计算的单元格;criteria1(必需)参数指的是用于......
  • SpringBoot介绍
    SpringBoot一、介绍我们在搭建传统SSM项目时,通常需要导入很多依赖,但每种依赖又有许多版本,这就很容易出现依赖冲突。此外,繁琐的配置也是一大痛点,太多了,让人很难记住,因此SpringBoot诞生了。SpringBoot是对Spring的深度封装,基于约定优于配置的思想,提供了大量的默认配置和实现。......
  • [office] Excel旋转图表的两种方法介绍
    Excel的图表本身是不可以旋转放置的,那么怎么可以通过其他方式来实现对图表的旋转呢?下面我向大家介绍二种方法。步骤一:把图表复制为静态图片1、按“shift”键,单击图表区,然后执行“编辑——复制图片”命令,弹出“复制图片”对话框,然后按确定。2、在一个空白的单元格处,点鼠标右键,然后粘......
  • Active Directory Group Policy Objects | 活动目录组策略对象 | 介绍 | 配置
    介绍ActiveDirectory(AD)的组策略对象(GroupPolicyObjects,简称GPO),在Windows环境中使用GPO来配置、管理和强制执行网络中的计算机和用户设置。组策略对象(GPO)是策略设置的虚拟集合,GPO具有唯一的名称,例如GUID。组策略设置包含在GPO中,GPO可以表示文档系统和ActiveDirectory......
  • [职场] 菲尔兹奖介绍 菲尔兹奖历届得主
    菲尔兹奖每四年颁发一次,在由国际数学联合会主办的四年一度的国际数学家大会上举行颁奖仪式,每次授予2至4名有卓越贡献的数学家。因诺贝尔奖未设置数学奖,故该奖被誉为“数学界的诺贝尔奖”。一.词语定义菲尔兹奖(FieldsMedal),又译为菲尔茨奖,是加拿大数学家约翰·查尔斯·菲尔兹(JohnCh......
  • 设计模式相关介绍
    设计模式使用原则主要包括以下几点:单一职责原则:一个类只负责一项职责,即一个类应该只有一个职责,该职责由类的一个职责来定义。这样可以提高类的可维护性和可复用性。开闭原则:软件实体应当对扩展开放,对修改封闭。也就是说,软件的功能扩展应当通过增加新代码来实现,而不是通过修改已......
  • 【机器学习】常见算法详解第2篇:KNN之kd树介绍(已分享,附代码)
    本系列文章md笔记(已分享)主要讨论机器学习算法相关知识。机器学习算法文章笔记以算法、案例为驱动的学习,伴随浅显易懂的数学知识,让大家掌握机器学习常见算法原理,应用Scikit-learn实现机器学习算法的应用,结合场景解决实际问题。包括K-近邻算法,线性回归,逻辑回归,决策树算法,集成学习,聚......
  • nftables用法介绍
    Kubernetes1.29版本中已经将nftables作为一个featureGates,本文简单整理了nftables的用法,便于后续理解kubernetes的nftables规则。文末给出了使用kubeadm部署启用nftablesfeatureGates的配置文件。如下内容来源nftables的man文档以及wiki。nftables和iptables的不同之处nfta......