hbck源码系列(三)--表的完整性检查和修复< LoadData>

一.数据加载方法

      检查表的完整性是离线的,也就是检查表在HDFS的完整性,所以,首先hbck会从HDFS加载数据,源码的主要方法:

  1. loadHdfsRegionDirs:加载HDFS的区域的目录,封装到HBCKinfo的HdfsEntry部分属性。
  2. loadHdfsRegionInfos:加载和打开HDFS的regioninfo文件,获取regioninfo信息,更新hbckinfo对用的hdfentry的regioninfo信息。

    hbck源码系列(三)--表的完整性检查和修复< LoadData>

二,数据加载源码分析 

      1.loadHdfsRegionDirs

  1. 根据HDFS的表的路径和其下的区域的路径,更新更新内存regioninfomap,如果hbckinfo信息之前在元和RS存在更新其HDFS信息,不存在新建。(此种情况是只含HDFS的信息)。
  2. 加载HDFS的区域的目录,封装到HBCKinfo的HdfsEntry部分属性。

hbck源码系列(三)--表的完整性检查和修复< LoadData>

 

hbck源码系列(三)--表的完整性检查和修复< LoadData>

hbck源码系列(三)--表的完整性检查和修复< LoadData>

hbck源码系列(三)--表的完整性检查和修复< LoadData>

2.loadHdfsRegionInfos

  1. 加载和打开HDFS的regioninfo文件,获取regioninfo信息,更新hbckinfo对用的hdfentry的regioninfo信息(这里指对HDFS存在区域路径的情况下,因为信息之来自于HDFS的路径,加载的regioninfomap)。
  2. 根据HDFS的表路径(该表下含有区域路径),HDFS的表路径(该表下不含有区域路径)更新tablesInfo的信息,其中包括根据HDFS的table.desc更新表的描述信息。
  3. 根据hbckinfo信息,填充SC集合(每一个表一个该集合),为了计算切分点。

hbck源码系列(三)--表的完整性检查和修复< LoadData>

hbck源码系列(三)--表的完整性检查和修复< LoadData>

 

hbck源码系列(三)--表的完整性检查和修复< LoadData>