讲一下 HBase 的写数据的流程?

Johngo学长 HBase 54
  1. Client先访问zookeeper,从 meta 表获取相应region信息,然后从meta表获取相应region信息;
  2. 根据namespace、表名和rowkey根据meta表的数据找到写入数据对应的region信息;
  3. 找到对应的regionserver把数据先写到WAL中,即HLog,然后写到MemStore上;
  4. MemStore达到设置的阈值后则把数据刷成一个磁盘上的StoreFile文件;
  5. 当多个StoreFile文件达到一定的大小后(这个可以称之为小合并,合并数据可以进行设置,必须大于等于2,小于10——hbase.hstore.compaction.max和hbase.hstore.compactionThreshold,默认为10和3),会触发 Compact合并操作,合并为一个StoreFile,(这里同时进行版本的合并和数据删除。);
  6. 当Storefile大小超过一定阈值后,会把当前的Region分割为两个(Split)【可称之为大合并,该阈值通过 hbase.hregion.max.filesize设置,默认为10G】,并由Hmaster分配到相应的HRegionServer,实现负载均衡。

回复

我来回复
  • 暂无回复内容

免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部