Apache HBase 的可预测低延迟

主要观点:Apache HBase 是开源、强一致性的分布式数据库,可跨可扩展机器集群存储面向记录的数据,其表可分组为命名空间,表被分割为区域。区域分布在集群中,通过 RegionServer 为客户端提供服务,能有效分片和分布写与查询负载。HBase 能在大规模下提供较低的 p95/p99 写延迟,但读延迟会因读取位置而异,可利用 Hadoop 分布式文件系统的多层存储来优化数据放置和成本。
关键信息

  • HBase 数据存储形式:以表存储,表可分组为命名空间,表被分割为区域,区域由 RegionServer 管理。
  • 多层存储类型及特点:包括 RAM_DISK(最快,用于极热数据)、SSD(高吞吐量低延迟,适用于热和温数据)、DISK(传统常见,用于温数据)、ARCHIVE(最慢最经济,用于冷数据)、PROVIDED(外部存储映射到 HDFS)、NVDIMM(持久内存技术)。
  • HFiles 存储及读取路径:BlockCache(读缓存,先查内存)、MemStore(写缓存,先查新数据)、HFiles(从底层 HDFS 文件系统读取数据),SSD 能降低读取延迟。
  • 不同方式设置 HFiles 在 SSD 上:通过 Phoenix CREATE TABLE 或 ALTER TABLE DDLs、HBase Admin DDL APIs createTable 或 modifyTable、使用 hdfs setStoragePolicy 直接设置表目录的存储策略。
    重要细节
  • Region 非重叠,单个行键在任何时候都属于一个区域,与 META 表一起形成 B 树用于定位行。
  • 在 HDFS 中配置不同存储类型需在hdfs-site中设置dfs.datanode.data.dir属性。
  • HDD 和 SSD 的成本差异显著,HBase 应仅将用于延迟敏感表的 HFiles 存储在 SSD 上,其余在 HDD 上。
阅读 14
0 条评论