如果HDFS不允许修改文件,HBase如何存储和修改数据呢?很难找到这个问题的答案,因为结果主要是针对HBase物理数据格式.但我无法找到HBase如何解决HHDFS文件的不变性问题?
HBase以索引形式将数据存储在HDFS中.过度简化的事情,HDFS文件具有按排序顺序存储的密钥,因此查找特定密钥的速度很快.HBase数据存储在RegionServers(RS)中处理.
在RS中,密钥首先被写入内存存储(称为memstore).memstore存储新密钥/更新删除.在某个阈值之后,这些键将作为新的索引文件推送到HDFS.更新由时间戳处理 - 假设最新版本是唯一有效的版本.因此,如果先前的索引文件具有相同的密钥,则将忽略它.删除与更新相同,唯一的区别是删除具有特殊类型字段,该字段具有将密钥标记为已删除的标记.
我做了一些简化:
MapFile.最新版本的HBase使用一种格式HFile,该格式具有特定于HBase的元数据和优化.我还找到了几篇优秀的相关文章,您应该阅读:
| 归档时间: |
|
| 查看次数: |
3445 次 |
| 最近记录: |