Hbase如何优化
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,这篇文章给大家分享的是有关Hbase如何优化的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、软硬件优化:1. 配置内存,cpuHBase的LSM树结构,缓存机制和日志机制
千家信息网最后更新 2025年01月22日Hbase如何优化一、软硬件优化: 1. 配置内存,cpu HBase的LSM树结构,缓存机制和日志机制对内存消耗非常大,所以内存越大越好。 其中过滤器,数据压缩,多条件组合扫描等场景都是cpu密集型的,所以cpu也要够强悍 2. 操作系统 选择主流linux发行版,JVM推荐用Sun HotSpot64位的,能发挥hadoop最好的性能 使用noatime挂载磁盘:一般数据库的挂载磁盘没有特殊要求情况下最好都设置位为noatime以提高性能 关闭系统交换区: Linux内存反复交换会影响JVM性能,典型的异常就是导致zookeeper超时。所以设置vm.swappiness设置的比较低较好。 3. 网络通信 由于hdfs对集群网络吞吐有很高的要求,所以网络必须保证低延迟高吞吐 添加机架感知:机架感知是提升hadoop的写入和读取本地化。在core-site.xml中配置topology.script.file.name 4. JVM优化 根据网络上很多成熟引用验证比较优秀的垃圾回收器搭配组合CMS+ParNew 二、进入主题:Hbase本身优化 1. Hbase查询优化: a. 设置scan缓存:scan的时候setCaching来设置缓存大小 b. 确定所需要的列:scan时候addColumn来添加所需要的列减少数据的传输 c. 如果批量进行全表扫描请禁用块缓存,因为全表扫描每条记录只读取一遍 d. 优化行键查询:全表scan时,如果只需要行键,可以使用过滤器来减少服务器返回的数据量。 e. 通过HBaseTool访问:HTable对象对于客户端读写数据来说不是线程安全的,多线程时要为每个线程创建一个HBase对象。而HBaseTool链接线程池机制可以解决线程安全问题,同事维持一定数量的HBase f. 使用批量读:HTable.get(List) g. 使用Coprocessor统计行数: 具体原理请看协处理器原理 h. 缓存查询结果:对于查询频繁的应用场景 2. HBase写入优化: a. 关闭WAL日志:如果能容忍一定的数据丢失风险,则可以关闭WAL b. 设置AutoFlush: 关闭此功能等put到达到缓存阀值时候才提交到服务器 c. 预创建Region: 预先创建region来避免写入时region到达一定阀值而split影响性能,和mongodb预分片原理一致 d. 延迟WAL flush:如果开启WAL则可以将WAL flush到磁盘的时间间隔调大一些来提高性能 e. 使用批量写HTable.put(List) 3. HBase基本核心服务优化 a. 优化分裂操作: 如果写多读少的场景则可以调高hbase.hregion.max.filesize来减少region分裂 b. 优化合并操作:大合并非常消耗资源,且合并时候会阻塞写操作。应该在集群不繁忙的时候进行大合并 4. Hbase配置参数优化: a. 设置regionserver handler数量:如果写请求比较多则可以适当调高hbase.regionserver.handler.count的数量以提高写吞吐。此参数调高很消耗内存,请注意。 b. 调整blockCache大小:hfile.block.cache.size来设置regionserver查询的内存设置。默认0.25指读缓存占用堆内存25%。读场景比较多可以适当调高。 c. 设置MemStore的上下限:hbase.regionserver.global.memstore.upperLimit表示regionserver上所有region的Memstore的大小上限,超过上限会引发全局flush,这个参数主要防止regionserver内存占用过大被OOM Kill掉。 读为主的集群中,可以调小此参数,调高blockCache; 写则相反 d. 调整影响合并的文件数:hbase.hstore.blockingStoreFiles值用于控制超过此值的storefile则会出发合并。可以调大此值减少合并次数 e. 调整MemStore的flush因子:当Memstore占用内存大小超过hbase.hregion.memstore.flush.size倍数时将阻塞region所有请求,出发flush,释放内存。如果正常不会出现写入或写入数据量突然增大则可以保持默认,否则要调高此值。 f. 调整单个文件大小:hbase.hregion.max.filesize用于定义单个hstorefile大小,超过此值则引发region文件split。 Region比较小则合并和split都很快,当然会造成集群响应时间波动。 大合并和split则造成较长时间阻塞。应该根据自己场景来定义 5. 分布式协调系统zookeeper的优化:zookeeper的优化方法也很多,我就主要讲hbase优化。只是说明下zookeeper优化也非常重要。 6. 表设计优化 a. 开启布隆过滤器:布隆过滤器可以减少读盘次数以降低延迟。原理和redis的hyperloglog一样(我们以前有用此功能对用户数量进行估算) b. 调整列族块大小:较小的块大小可以提高随机读的速度,同时导致块索引变大。 c. 设置in memory属性:对于经常访问的列族可以设置in memory,但是要考虑消耗内存的问题 d. 调整列族最大版本数量:数量大占用磁盘空间,且导致集群变大。根据自己应用场景来选择。像我们做画像由于要统计用户场景变化,所以版本数量有根据自己需求设置 e. 设置TTL属性:超过TTL的列将自动删除。这个也根据自己场景选择。我们做用户画像时会将某些用户行为超过时间的就认为没有必要在进行存储分析了,所以可以设置TTL来自动删除 7. 关闭mapreduce的预测执行功能:若使用mapreduce来访问hbase集群应该关闭,否则有可能导致hbase客户端链接数陡增影响集群运行 8. 修改负载均衡执行周期:当集群写入频繁时,可以调小,否则可以调大。
这篇文章给大家分享的是有关Hbase如何优化的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
感谢各位的阅读!关于"Hbase如何优化"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
内存
场景
大小
集群
数据
数量
缓存
调整
性能
时候
线程
a.
查询
原理
参数
用户
磁盘
网络
过滤器
b.
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
进入网络安全模式密码错误
施乐700 服务器补丁
河北hp服务器虚拟化部署云空间
网络安全监测方法
攀枝花高密度存储服务器多少钱
中职数据库应用基础人才培养方案
服务器安装虚拟机报错硬盘故障
南京网络安全培训机构线上学习
沈阳游米网络技术有限公司
技能鉴定软件开发
数据库同步技术的研究与应用
数据库怎样更新
有哪些软件开发方法
怎么把数据库文件导出来
泰拉瑞亚服务器进群开荒最新
软件开发 犯罪
齐向东谈网络安全完整
职业软件开发哪家好
网络安全教育 视频
河北质量网络技术咨询价格行情
电脑怎样重启数据库
网络安全小报电子版文档
数据库技术教学过程设计
信息软件开发属于哪个科目
怎么匹配两列表格数据库
网络安全大会那天开
账套数据库设计入门经典
浙江hp服务器维修维保费用
鹰潭oa软件开发
如何使云服务器安全