本文章主要描述Region Server宕机后, 集群的处理过程,以及测试结果.
Region Server宕机后,做了一下几步,
1.ZK发现并确认RS宕机, 在RS列表中删除宕机的节点,
2.Split日志文件HLog,将每一个日志文件分配给对应的Region
3.将Region分配给其他活着的Region Server
4.Region Server根据日志文件,RS发现HLog可用,将log持久化到HFile中
在HBase0.92版本以后,为了提高RS的性能,RS接受到log文件后,会新启动一个线程,单独处理Hlog文件,而不影响RS上原有的Region正常工作.
在这里由一点疑问,一张表对应多个Region,每个Region运行在不同的RegionServer上,那么当其中一个Region所在的RS宕机后,是否影响其他Region工作呢,对整个集群是否由影响,在这里,做了如下的测试.
在Hbase上建立一个user表, create 'user','info',很简单的表,默认user只有一个Region,为它指定5个Region,分别运行在RS1,2,3,4,5上.
STARTKEY => '', ENDKEY => '-2016043150' rs1
STARTKEY => '-2016043150', ENDKEY => '-303030913' rs2
STARTKEY => '-303030913', ENDKEY => '-554557441' rs3
STARTKEY => '-554557441', ENDKEY => '210115905