执行Elasticsearch enrich policy提示无法获取锁该如何解决
Elasticsearch enrich策略执行锁冲突429错误解决方案
错误根因:此前拼写错误的
group-info策略执行任务异常卡住,长期持有了该策略的独占执行锁。Elasticsearch为避免重复执行enrich策略生成脏数据,默认同一时间仅允许单条同策略执行任务运行,锁未释放前新的执行请求会直接返回429错误。
解决步骤按优先级依次执行:
- 第一步:查询当前集群中所有运行中的enrich相关任务,获取卡住的任务ID
在返回结果中找到GET /_tasks?actions=*enrich*&detaileddescription字段关联group-info策略的任务,记录其task_id值。 - 第二步:取消卡住的enrich执行任务
执行后等待30秒,再次尝试执行enrich策略,若仍报错则走下一步。POST /_tasks/<替换为第一步获取的task_id>/_cancel - 第三步:手动删除策略对应的锁记录
锁信息存储在ES系统索引.enrich-policy-coordination中,执行以下命令直接删除group-info对应的锁文档:DELETE /.enrich-policy-coordination/_doc/lock-group-info - 第四步:验证锁释放后重新执行策略
先调用接口确认当前group-info策略无正在运行的执行任务:
确认返回结果中GET /_enrich/policy/group-info/_statsexecuting_policy字段为空后,执行策略运行命令即可:PUT /_enrich/policy/group-info/_execute
注意:操作ES系统索引前请先确认集群状态为绿色,避免误操作影响其他业务运行
内容的提问来源于stack exchange,提问作者Michal Picpauer
相关产品推荐
相关产品推荐

