栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

HBase的读写流程

HBase的读写流程

Hbase的读流程
  • 客户端拿到一个RowKey(首先得知道这rowKey存在那个region中)
  • 根据zk查询获取hbase:meta表,这个表中存放了region的信息,根据namespace,表名,就可以根据rowkey的startkey,endkey返回region的信息
  • 还需要查询region是在哪个HRegionServer(因为我们是region会存在什么地方的)
  • 读取Store
    • 优先读取写缓存
      -读取BlockCache(LRUBlockCache、BucketBlockCache)
    • 再读取HFile
Hbase的写流程
  1. 首先要将数据写入到MemStore中
  2. MemStore大小到达128M、MemStore数据已经超出一小时,会自动Flush到HDFS中的HFile
  3. compaction合并
    1. 一阶段合并:如果每一个MemStore写满后,都会一溢写到HFile中,这样会有很多的HFile,对将来的读取不利。所以需要将这些小的HFile合并成大一点的HFile
    2. 二阶段合并:将所有的HFile合并成一个HFile
      写数据的两阶段合并
      Hbase 2.0+ In memory compaction(总共的流程为三个阶段的合并)
  • In memory comapaction主要是延迟flush到磁盘的时间,尽量优先写入到内存中,有一系列的合并优化操作
  • 数据都是以segment(段)来保存的,首先数据会写到active segment,active segment写完后会将segment合并到piepline里面,合并pipeline的之后会有一定的策略
    • basic:只管存,合并,不会优化重复数据
    • eager:会将一些重复数据进行优化
    • adaptive:会根据重复度来进行优化合并
  • pipeline如果到达一定的阈值,就开始Flush
  • in -memory合并
    • In memory comapaction主要是延迟flush到磁盘的时间,尽量优先写入到内存中,有一系列的合并优化操作
  • 数据都是以segment(段)来保存的,首先数据会写到active segment,active segment写完后会将segment合并到piepline里面,合并pipeline的之后会有一定的策略

Action溢写多个Segment,多个Segment之间进行合并,然后选取最新的segment写入flush (目的数去除掉同一批重复的,多余的操作)

in -memory合并的三种策略

  • basic:只管存,合并,不会优化重复数据
  • eager:会将一些重复数据进行优化
  • adaptive:会根据重复度来进行优化合并
  • pipeline如果到达一定的阈值,就开始Flush

StoreFile合并
> 这是对已经存在hdfs上的文件进行的
  • minorcompaction
    • 小范围合并3-8个,轻量级
    • 合并但不删除原文件
  • major compaction
    • 大范围的(全部),重量级
    • 合并成一个,并且删除原文件.
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/582016.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号