Hbase读写流程(面试必背)

1.HBase的集群架构

在这里插入图片描述

2.什么是Store模块 ?什么是Region?

在这里插入图片描述

3.Hbase读流程

读取数据的流程:
1) 客户端发起读取数据的请求, 首先会先连接zookeeper;
2) 从zookeeper中到 Hbase的meta 表在哪个RegionServer节点上;
说明: hbase:meta 是HBase专门用于存储元数据的表, 此表只会有一个Region,也就是说这个Region只能被一个RegionServer所管理
3) 连接Meta表对应的RegionServer节点, 从这个表中获取到 读取的表有哪些Region, 以及这些Region对应被哪些RegionServer所管理(存在哪个节点上),从而确认要操作的RegionServer
注意:
如果执行Scan, 返回这个表所有Region对应的RegionServer的地址
如果执行get, 返回查询rowkey对应Region所在RegionServer的地址
4) 连接对应的RegionServer, 从RegionServer中对应Region中读取数据即可
读取顺序: 先内存 —> blockCache(块缓存) ----> storeFile —> 大HFile

4.Hbase写流程

写入数据流程:
---------------先客户端写入流程------------------------
(1)由客户端发起写入数据的请求, 首先先连接zookeeper
(2)从zookeeper中到 Hbase的meta 表所在RegionServer节点
(3)连接对应RegionServer节点, 从Meta表获取要写入数据的表哪些Region, 以及每个Region所在RegionServer节点的地址(Region所在的所有节点地址), 然后根据Region的起始Rowkey结束rowkey, 获取要写入数据的Region对应RegionServer的地址(Region写入数据对应范围的节点地址)
大白话: 查询写入到那个Region, 这个Region在哪个RegionServer节点上
(4) 连接对应RegionServer, 开始进行数据写入操作, 写入时, 先将数据写入到这个RegionServer的HLog, 然后将数据写入到对应的Store模块下的MemStore中(可能写入多个MemStore), 当这两个位置都写入成功的时候(HLog和MemStore都写入成功), 客户端认为数据写入完成了

---------------再服务端写入流程------------------------

异步操作: 上面客户端可能执行了多次后, 后续才会干活

  1. 随着客户端不断的写入操作, MemStore中数据会越来越多, 当MemStore的数据达到一定的阈值**(128M/1h)后, 就会启动flush刷新线程**, 将内存中数据"最终"刷新到HDFS上, 形成一个StoreFile文件

  2. 随着不断的进行Flush的刷新, 在HDFS上StoreFile文件会越来越多, 当StoreFlie文件达到一定的阈值(3个及以上)后,就会启动compact合并压缩机制, 将多个StoreFlie"最终"合并为一个大的HFile

  3. 随着不断的合并, HFile文件会越来越大, 当这个大的HFile文件达到一定的阈值("最终"10GB)后,就会触发Split机制, 将大的HFile进行一分为二的操作, 形成两个新的大HFile文件, 此时Region也会进行一分为二,形成两个新的Region, 一个Region管理一个新的大Hfile, 旧的大HFile和对应Region就会被下线

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别这么骄傲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值