你好,游客 登录
背景:
阅读新闻

Hbase split detail

[日期:2016-06-07] 来源:MoreFreeze  作者: [字体: ]

  split的具体过程

  切分的操作是由各个region server自己决定,但它们要通知到Master来及时地更新META信息。 以下基本翻译自 这里 。

Hbase

  region server决定开始split,在zk上创建新节点 /hbase/region-in-transition/parent-region-name:SPLITTING

  Master通过监测这个节点得知父region(这时称要split的region为父, 分出来的新的region为女儿region)要split了

  region server在HDFS目录下创建一个子目录 .splits ,如 .../parent-region-name/.splits

  region server关闭父region,这时所有到父region的请求都会返回NotServingRegionException 的异常, 需要客户端自己进行重试

  在刚才创建的 .splits 目录下,创建两个女儿目录的引用,如 .../parent-region-name/.splits/daughterA 和 .../parent-region-name/.splits/daughterB , 其中文件都引用自父region,引用文件标记出开始和结束位置

  region server在HDFS中创建实际的女儿region目录,如 .../daughterA/ ,再将刚才创建的 引用文件移到这个目录中

  region server发送一个PUT请求给META信息表,加入女儿region信息,并将父region下线。 注意这时client扫描META表并不能发现新的region,因为还没上线。 如果这个RPC请求失败了,那么Master和下一个要执行打开region的region server一起清理掉 这些脏数据

  region server允许女儿region的写入

  region server将女儿信息在META中上线,客户端这时可以发现新的region。注意将缓存的 region信息重新更新

  将zk中的节点,改为 /hbase/region-in-transition/parent-region-name:SPLIT ,这样 Master就知道split完成

  现在,HDFS中存的仍然是女儿region到父region的引用,要等compaction操作去将引用 的数据重写到新文件,当新文件都重写完后,才会完全删掉父region

  且听下回

 

  下回将会详细介绍辛勤劳动的compaction操作。





收藏 推荐 打印 | 录入:elainebo | 阅读:
相关新闻       HBase 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款