【问题标题】:How to calculate the Memstores, WAL & Block Cache in HBASE?如何计算 HBASE 中的 Memstores、WAL 和 Block Cache?
【发布时间】:2020-12-11 18:16:27
【问题描述】:

假设在 HBase 中我们有 3 个 Region 服务器、3 个 Region 和 2 个列族。可能有多少 Memstore、Block Cache 和 WAL

【问题讨论】:

    标签: hbase


    【解决方案1】:

    内存存储计数

    region 的每个列族都有 1 个 memstore。 3 个区域 * 2 个 col 系列 = 6 个内存存储。但是在in-memory compactions 的情况下,事情变得更加复杂。请参考官方文档。

    块缓存大小

    Block Cache 的大小很难预测,因为它取决于太多的参数。块缓存包含以下条目:

    1. 扫描/获取请求访问的 HFile 块(包含您的数据)(如果请求中未明确禁用)。默认大小为 64K。
    2. 目录表块(例如 hbase:meta)
    3. HFiles 索引块(hfile.index.block.max.size 定义的索引块的默认大小)
    4. HFile 的布隆过滤器块(布隆过滤器块的默认大小定义为 io.storefile.bloom.block.size) 块缓存也有几个不同的实现,它有自己的配置参数。调音旋钮请参考官方文档。 有关 HFile 块类型的更多信息可以找到here

    WAL

    每个 RegionServer 有 1 个活动的 WAL 和 N 个滚动的 WAL 文件。 WAL 滚动发生:

    • 定期
    • 当日志文件达到最大大小时
    • 当前 WAL 文件的 fsync 很慢
    • WAL 文件在 HDFS 上的副本数较低 如果此文件中定义的所有写操作都保存到 HFiles 中,则可以删除滚动的 WAL 文件。这种清理基于跟踪的每个区域列族的seqnumseqnum 的描述可以找到here)。

    【讨论】:

      猜你喜欢
      • 2023-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-21
      • 2023-04-10
      • 1970-01-01
      • 2016-05-03
      相关资源
      最近更新 更多