(转)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

相关文章

[word] word设置上标快捷键 #学习方法#其他#媒体

word设置上标快捷键 办公中,少不了使用word,这个是大家必备的软件,今天给大家分享word设置上标快捷键,希望在办公中能帮到您! 1、添加上标 在录入一些公式,或者是化学产品时,需要添加上标内容,按下快捷键Ctrl+shift++就能将需要的内容设置为上标符号。 word设置上标快捷键的方法就是以上内容了,需要的小伙伴都可以试一试呢!

雨量传感器的分类和选型建议

物理原理分类 机械降雨量计(雨量桶):最早使用的降雨量传感器,通过漏斗收集雨水并记录。主要用于长期降雨统计,故障率较低。电容式降雨量传感器:基于两个电极之间的电容变化来计算降雨量。当降雨时,水滴堵住电极空间,改变电容值,从而计算降雨量。超声波式降雨量传感器:利用超声波的反射来计算降雨量。适用于大降雨量的场合。激光雷达式降雨量传感器:利用激光技术测量雨滴的速度、大小和形状等参数,并计算降雨量。主

如何设置windows计划任务

如何设置windows计划任务 前言:在工作过程中写了一个python脚本,用于调用jira接口查询bug单数量,想要在本地定时任务执行,每天发送到钉钉群提醒,写下操作步骤用于记录。 1. 准备 Python 脚本 确保你的 Python 脚本已经保存到一个文件,比如 jira_reminder.py。 2. 创建批处理文件 为了方便任务计划程序运行 Python 脚本,创建一个批处理文

FastAdmin/bootstrapTable 表格中生成的按钮设置成文字

公司有个系统后台框架用的是FastAdmin,后台表格的操作栏按钮只有图标,想要设置成文字。 查资料后发现其实很简单,主需要新增“text”属性即可,如下 buttons: [{name: 'acceptcompany',title: '复核企业',text:'复核企业',classname: 'btn btn-xs btn-primary btn-dialog',icon: 'fa fa-pe

众所周知,配置即代码≠基础设置即代码

​前段时间翻到几条留言,问: “配置即代码和基础设施即代码一样吗?” “配置即代码是什么?怎么都是基础设施即代码?” 我们都是知道,DevOp的快速发展,让服务器管理与配置的时间大大减少,配置即代码和基础设施即代码作为DevOps的重要实践,在其中起到了关键性作用。 不少人将二者看作是一件事,配置即大代码是关于管理特定的应用程序配置设置本身,而基础设施即代码更关注的是部署支持应用程序环境所需的

设置Nginx缓存策略

详细信息 Nginx服务器的缓存策略设置方法有两种:add_header或者expires。 1. add_header 1)语法:add_header name value。 2)默认值:none。 3)使用范围:http、server、location。 配置示例如下: add_header cache-control "max-age=86400";#设置缓存时间为1天。add

设置android返回键,保存和取得最高分

1.在.h中声明一些方法 virtual void keyBackClicked();           //Android返回键 bool isHaveSaveFile(); void getHighestHistoryScore(); 在.cpp中实现这个几个方法 void WelcomeLayer::keyBackClicked(

通知中心设置一个键盘的捕捉事件

//通知中心监听键盘的frame发生改变

如何给文档设置密码?电脑文件安全加密的详细操作步骤(10种方法)

在数字化时代,电脑文件的安全和隐私至关重要。通过给电脑的文件或者文件夹设置密码和加密,可以有效保护你的重要文件不被未经授权的人员访问,特别是公司的重要岗位,一些特殊的机密文件,投标文件,资金文件等等,更应该注重文件日常使用安全性。下面将为你介绍10种电脑文件,文件夹加密的详细操作步骤,帮助你更好地保护你的电脑文件安全。 加密方式一、Windows系统内置加密(电脑自带的文件加密) 选中需要