Hbase 参数配置及优化
From:http://www.open-open.com/lib/view/open1346684547787.html
接触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方式等等,需要太多的知识面,很多东西,我也在学习之中,先写这么多。
先引荐别人的,其后将不断更新。
Hbase 参数配置及优化的更多相关文章
- hbase参数配置优化
因官方Book Performance Tuning部分章节没有按配置项进行索引,不能达到快速查阅的效果.所以我以配置项驱动,重新整理了原文,并补充一些自己的理解,如有错误,欢迎指正. 配置优化 zo ...
- HBase参数配置及说明
版本:0.94-cdh4.2.1 hbase-site.xml配置 hbase.tmp.dir 本地文件系统tmp目录,一般配置成local模式的设置一下,但是最好还是需要设置一下,因为很多文件都会默 ...
- HBase参数配置及说明(转)
版本:0.94-cdh4.2.1 hbase-site.xml配置 hbase.tmp.dir 本地文件系统tmp目录,一般配置成local模式的设置一下,但是最好还是需要设置一下,因为很多文件都会默 ...
- hbase参数配置和说明
版本:0.94-cdh4.2.1 hbase-site.xml配置 hbase.tmp.dir 本地文件系统tmp目录,一般配置成local模式的设置一下,但是最好还是需要设置一下,因为很多文件都会默 ...
- java架构之路-(JVM优化与原理)JVM之G1回收器和常见参数配置
过去的几天里,我把JVM内部的垃圾回收算法和垃圾回收器.还剩下最后一个G1回收器没有说,我们今天数一下G1回收器和常见的参数配置. G1回收器 G1 (Garbage-First)是一款面向服务器的垃 ...
- HBase内存配置及JVM优化
前言 本文从HBase的内存布局说起,先充分了解HBase的内存区的使用与分配,随后给出了不同业务场景下的读写内存分配规划,并指导如何分析业务的内存使用情况,以及在使用当中写内存Memstore及读内 ...
- 数据库相关文章转载(1) MySQL性能优化之参数配置
1.目的: 通过根据服务器目前状况,修改Mysql的系统参数,达到合理利用服务器现有资源,最大合理的提高MySQL性能. 2.服务器参数: 32G内存.4个CPU,每个CPU 8核. 3.MySQL目 ...
- MySQL性能优化之参数配置
1.目的: 通过根据服务器目前状况,修改Mysql的系统参数,达到合理利用服务器现有资源,最大合理的提高MySQL性能. 2.服务器参数: 32G内存.4个CPU,每个CPU 8核. 3.MySQL目 ...
- [效果不错] nginx 高并发参数配置及linux内核参数优化,完整的内核优化设置。PHP-FPM高负载解决办法。
背景:对vps小资源的实践中对,https://justwinit.cn/post/7536/ 的再优化,再实践,再优化,特别是Nginx,PHP,内核: 零)Nginx: error_log /da ...
随机推荐
- 搭建 Spring 开发环境
把以下 jar 包加入到工程的 classpath 下: Spring 的配置文件: 一个典型的 Spring 项目需要创建一个或多个 Bean 配置文件, 这些配置文件用于在 Spring IOC ...
- C-RAN
无线接入网(RAN)是移动运营商赖以生存的重要资产.传统的无线接入网具有以下特点: 1. 每一个基站连接若干个固定数量的扇区天线,并覆盖小片区域,每个基站只能处理本小区收发信号: 2. 系统的容量是干 ...
- docker定义数据卷及数据卷的备份恢复
前言:生产环境中使用docker时,往往需要对数据进行持久化(只有把容器导出为镜像,才能够保存写的数据,否则容器删除或者停止,所有数据都会没有),或者需要在多个容器之间进行数据共享,这必然涉及容器的数 ...
- python学习笔记(threading接口性能压力测试)
又是新的一周 延续上周的进度 关于多进程的学习 今天实践下 初步设计的接口性能压力测试代码如下: #!/usr/bin/env python # -*- coding: utf_8 -*- impor ...
- Robot Framework(一)
一. 定义 Robot Framework是一款python编写的功能自动化测试框架,具有良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行 二. Robot ...
- 方便处理hosts的批处理脚本:hosts助手.bat
hosts助手.bat @echo off pushd "%~dp0" set sp0=------------------ set sp1=hosts助手 set hostsfi ...
- 五十 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现我的搜索以及热门搜索
第三百七十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现我的搜索以及热门 我的搜素简单实现原理我们可以用js来实现,首先用js获取到 ...
- Centos6.8 JDK配置
记录一下在这个服务器配置的过程 ssh root@IP Password --------------------------------------------------------------- ...
- Visual Studio 2008常见问题
1.asp.net在什么软件上运行?学习asp往往需要测试asp程序,电脑不能直接测试,需要装IIS才能运行,但装IIS要么需要安装盘,要么需要安装包,而且设置也很复搜索杂.这里给大学推荐两个替代II ...
- what is out of band mode.
Most of the steps are the same, except instead of sending an URL as the oauth_callback to request_to ...