提高HBase cleaner清理速度的方法

文章探讨了HBase中当表region数量庞大时,cleaner清理速度慢的问题。优化方法包括调整cleaner配置、隔离大表线程池、使用优先级队列和定制化cleaner策略,发现瓶颈主要在客户端和SnapshotHFileCleaner。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前hbase cleaner是整集群全部分组的大轮询清理方式。

当表region数量过多,如上万,整体compact移入archive的文件速度>cleaner扫描目录和删除文件的速度时,archive内的文件会积压。

优化方法对比

  1. 修改cleaner配置,优化线程池配置,提高扫描目录的线程数量;(实验证明不是线程数越多效率越高,一定程度后增加线程数量反而会降低扫描目录的效率。)

  2. 隔离大表的cleaner线程池,避免大轮询的扫描删除等待:

    社区的大轮询删除逻辑不适用与表之间写入量相差较大的场景。

  3. cleaner线程池的队列使用优先级队列:保证大文件/目录可以优先处理;

  4. batch调用listFileStatus接口,增加访问NN的效率;(实验证明batch操作不能提高客户端扫描的效率。)

  5. 按路径定制化cleaner,根据目录配置cleaner相关的配置。(实验证明cleaner瓶颈还是在客户端,且在SnapshotHFileCleaner中。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值