应用程序首先通过Zookeeper获取主HMaster的地址,然后输入Key值来确定该Key所在的具体HRegionServer地址,并向该HRegionServer请求相应的Region,从而获取所需的数据。
在读取数据时,系统会优先从BlockCache中查找,若未找到,则继续在MemStore和StoreFile中进行搜索。
在进行数据写入时,首先需要定位到正确的HRegion。数据写入过程中,会先将更新记录写入WAL HLog,随后再写入MemStore。当这两个步骤完成后,系统会发送确认信号给客户端。
接着,系统会判断MemStore的大小是否达到了预设的阈值,如果达到,则需要将数据刷新为StoreFile。
HRegion中的数据最终会被存储为HFile格式的文件,这些文件利用HDFS分布式文件系统进行管理,确保在整个集群中具备高可用性。
在执行HBase的写操作,如Put和Update时,实际上是新增了一条数据。即使在执行Delete操作时,同样会新增一条数据,但这条数据的值为空,类型为DELETE,称为“墓碑标记”(Tombstone)。实际的数据删除操作则在compact操作期间进行。