hbase参数配置及优化
为什么80%的码农都做不了架构师?>>>
接触hbase已有半年的时间,查了很多资料,也参考了很多别人心得,也希望把自己的心得以及理解写出来,我把配置hbase必调的几个参数写一下,以及它们的意义。
zookeeper.session.timeout
这个参数的意义是regionserver在zookeeper的会话过期时间,默认是3分钟,如果regionserver 在zookeeper.session.timeout这个配置的时间没有去连zookeeper的话,zookeeper会将该regionserver在zookeeper摘除,不让该regionserver向提供服务,很多人都该值配置很大,原因是生产环境中regionserver的内存都配置很大,以扩大memstore和cache的大小,提高性能,但是内存配置大了以后,regionserver在jvm做一次内存大回收时,时间也会变长,很有可能这个时间超过zookeeper.session.timeout时间,导致regionserver在jvm回收内存的时候,zookeeper误以为regionserver挂掉而将regionserver摘除。但我认为该值还是不要配的过大,首先地java已支持cms方式回收内存,每次内存回收的时间不是太长,并且生产环境中,我们也不允许过长时间的服务中断,配置大了,容易造成一个regionserver的服务真出现异常时,zookeeper不会切除该regionserver,使得很多请求失败。
hbase.regionserver.handler.count
regionserver的工作线程数量,默认是10,没有疑问,官方默认值太小,通常都调到100~200之间,提高regionserver性能。
hbase.regionserver.lease.period
regionserer租约时间,默认值是60s,也有点小,如果你的生产环境中,在执行一些任务时,如mapred时出现lease超时的报错,那这个时候就需要去调大这个值了。
hfile.block.cache.size
regionserver cache的大小,默认是0.2,是整个堆内存的多少比例作为regionserver的cache,调大该值会提升查询性能,当然也不能过大,如果你的hbase都大量的查询,写入不是很多的话,调到0.5也就够了,说到这个值,有一个地方需要说明一下,如果生产环境有mapred任务去scan hbase的时候,一些要在mapred scan类中加一个scan.setCacheBlocks(false),避免由于mapred使用regionserver的cache都被替换,造成hbase的查询性能明显下降。
hbase.hregion.memstore.flush.size
一个regionserver的单个region memstore的大小,默认是64M,在hbase结构中,一个regionserver管理多个region,一个region对应一个hlog和多个store,一个store对应多个storefile和一个memstore,这里的hbase.hregion.memstore.flush.size意思一个region下面的所有store里面的memstore的达到多少时,开始将这些memstore flush到hdfs中去,配置这个值,需要参考一下,平均每个regionserver管理的region数量,如果每台regionsever管理的region不多的话,可以适当的调大该值,如512M时再flush。
hbase.regionserver.global.memstore.upperLimit/hbase.regionserver.global.memstore.lowerLimit
配置一台regionserver所有memstore占整个堆的最大比例,默认是0.4/0.35,二个值的差异在于是做局部的flush,还是全部flush,如果你的regionserver日志中,频发出现因为超过hbase.regionserver.global.memstore.lowerLimit而做flush的信息,我觉得有必要调小hbase.hregion.memstore.flush.size,或者适当调大这二个值,当然hbase.regionserver.global.memstore.upperLimit和hfile.block.cache.size的和不能大于1,到0.8我觉得已经够大了。如果你的jvm内存回收是使用cms的话,有一个值CMSInitiatingOccupancyFraction(内存使用到时多少时,一始cms回收内存)的大小和觉得和这个有关系,略小于hbase.regionserver.global.memstore.upperLimit和hfile.block.cache.size的和是一个不错的选择。
hbase.hstore.compactionThreshold/hbase.hregion.majorcompaction
hbase.hstore.compactionThreshold执行compaction的store数量,默认值是3,如果需要提高查询性能,当然是storefile的数量越小,性能越好,但是执行compaction本身有性能资源的开消,如果regionserver频繁在compacion对性能影响也很大。hbase.hregion.majorcompaction表示majorcompaction的周期,默认是1天,majorcompaction与普通的compaction的区别是majorcompaction会清除过期的历史版本数据,同时合并storefile,而普通的compaction只做合并,通常都是majorcompaction,调为0,然后手工定期的去执行一下majorcompaction,适当调小点compacionThreshold。
hbase.hregion.max.filesize
一个regionsever的最大值,默认是256M,如果数据量特别大的话,调大该值可以减少region的数量,调到2G我觉得都不为过。
hbase配置调优太多,jvm,mslab内存管理以及hdfs append方式等等,需要太多的知识面,很多东西,我也在学习之中,先写这么多。
转载于:https://my.oschina.net/beiyou/blog/76259
hbase参数配置及优化相关推荐
- HBase参数配置及说明
2019独角兽企业重金招聘Python工程师标准>>> 版本:0.94-cdh4.2.1 hbase-site.xml配置 hbase.tmp.dir 本地文件系统tmp目录,一般配 ...
- Tomcat 8 参数配置性能优化
前言 开启 manager-gui Tomcat 状态解读 关闭 AJP 服务 设置线程池 NIO 还是 APR?Connector 配置 JVM 参数调整 其他方式 参考文章 前言 整理这篇 Tom ...
- MySQL参数配置优化
MySQL参数配置优化 max_connections Variable Scope: Global Dynamic Variable: Yes Default: ...
- mysql属性配置提高查询_MYSQL性能优化-安装时优化参数配置提高服务性能
MYSQL性能优化一直是个头痛的问题,目前大多都是直接把页面html静态页面或直接使用了缓存技术,下面我就mysql本身的性能优化来分享一下. 安装时优化参数配置提高服务性能 在Linux下安装Mys ...
- 8核32g mysql性能_MySQL性能优化之参数配置
1.目的: 通过根据服务器目前状况,修改Mysql的系统参数,达到合理利用服务器现有资源,最大合理的提高MySQL性能. 2.服务器参数: 32G内存.4个CPU,每个CPU 8核. 3.MySQL目 ...
- MySQL性能优化之参数配置
1.目的: 通过根据服务器目前状况,修改MySQL的系统参数,达到合理利用服务器现有资源,最大合理的提高MySQL性能. 2.服务器参数: 32G内存.4个CPU,每个CPU 8核. 3.MySQL目 ...
- HiveSQL运行优化参数配置
HiveSQL运行优化参数配置 HiveSQL常用数据处理语句 HiveSQL中复杂数据类型操作 我们平时在使用hive执行一些SQL任务时.经常会遇到执行速度很慢,数据倾斜,资源不够用等问题.那是因 ...
- Java虚拟机:常见JVM参数配置和GC性能优化
一.常见的JVM参数配置: 1.垃圾回收统计信息: -XX:+PrintGC 打印GC简要信息 -XX:+PrintGCDetails打印GC的详细信息 -XX:+PrintGCTimeSta ...
- mysql 8 配置参数优化_mysql8 参考手册--配置非持久性优化器统计参数
本节介绍如何配置非持久性优化器统计信息.当innodb_stats_persistent=OFF或使用创建或更改单个表时,Optimizer统计信息不会保留在磁盘 上 STATS_PERSISTENT ...
最新文章
- struts2 hibernate登录
- JQuery对象和JS对象区别与转换|| 事件绑定 入口函数 样式控制
- Spring MVC 的xml一些配置
- 第四范式裴沵思出席绿公司年会:传统企业要尽快完成在线化武装
- 【转】java项目应该知道的核心重点部分
- 天津大学计算机图形学_考研大数据|2020天津大学计算机类分数统计
- Mac下ssh支持auto complete
- html复制文字兼容手机,JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)...
- WPF入门教程系列(二) 深入剖析WPF Binding的使用方法
- linux刷脚本需要什么工具吗,利用宝塔Linux一键挂载脚本工具挂载www目录方法
- 每天只睡 4 小时!大佬们都这么拼吗?
- LeetCode 116. Populating Next Right Pointers in Each Node
- 软件工程经济学课后答案
- MySQL5.7官网参考手册路径
- 缓存框架 EhCache 使用 3
- 电子之TTL和CMOS门电路的区别
- unity 图片改成astc 所有机型机型检测
- python树莓派3控制蜂鸣器_树莓派用蜂鸣器实现整点报时
- 弱水三千,只取一瓢,当图像搜索遇见PostgreSQL(Haar wavelet)
- html漂浮图片代码关闭,带关闭功能的漂浮图片代码
热门文章
- Spring Cloud Alibba教程:Sentinel的使用
- 基于OpenCV的图像梯度与边缘检测!
- 博士因高校“虚假招聘”待遇不符辞职,却反被索要138万违约金,这是什么操作?...
- Model Search,了解一下?
- 为给微芯片拍照,IBM小哥用乐高拼了个电动显微镜,搭载树莓派,360度无死角拍摄...
- 百度“已死”,百度“真香”
- 设计模式篇之——命令设计模式
- 使用Pyecharts制作Bar3D用法详解
- 详解:Camera-IMU内外参标定原理
- 使用Python+OpenCV实现图像数据采集