大数据面试题:HBase读写数据流程

面试题来源:

《大数据面试题 V4.0》

大数据面试题V3.0,523道题,679页,46w字

参考答案:

1、写数据流程

1)Client先访问zookeeper,获取hbase:meta表位于哪个Region Server。

2)访问对应的Region Server,获取hbase:meta表,根据读请求的namespace:table/rowkey,查询出目标数据位于哪个Region Server中的哪个Region中。并将该table的region信息以及meta表的位置信息缓存在客户端的meta cache,方便下次访问。

3)与目标Region Server进行通讯;

4)将数据顺序写入(追加)到WAL;

5)将数据写入对应的MemStore,数据会在MemStore进行排序;

6)向客户端发送ack;

7)等达到MemStore的刷写时机后,将数据刷写到HFile。

2、读数据流程

1)Client先访问zookeeper,获取hbase:meta表位于哪个Region Server。

2)访问对应的Region Server,获取hbase:meta表,根据读请求的namespace:table/rowkey,查询出目标数据位于哪个Region Server中的哪个Region中。并将该table的region信息以及meta表的位置信息缓存在客户端的meta cache,方便下次访问。

3)与目标Region Server进行通讯;

4)分别在Block Cache(读缓存),MemStore和Store File(HFile)中查询目标数据,并将查到的所有数据进行合并。此处所有数据是指同一条数据的不同版本(time stamp)或者不同的类型(Put/Delete)。

5)将查询到的数据块(Block,HFile数据存储单元,默认大小为64KB)缓存到Block Cache。

6)将合并后的最终结果返回给客户端。

相关推荐
天天扭码33 分钟前
很全面的前端面试题——计算机网络篇(上)
前端·网络协议·面试
小戈爱学习36 分钟前
CDP集群中通过Hive外部表迁移HBase数据的操作记录
hive·hadoop·hbase
TDengine (老段)1 小时前
TDengine IDMP 背后的技术三问:目录、标准与情景
大数据·数据库·物联网·算法·时序数据库·iot·tdengine
用手手打人1 小时前
SpringCloud -- elasticsearch(二)
大数据·elasticsearch·搜索引擎
ID_180079054732 小时前
python采集拍立淘按图搜索API接口,json数据参考
大数据·数据库·python·json
凝新科技2 小时前
Adobe Analytics 数据分析平台|全渠道客户行为分析与体验优化
大数据·adobe·数据分析
拾光拾趣录2 小时前
🔥9道题穿透JS底层:堆栈/异步/执行栈连环问,第5题99%人翻车?📉
前端·面试
PineappleCode3 小时前
用 “私房钱” 类比闭包:为啥它能访问外部变量?
前端·面试·js
ZzMemory3 小时前
JavaScript 类数组:披着数组外衣的 “伪装者”?
前端·javascript·面试
泽虞3 小时前
C语言深度语法掌握笔记:语法陷阱、内存管理、指针系统
c语言·笔记·面试