hbase配置参考

hbase内存配置
修改/home/q/hbase/hbase-0.98.1-cdh5.1.0/conf/hbase-env.sh

守护进程8G

1
export HBASE_HEAPSIZE=8192

Hmaster 8G

1
2
3
4
5
export HBASE_OPTS="Xms8g -Xmx8g -XX:NewSize=5g -XX:PermSize=256m -server -XX:SurvivorRatio=3 -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=75 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+PrintClassHistogram -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xloggc:/home/q/hbase/hbase-0.98.1-cdh5.1.0/logs/gc$(hostname)-hbase.log -XX:ParallelGCThreads=10"

export HBASE_MASTER_OPTS="-Xms8g -Xmx8g -XX:NewSize=5g -XX:PermSize=256m -server -XX:SurvivorRatio=3 -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=75 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+PrintClassHistogram -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xloggc:/home/q/hbase/hbase-0.98.1-cdh5.1.0/logs/gc-$(hostname)-hbase.log -XX:ParallelGCThreads=10"
HRegion 64GB
export HBASE_REGIONSERVER_OPTS="-Xms64g -Xmx64g -XX:NewSize=50g -XX:PermSize=256m -server -XX:SurvivorRatio=3 -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=75 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+PrintClassHistogram -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xloggc:/home/q/hbase/hbase-0.98.1-cdh5.1.0/logs/gc-$(hostname)-hbase.log -XX:ParallelGCThreads=10"

hbase-site.xml
修改/home/q/hbase/hbase-0.98.1-cdh5.1.0/conf/hbase-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
zookeeper.session.timeout=60000

hbase.regionserver.handler.count=150

hbase.regionserver.global.memstore.upperLimit=0.4

hbase.regionserver.global.memstore.lowerLimit=0.38

hfile.block.cache.size=0.2

hbase.hregion.memstore.block.multiplier=4

hbase.hstore.blockingStoreFiles=30

hbase.hregion.majorcompaction=0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
zookeeper.session.timeout

这个参数的意义是regionserver在zookeeper的会话过期时间,默认是9000ms,如果regionserver 在zookeeper.session.timeout这个配置的时间没有去连zookeeper的话,zookeeper会将该 regionserver在zookeeper摘除,不让该regionserver向提供服务

hbase.regionserver.handler.count

regionserver的工作线程数量,默认是30,官方默认值太小,通常都调到100~200之间,提高regionserver性能

hbase.regionserver.global.memstore.lowerLimit

指定了何时对MemStores进行强制刷盘,系统会一直进行写盘直到MemStore所占用的总内存大小低于该属性的值为止

hbase.regionserver.global.memstore.upperLimit

该属性控制了一台区域服务器中所有MemStore的总大小的最大值,超过该值后,新的更新就会被阻塞,并且强制进行刷盘

hfile.block.cache.size

regionserver cache的大小,默认是0.2,是整个堆内存的多少比例作为regionserver的cache,适当调大该值会提升查询性能

hbase.hregion.majorcompaction

表示majorcompaction的周期,默认是1 天,majorcompaction与普通的compaction的区别是majorcompaction会清除过期的历史版本数据,同时合并 storefile,而普通的compaction只做合并,通常都是majorcompaction,调为0,然后手工定期的去执行一下 majorcompaction