hbck源码系列(三)--表的完整性检查和修复< LoadData>
一.数据加载方法
检查表的完整性是离线的,也就是检查表在HDFS的完整性,所以,首先hbck会从HDFS加载数据,源码的主要方法:
- loadHdfsRegionDirs:加载HDFS的区域的目录,封装到HBCKinfo的HdfsEntry部分属性。
- loadHdfsRegionInfos:加载和打开HDFS的regioninfo文件,获取regioninfo信息,更新hbckinfo对用的hdfentry的regioninfo信息。
二,数据加载源码分析
1.loadHdfsRegionDirs
- 根据HDFS的表的路径和其下的区域的路径,更新更新内存regioninfomap,如果hbckinfo信息之前在元和RS存在更新其HDFS信息,不存在新建。(此种情况是只含HDFS的信息)。
- 加载HDFS的区域的目录,封装到HBCKinfo的HdfsEntry部分属性。
2.loadHdfsRegionInfos
- 加载和打开HDFS的regioninfo文件,获取regioninfo信息,更新hbckinfo对用的hdfentry的regioninfo信息(这里指对HDFS存在区域路径的情况下,因为信息之来自于HDFS的路径,加载的regioninfomap)。
- 根据HDFS的表路径(该表下含有区域路径),HDFS的表路径(该表下不含有区域路径)更新tablesInfo的信息,其中包括根据HDFS的table.desc更新表的描述信息。
- 根据hbckinfo信息,填充SC集合(每一个表一个该集合),为了计算切分点。