培训啦 教育头条

郑州金水区有名的大数据开发培训班

教培参考

教育培训行业知识型媒体

发布时间: 2025年01月07日 04:57

大数据开发-Hbase合并

一、概述

老规矩,先来给大家复习下一些基础知识,免得又忘了。

Hbase表的基本单位是Region,日常调用Hbase API操作一个表时,交互的数据也会以Region的形式进行呈现。前面介绍过Hbase Region拆分策略原理,一个表可以有若干个Region,本文主要介绍Region合并的一些问题和解决方法。

郑州金水区有名的大数据开发培训班

什么是Hbase Compaction?

简单来说就是Hbase将Region中的Store中的一些HFile进行合并。

二、合并原因及原理

原因:这个需要从Region的Split来说。当一个Region被不断的写数据,达到Region的Split的阀值时(由属性hbase.hregion.max.filesize来决定,默认是10GB),该Region就会被Split成两个新的Region。随着业务数据量的不断增加,Region不断的执行Split,那么Region的个数也会越来越多。

一个业务表的Region越多,在进行读写操作时,或是对该表执行Compaction操作时,此时集群的压力是很大的。这里笔者做过一个线上统计,在一个业务表的Region个数达到9000+时,每次对该表进行Compaction操作时,集群的负载便会加重。而间接的也会影响应用程序的读写,一个表的Region过大,势必整个集群的Region个数也会增加,负载均衡后,每个RegionServer承担的Region个数也会增加。

因此,这种情况是很有必要的进行Region合并的。比如,当前Region进行Split的阀值设置为30GB,那么我们可以对小于等于10GB的Region进行一次合并,减少每个业务表的Region,从而降低整个集群的Region,减缓每个RegionServer上的Region压力。

其合并原理分为三步:排序文件、合并文件、代替原文件服务。

Hbase首先从待合并的文件中读出HFile中的key-value,再按照由小到大的顺序写入一个新文件(storeFile)中。这个新文件将代替所有之前的文件,对外提供服务。

在分析合并Region之前,我们先来了解一下Region的体系结构,如下图所示:

从图中可知

HRegion:一个Region可以包含多个Store;

Store:每个Store包含一个Memstore和若干个StoreFile;

StoreFile:表数据真实存储的地方,HFile是表数据在HDFS上的文件格式。

当Hbase合并时,会清空以下三种数据

1.标记为删除的数据。

当我们删除数据时,Hbase并没有把这些数据立即删除,而是将这些数据打了一个个标记,称为“墓碑”标记。在Hbase合并时,会将这些带有墓碑标记的数据删除。

2.TTL过期数据

TTL(time to live)指数据包在网络中的时间。如果列族中设置了TTL过期时间,则在合并的过程中,发现过期的数据将被删除。

3.版本合并

若版本号超过了列族中预先设定的版本号,则将较早的一条数据删除。

如:列族设置版本号是5,当此列族第六次保存数据时,会将较早一次数据删除。

985大学 211大学 全国院校对比 专升本 美国留学 留求艺网

温馨提示:
本文【郑州金水区有名的大数据开发培训班】由作者教培参考提供。该文观点仅代表作者本人,培训啦系信息发布平台,仅提供信息存储空间服务,若存在侵权问题,请及时联系管理员或作者进行删除。
我们采用的作品包括内容和图片部分来源于网络用户投稿,我们不确定投稿用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的权利,请联系我站将及时删除。
内容侵权、违法和不良信息举报
Copyright @ 2024 培训啦 All Rights Reserved 版权所有. 湘ICP备2022011548号 美国留学 留求艺