本套技术专栏是做者(秦凯新)平时工做的总结和升华,经过从真实商业环境抽取案例进行总结和分享,并给出商业应用的调优建议和集群环境容量规划等内容,请持续关注本套博客。版权声明:禁止转载,欢迎学习。QQ邮箱地址:1120746959@qq.com,若有任何学术交流,可随时联系。学习
HBase中Master的角色被弱化了,就算短期待机都不会受影响,但不能宕机时间过久,数据的读取和写入都跟他没有什么关系。那么Master主要负责什么呢?建立表,修改列族配置,Region的分割和合并操做。测试
HBase全部数据的写入操做第一步先二话不说写进WAL中,而后进一步写进MemStore中。等到MemStore的数据达到必定的数量时才刷写到最终存储的HFile中。若是在刷写的时候宕机或者断电了,干保险业的WAl就会起到数据恢复的做用。为何呢?由于WAL是放在HDFS上的,宕机是不影响WAL文件的。spa
注意数据写入到MemStore以前,是要先要写入到WAL的,因此增长MemStore并不能加快写入速度,MemStore最大的意义,在于维持数据按照rowkey的顺序排列,进而数据在MemStore中被整理成LSM树,最后再刷写到HFile上。操作系统
在一个RegionServer中,会有多个Region,而在每个Region中,会根据 Column Family生成多个Store。注意一个Store又会对应一个MemStore。而一个RegionServer对应一个全局的BlockCache。code
Minor compact :能够用于把多个HFile文件进行合并,同时能够删除TTL过时的数据,可是手动删除数据操做是不能被删除的。为何这里能够删除TTL过时的数据?由于MemStore在LSM整理时,对于TTL过时只要不写入HFile文件就算是删除了,而对于手动删除数据操做则可能位于不一样的HFile文件中,所以作不到删除。cdn
Major Compact:是把一个Store中的HFile文件合并为一个HFile文件,而不是把一个Region内的全部HFile文件,由于一个Region可能有多个Column Family对应的Store。blog
编辑hbase-env . sh,调整HBASE_HEAPSIZE大小,默认是1G,而MemStore则占用40%,也就是400M。显然是不够的。所以须要根据须要设置,好比:进程
export HBASE_HEAPSIZE =8G
复制代码
HBase JVM 最大使用内存调整:内存
(1) HBASE_MASTER_OPTS资源
export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -Xmx4g -Xms4g"
复制代码
(2) HBASE_REGIONSERVER_OPTS
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -Xms8g -Xmx8g"
复制代码
注意永远至少留10%的内存给操做系统。
举例以下:一台16GB的机器,上面有MapReduce服务,RegionServer 和 DataNode
分配策略以下:
缘由主要是Zookeeper惹的祸,在RegionServer发生FULL GC的时候,STW期间太长,被ZK标记为宕机,当RegionerServer GC完成后,苏醒了发现被标记为宕机了,这时候RegionerServer GC就自杀,防止脑裂发生。醒来再自杀,朱丽叶暂停,哈哈!
JVM提供4种GC方案
若是你的RegionServer内存大于32GB,建议使用G1GC策略,由于G1Gc会把堆内存划分为多个Region,而后对各个Region单独进行GC,这样总体的Full GC 能够被最大限度地避免。另外经过设置MaxGCPauseMillis最大暂停时间,避免时间太长RegionServer自杀。
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -Xms8g -Xmx8g -XX:+UseG1GC
-XX:+MaxGCPauseMillis=100"
复制代码
若是你的RegionServer内存小于4GB,就不须要考虑G1GC策略了,直接使用
-XX:+UseParNewGC (年轻代使用)
-XX:+UseConcMarkSweepGC(年老代使用)
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -Xms8g -Xmx8g
-XX:+UseParNewGC -XX:+UseConcMarkSweepGC "
复制代码
网上的Hbase调优资料良莠不齐,实在是不忍卒读,有些都是拼凑且版本过期的东西,我这里决定综合全部优质资源进行整合,写一份最全,最有深度,不过期的技术博客。辛苦成文,各自珍惜,谢谢!
本套技术专栏是做者(秦凯新)平时工做的总结和升华,经过从真实商业环境抽取案例进行总结和分享,并给出商业应用的调优建议和集群环境容量规划等内容,请持续关注本套博客。版权声明:禁止转载,欢迎学习。QQ邮箱地址:1120746959@qq.com,若有任何学术交流,可随时联系。
秦凯新 于深圳 20182309