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

hbase 读写流程

hbase 读写流程

大合并 (major ) 和小合并 (minor ) :

minor 合并负责重写最后生成的几个文件到一个更大的文件中。文件数量是由hbase.hstore.compaction.min 属性设置的。它的默认值为 3,并且最小值需要大于或等于 2。过大的数字将会延迟 minor 合并的执行,同时也会增加执行时消耗的资源及执行的时间 。
major 合并:它们把所有文件压缩成一个单独的文件。默认情况下,major 合并间隔是7 天,看情况随机的加上或减去 4.8 小时。如果要删除数据,不会直接修改 storefile,因为 hadoop 不允许修改。hbase 会将删除的数据标志为已删除(给该数据添加墓碑标记),如果添加了墓碑标记,查询不到该数据。在大合并的时候,将标记了墓碑标记的数据真正删除。

写流程

当用户向 HRegionServer 发起 HTable.put(Put)请求时,其会将请求交给对应的
HRegion 实例来处理。

第一步是要决定数据是否需要写到由 HLog 类实现的预写日志中。WAL 是标准的Hadoop SequenceFile,并且存储了 HLogKey 实例。这些键包括序列号和实际数据,所以在服务器崩溃时可以回滚还没有持久化的数据。
一旦数据被写入到 WAL 中,数据就会被放到 MemStore 中。同时还会检查 MemStore是否已经满了,如果满了,就会被请求刷写到磁盘中去。刷写请求由另外一个HRegionServer 的线程处理,它会把数据写成 HDFS 中的一个新 HFile。同时也会保存最后写入的序号,系统就知道哪些数据现在被持久化了。

读流程


  1. Client 访问 Zookeeper,查找 hbase:meta 表位置,看他在哪个 regionserverR 上。
  2. Client 访问 regionserverR 上 hbase:meta 表中的数据,查找要操作 rowkey 的所在
    表对应 region 所在的 regionserverX
  3. Client 读取 regionserverX 上的 region 数据
    定位到真正的数据所在的 region 的时候,按照下述步骤进行操作:
    先查找 memstore,如果 memstore 没有,查找 blockcache;如果 blockcache
    没有,则查找 storefile 的数据,同时将数据缓存与 blockcache 中。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/278994.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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