(转)HBase为什么不建议设置过多的列簇?

2024-05-24 10:18
文章标签 设置 建议 过多 hbase

本文主要是介绍(转)HBase为什么不建议设置过多的列簇?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在HBase中,是允许设置多个列簇的,但是为什么在实际生产中会设置很少的列簇呢?一般设置在1至3个左右,尽量是越少越好。
原因有多个方面,具体简要说明几点:

1、列簇的数量对flush的影响
在一个RegionServer上有一个或多个region,每个region又由一个或多个store组成,一个store存储的就是一个列簇,也就是说列簇的数量越多,每个region的的store就越多,那么region中的memstore数量就会就多,当memstore达到一定的阈值时,就会将memstore中的数据flush到storeFile中,每次flush都会产生IO,当memstore数量增多时,需要flush的就越多,就会影响了flush的IO性能及消耗更多的集群资源,甚至会造成memstore的flush阻塞现象。

2、列簇的数量对split的影响
在region的大小超过一定的大小时(hbase.hregion.max.filesize参数),region就会分裂,当然region的分裂并不是region中所有的文件大小大于上述的参数就分裂,而是region中最大的storeFile的大小达到了上述参数的值时才会触发region分裂,如果列簇的数量过多的话,并且这些列簇之间的数据量相差很大,那么在region分裂后原本数据量小的storeFile就会拆分成更小的文件,在scan范围数据时就会影响该列簇数据的读性能,因为region的分裂针对的是所有的列簇,并不是某单个的列簇,是为了保证分裂之后相同行的数据在仍在一个region上。

3、列簇的数量对compaction的影响
同样的,compaction的操作针对的是region的操作,在列簇越多时,相关文件就会越多,region合并时产生的IO就会消耗越多,加大了资源的消耗。

4、列簇的数量对HDFS的影响
HDFS对目录下的文件数量是有限制的(dfs.namenode.fs-limits.max-directory-items),例如region的数量为m个,列簇的数量为n个,那么对应的文件数量就有mn个,但是每个store下的storeFile(HFile)的数量至少有一个,假设有K个,那么总共对应的文件数量就有mn*k个,列簇的数量是文件数量的n倍。

5、列簇的数量对RegionServer内存的影响
在一个store中存储的就是一个列簇,store中的memstore是内存结构,当列簇越多,那么memstore的数量就越多,占用的内存的空间就会越多。

总结:根据实际生产需求,能够用一个列簇解决的就尽量用一个列簇,当两个列簇的数量相差悬殊时,可以将其两个列簇的数据拆分为两个表的单个列簇。
————————————————
版权声明:本文为CSDN博主「已个人」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43888806/article/details/100127854

这篇关于(转)HBase为什么不建议设置过多的列簇?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Spring MVC如何设置响应

《SpringMVC如何设置响应》本文介绍了如何在Spring框架中设置响应,并通过不同的注解返回静态页面、HTML片段和JSON数据,此外,还讲解了如何设置响应的状态码和Header... 目录1. 返回静态页面1.1 Spring 默认扫描路径1.2 @RestController2. 返回 html2

四种简单方法 轻松进入电脑主板 BIOS 或 UEFI 固件设置

《四种简单方法轻松进入电脑主板BIOS或UEFI固件设置》设置BIOS/UEFI是计算机维护和管理中的一项重要任务,它允许用户配置计算机的启动选项、硬件设置和其他关键参数,该怎么进入呢?下面... 随着计算机技术的发展,大多数主流 PC 和笔记本已经从传统 BIOS 转向了 UEFI 固件。很多时候,我们也

Linux中chmod权限设置方式

《Linux中chmod权限设置方式》本文介绍了Linux系统中文件和目录权限的设置方法,包括chmod、chown和chgrp命令的使用,以及权限模式和符号模式的详细说明,通过这些命令,用户可以灵活... 目录设置基本权限命令:chmod1、权限介绍2、chmod命令常见用法和示例3、文件权限详解4、ch

SpringBoot项目引入token设置方式

《SpringBoot项目引入token设置方式》本文详细介绍了JWT(JSONWebToken)的基本概念、结构、应用场景以及工作原理,通过动手实践,展示了如何在SpringBoot项目中实现JWT... 目录一. 先了解熟悉JWT(jsON Web Token)1. JSON Web Token是什么鬼

使用Spring Cache时设置缓存键的注意事项详解

《使用SpringCache时设置缓存键的注意事项详解》在现代的Web应用中,缓存是提高系统性能和响应速度的重要手段之一,Spring框架提供了强大的缓存支持,通过​​@Cacheable​​、​​... 目录引言1. 缓存键的基本概念2. 默认缓存键生成器3. 自定义缓存键3.1 使用​​@Cacheab

java如何调用kettle设置变量和参数

《java如何调用kettle设置变量和参数》文章简要介绍了如何在Java中调用Kettle,并重点讨论了变量和参数的区别,以及在Java代码中如何正确设置和使用这些变量,避免覆盖Kettle中已设置... 目录Java调用kettle设置变量和参数java代码中变量会覆盖kettle里面设置的变量总结ja

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

uniapp设置微信小程序的交互反馈

链接:uni.showToast(OBJECT) | uni-app官网 (dcloud.net.cn) 设置操作成功的弹窗: title是我们弹窗提示的文字 showToast是我们在加载的时候进入就会弹出的提示。 2.设置失败的提示窗口和标签 icon:'error'是设置我们失败的logo 设置的文字上限是7个文字,如果需要设置的提示文字过长就需要设置icon并给

Tomcat性能参数设置

转自:http://blog.csdn.net/chinadeng/article/details/6591542 Tomcat性能参数设置 2010 - 12 - 27 Tomcat性能参数设置 博客分类: Java Linux Tomcat 网络应用 多线程 Socket 默认参数不适合生产环境使用,因此需要修改一些参数   1、修改启动时内存参数、并指定J

linux 下Time_wait过多问题解决

转自:http://blog.csdn.net/jaylong35/article/details/6605077 问题起因: 自己开发了一个服务器和客户端,通过短连接的方式来进行通讯,由于过于频繁的创建连接,导致系统连接数量被占用,不能及时释放。看了一下18888,当时吓到了。 现象: 1、外部机器不能正常连接SSH 2、内向外不能够正常的ping通过,域名也不能正常解析。