更新时间:2024-11-12 GMT+08:00

ALM-50232 Doris中存在较大的Tablet

告警解释

告警模块按5分钟周期检查Doris集群中是否存在大于3GB(可通过“alarm_tablet_max_size”参数修改该值)的Tablet,如果存在则产生此告警。

当检测到Doris集群中不存在大于3GB的Tablet时,告警恢复。

该告警仅适用于MRS 3.5.0及之后版本。

告警属性

告警ID

告警级别

是否可自动清除

50232

提示

告警参数

类别

参数名称

参数含义

定位信息

来源

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

服务名

产生告警的服务名称。

角色名

产生告警的角色名称。

主机名

产生告警的主机名称。

附加信息

db

存在较大Tablet的数据库名称。

table

存在较大Tablet的表名称。

对系统的影响

Tablet较大时可能导致Doris查询速度变慢或者compaction变慢。

可能原因

写入Doris表中的数据大于预估值或者分区设置不合理,导致不同分区下的Tablet大小差异较大。

处理步骤

查看是否是导入的数据过大或表字段分区设置不合理。

  1. 登录FusionInsight Manager界面,选择“运维 > 告警 > 告警”,选中“告警ID”为“50232”的告警,查看“附加信息”中的“db”和“table”。如果较大的Tablet较多,在附加信息中不能完全显示相关信息,可在Master FE节点的日志文件“${BIGDATA_LOG_HOME}/nodeagent/monitorlog/pluginmonitor.log”中搜索“Large tablets have”查看所有较大的Tablet信息。
  2. 登录安装了MySQL的节点,执行以下命令,连接Doris数据库。

    集群已启用Kerberos认证(安全模式),需先执行以下命令再连接Doris数据库:

    export LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN=1

    mysql -u数据库登录用户 -p数据库登录用户密码 -PFE查询连接端口 -hDoris FE实例IP地

    • Doris FE的查询连接端口,可以通过登录FusionInsight Manager,选择“集群 > 服务 > Doris > 配置”,查询Doris服务的“query_port”参数获取。
    • Doris FE实例IP地址,可以通过登录FusionInsight Manager,选择“集群 > 服务 > Doris > 实例”,查看任一FE的业务IP地址。

  3. 执行以下命令查看异常Tablet详情:

    show tablets from dbName.tableName;

    查看返回结果中的Tablet大小的比值是否小于10%。

    • 是,执行4
    • 否,执行5

  4. 导入的数据大于预估的数据导致不同分区下的Tablet大小差异较大。执行以下命令查看建表语句:

    show create table dbName.tableName;

    重新估算写入表中的数据量,根据数据量的大小,适当调大BUCKETS的大小重新创建表tableNameBak,执行6

  5. 表分区字段设置不合理导致不同分区下的Tablet大小差异较大。执行以下命令查看建表语句:

    show create table dbName.tableName;

    重新设置建表语句的分区字段,该分区字段可以更均匀的区分表中的数据,并创建表tableNameBak,执行6

  6. 执行以下命令将告警上报中的tableName表的数据写入tableNameBak中:

    insert into tableNameBak select * from tableName;

  7. 数据写入成功后,执行以下命令对比表tableNametableNameBak中的数据条数是否一致。

    select count(*) from dbName.tableName;

    select count(*) from dbName.tableNameBak;

    • 是,执行9
    • 否,执行8

  8. 执行以下命令删除表tableNameBak

    drop table dbName.tableNameBak;

    表删除成功后,再次适当调大BUCKETS或重新设置表字段创建表,并执行6~7导入数据、对比数据结果。如果第二次导入数据完成后,数据量大小仍然不一致,则执行11

  9. 执行以下命令删除表tableName

    drop table dbName.tableName;

    执行以下命令修改表名:

    alter table dbName.tableNameBak rename dbName.tableName;

  1. 两个表的数据对比一致后,等待5分钟,查看该告警是否消除

    • 是,处理完毕。
    • 否,执行11

收集故障信息。

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