黑马程序员技术交流社区

标题: 【广州校区】【原创】HBase架构原理以及刷写流程 [打印本页]

作者: 帅气de路人甲    时间: 2020-5-28 09:43
标题: 【广州校区】【原创】HBase架构原理以及刷写流程
1、 HBase架构原理组成概述
1)StoreFile
        保存实际数据的物理文件,StoreFile以HFile的形式存储在HDFS上
        每个Store会有一个或多个StoreFile,数据在每个StoreFile中都是有序的

2)MemStore
        写缓存,由于HFile中的数据要求是有序的,所以数据是先存储在MemStore中,
        排好序后,等到达刷写时机才会刷写到HFile,每次刷写都会形成一个新的HFile

3)WAL
        由于数据要经MemStore排序后才能刷写到HFile,但把数据保存在内存中会有很高的概率导致数据丢失,
        为了解决这个问题,数据会先写在一个叫做Write-Ahead logfile的文件中,然后再写入MemStore中。
        所以在系统出现故障的时候,数据可以通过这个日志文件重建。

2、 HBase的写流程介绍:
        1)Client先访问zookeeper,获取hbase:meta表位于哪个Region Server

        2)访问对应的Region Server,获取hbase:meta表,
                根据读请求的namespace:table/rowkey,查询出目标数据位于哪个Region Server中的哪个Region中

        3)与目标Region Server进行通讯

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

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

        6)向客户端发送ack

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

3、 HBase中MemStore刷写时机
        1. 当某个memstore的大小达到了hbase.hregion.memstore.flush.size(默认值128M),其所在region的所有memstore都会刷写

        2. 到达自动刷写的时间,也会触发memstore flush








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2