HBase多次加载-ROOT-和META的bug

执行以下case可以见到root或meta被加载两次:
  • 1 kill掉root和meta表所在的rs
  • 2 start该台rs
  • 3 立即再次kill掉这台rs
  • 4 立即再次start该台rs

    原因:
    当ROOT表和META表所在的server如果挂掉了,不管是重启这台rs还是等待它自然超时,master都会触发ServerShutdownHandler。此时如果这台server再次挂掉,master将再次触发ServerShutdownHandler。而ServerShutdownHandler中会加载所有的region,其中root和meta可能被加载两次(其它region不会重复加载,因为是通过RIT管理的)
    解决办法是在ServerShutdownHandler中对root和meta在加载之前做一次检测,看是否己经被加载。可参见HBASE-3914及HBASE-4590
原文地址:https://www.cnblogs.com/cl1024cl/p/6205193.html