【问题标题】:HBase:Difference between Minor and Major CompactionHBase:Minor 和 Major Compaction 的区别
【发布时间】:2020-12-18 09:17:24
【问题描述】:

我无法理解为什么主要压缩与次要压缩不同。据我所知,minor compaction 是将一些 HFile 合并为一个或几个 HFile。

而且我认为主要压缩除了处理已删除的行之外几乎做同样的事情..

所以,我不知道为什么主要压缩会带回 HBase 的数据局部性(当它在 HDFS 上使用时)。

换句话说,为什么minor compaction不能恢复数据局部性,尽管对我来说,minor compaction和major compaction都只是将HFiles合并为少量HFiles。

为什么只有主要压缩才能显着提高读取性能?我认为较小的压缩也有助于提高读取性能。

请帮我理解。

提前谢谢你。

【问题讨论】:

    标签: hdfs hbase


    【解决方案1】:

    在了解主要和次要紧缩之间的区别之前,您需要从紧缩的角度了解影响性能的因素:

    1. 文件数量:文件过多会对性能产生负面影响,因为文件元数据和与每个文件相关的寻道成本。
    2. 数据量:数据过多意味着性能下降。现在,这些数据可能有用或无用,即主要由 HBase 所称的删除标记​​em>组成。 HBase 使用这些 删除标记​​em> 将可能包含在较旧 Hfile 中的 Cell/KeyValue 标记为已删除。
    3. 数据本地化:由于 HBase regionserver 是无状态进程,并且数据实际上存储在 HDFS 中,因此 region server 服务的数据可能在不同的物理机器上。同一台机器上有多少 regionserver 的数据计入数据局部性。在写入数据时,regionserver 会尝试将数据的主副本写入本地 HDFS 数据节点。因此,集群的数据局部性为 100% 或 1。但是,由于 regionserver 重新启动或 region rebalancing 或 region 分裂,这些 region 可以移动到与它们最初启动时不同的机器上,从而降低了局部性。更高的局部性意味着更好的 IO 性能,因为 HBase 然后可以使用称为短路读取的东西。

    您可以想象,由于重新启动和重新平衡,旧数据局部性较差的可能性更高。

    现在,了解次要压缩和主要压缩之间区别的简单方法如下:

    次要压缩:这种压缩类型一直在运行,主要关注正在写入的新文件。由于是新文件,这些文件很小,并且可以为旧文件中的数据添加删除标记​​em>。由于此压缩仅查看相对较新的文件,因此不会触及/删除旧文件中的数据。这意味着在不同的压缩类型出现并删除旧数据之前,这种压缩类型甚至无法从较新的文件中删除 删除标记​​em>,否则那些较旧的已删除 KeyValues 将再次可见。

    这导致两个结果:

    1. 由于所接触的文件相对较新且较小,因此影响数据局部性的能力非常低。实际上,在写入操作期间,区域服务器无论如何都会尝试将数据的主副本写入本地 HDFS 数据节点。因此,次要压缩通常不会为数据局部性增加太多价值。

    2. 由于删除标记没有被删除,一些性能仍然存在。也就是说,较小的压缩对于 HBase 读取性能至关重要,因为它们可以控制总文件数,如果不加以检查,这可能是一个很大的性能瓶颈,尤其是在旋转磁盘上。

    Major Compaction:这种类型的压缩很少运行(默认每周一次),并专注于完全清理存储(一个区域内的一个列族)。主要压缩的输出是一个存储的文件。由于主要压缩会重写 store 中的所有数据,因此它可以删除 delete 标记 和那些标记为已删除的旧 KeyValues em>删除标记​​em>。

    这也导致了两个结果:

    1. 由于删除标记​​em>和删除的数据被物理删除,文件大小显着减小,尤其是在接收大量删除操作的系统中。这可以显着提高删除繁重环境中的性能。

    2. 由于 store 的所有数据都被重写,因此有机会恢复旧(和更大)文件的数据本地性,以及由于重启和重新平衡而可能发生漂移的地方,如前所述.这会在读取期间带来更好的 IO 性能。

    有关 HBase 压缩的更多信息:HBase Book

    【讨论】:

      猜你喜欢
      • 2021-08-01
      • 2019-02-26
      • 2022-11-27
      • 1970-01-01
      • 2012-09-15
      • 2015-06-27
      • 2013-08-07
      • 2011-10-20
      • 2020-01-23
      相关资源
      最近更新 更多