文档首页/ MapReduce服务 MRS/ 用户指南/ MRS集群运维/ MRS集群告警处理参考/ ALM-45456 ClickHouse的分布式DDL任务长时间未执行完成
更新时间:2025-12-11 GMT+08:00
分享

ALM-45456 ClickHouse的分布式DDL任务长时间未执行完成

本章节仅适用于MRS 3.6.0-LTS及之后版本。

告警解释

系统每五分钟检测一次ClickHouse服务每个节点上是否存在执行时间超过默认阈值(600秒)的分布式DDL任务,如果检测到存在这样的任务,则系统产生告警。分布式DDL任务执行时间长的阈值通过ClickHouse服务配置参数“slow_ddl_cost_time”查看和调整。

当系统检测到分布式DDL队列中不存在超过阈值的任务时,告警自动清除。

告警属性

告警ID

告警级别

告警类型

业务类型

是否可自动清除

45456

重要

业务质量告警

ClickHouse

告警参数

类别

参数名称

参数含义

定位信息

来源

产生告警的集群或系统名称。

服务名

产生告警的服务名称。

角色名

产生告警的角色名称。

主机名

产生告警的主机名。

对系统的影响

当ClickHouse服务出现长时间未执行完成的分布式DDL任务时,后续的DDL任务可能会被阻塞,导致无法及时在集群内同步元数据变更。

可能原因

  • ClickHouseServer实例故障。
  • 存在mutation类型的任务堆积。

处理步骤

检查ClickHouseServer实例是否故障

  1. 登录FusionInsight Manager页面,选择“运维 > 告警 > 告警”,查看当前告警“定位信息”中的角色名以及确认主机名所在的IP地址。
  2. 选择“集群 > 服务 > ClickHouse > 实例”,查看上报告警IP地址对应的ClickHouse实例是否故障。

    • 是,联系运维人员恢复故障的ClickHouse实例,执行步骤 3
    • 否,执行步骤 4

  3. 等待几分钟查看告警是否恢复。

    • 是,操作结束。
    • 否,执行步骤 4

检查是否存在mutation类型的任务堆积

  1. 以客户端安装用户,登录客户端的节点,执行如下命令:

    cd {客户端安装路径}

    source bigdata_env

    • 集群已启用Kerberos认证(安全模式):

      kinit 组件业务用户

      clickhouse client --host 上报告警的ClickHouseServer实例IP --port 9440 --secure

    • 集群未启用Kerberos认证(普通模式):

      clickhouse client --host 上报告警的ClickHouseServer实例IP --user 用户名 --password --port 9440

  2. 执行以下语句,查看system.mutations中的任务类型,判断是否有长时间(超过10分钟)未执行的变更任务:

    select FQDN() as node, database, table, mutation_id, create_time, command, is_done, parts_to_do FROM clusterAllReplicas('default_cluster', system.mutations) WHERE is_done = 0;

  3. 根据步骤 5中查询的结果,确认mutation任务相关的表名,尝试清理这些长时间未执行的mutation任务

    KILL MUTATION WHERE database = '库名' AND table = '表名';

    或者 :

    KILL MUTATION WHERE database = '库名' AND table = '表名' AND mutation_id = 'mutation_id';

    alter table ... update/delete类型的任务属于mutation任务,对系统资源有大量的消耗,严重影响集群性能,应尽量避免频繁使用。

  4. 清理mutation任务后,等待一段时间,查看告警是否恢复。

    • 是,操作结束。
    • 否,执行步骤 8

收集故障信息

  1. 在FusionInsight Manager界面,选择“运维 > 日志 > 下载”。
  2. 在“服务”中勾选待操作集群的“ClickHouse”。
  3. 在“主机”中选择异常的主机,单击“确定”。
  4. 单击右上角的时间编辑按钮,设置日志收集的“开始时间”和“结束时间”分别为告警产生时间的前后1小时,单击“下载”。
  5. 请联系运维人员,并发送已收集的故障日志信息。

告警清除

此告警修复后,系统会自动清除此告警,无需手工清除。

参考信息

不涉及。

相关文档