Apache Drill 1.18/1.19版本查询初始化存储插件引发阻塞问题求助
Apache Drill 1.18/1.19 存储插件初始化阻塞查询问题解决指南
问题说明
你反馈的是Apache Drill的已知原生缺陷,核心逻辑缺陷为1.18、1.19版本默认在查询规划阶段全量初始化所有已配置的存储插件,只要任意一个插件连接失败,就会导致整个查询规划流程被阻塞。
官方修复方案
该问题已在Apache Drill 1.20及以上版本正式修复,官方调整了存储插件的初始化逻辑为按需懒加载:仅当查询实际调用对应存储插件的资源时,才会触发插件实例化与连接校验,完全避免了无关故障插件阻塞全量查询的问题。
临时规避方案(适用于无法立即升级版本的场景)
- 方案1:清理无效存储插件
登录Drill Web UI的Storage管理页,直接删除连接属性变更、不再使用的无效存储插件,操作完成后无需重启集群即可立即生效。 - 方案2:调整插件重连与缓存配置
在drill-override.conf中添加如下配置,降低故障插件的连接重试频率,缩短阻塞时长:
上述配置的作用为:缓存故障插件状态5分钟,期间不会重复触发连接尝试;单插件连接失败最多重试2次,每次重试间隔1秒。配置修改后需重启Drill集群生效。drill.exec.storage.plugin.status.cache.ttl: 300 drill.exec.storage.plugin.retry.attempts: 2 drill.exec.storage.plugin.retry.delay: 1000 - 方案3:通过API临时禁用故障插件
若暂时无法定位无效插件、也不能重启集群,可调用Drill REST API的/storage/<插件名称>/disable接口临时禁用故障插件,操作后立即生效,不会影响其他正常插件的使用。
注意事项
以上临时方案仅能缓解阻塞影响,若要从根源解决问题,建议尽快升级到Apache Drill 1.20及以上正式版本。
内容的提问来源于stack exchange,提问作者Rik
相关产品推荐
相关产品推荐

