Region Server宕机,对整个集群的影响有哪些

来源:互联网 发布:淘宝美妆店扒皮 编辑:程序博客网 时间:2024/05/09 09:47

本文章主要描述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 => '2101159052'      rs4
 STARTKEY => '2101159052',  ENDKEY => ''                             rs5

启动两个线程thread4,thread5, 向rs4和rs5上分别插入大量数据,当数据量足够大时,停掉rs4,这时可以在控制上看到,thread5可以正常插入数据,thread4不工作,大概10秒之后,thread4重新工作,这时查看.META.表,可以看到rowkey在STARTKEY => '-554557441',   ENDKEY => '2101159052'的region已经被分配到其他的RS上.

由此可以看出,当RS宕机后,只对该RS内的Region有影响,不会对整个集群造成影响.

0 0
原创粉丝点击