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大小差异较大。
处理步骤
查看是否是导入的数据过大或表字段分区设置不合理。
- 登录FusionInsight Manager界面,选择“运维 > 告警 > 告警”,选中“告警ID”为“50232”的告警,查看“附加信息”中的“db”和“table”。如果较大的Tablet较多,在附加信息中不能完全显示相关信息,可在Master FE节点的日志文件“${BIGDATA_LOG_HOME}/nodeagent/monitorlog/pluginmonitor.log”中搜索“Large tablets have”查看所有较大的Tablet信息。
- 登录安装了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地址。
- 执行以下命令查看异常Tablet详情:
show tablets from dbName.tableName;
查看返回结果中的Tablet大小的比值是否小于10%。
- 导入的数据大于预估的数据导致不同分区下的Tablet大小差异较大。执行以下命令查看建表语句:
show create table dbName.tableName;
重新估算写入表中的数据量,根据数据量的大小,适当调大BUCKETS的大小重新创建表tableNameBak,执行6。
- 表分区字段设置不合理导致不同分区下的Tablet大小差异较大。执行以下命令查看建表语句:
show create table dbName.tableName;
重新设置建表语句的分区字段,该分区字段可以更均匀的区分表中的数据,并创建表tableNameBak,执行6。
- 执行以下命令将告警上报中的tableName表的数据写入tableNameBak中:
insert into tableNameBak select * from tableName;
- 数据写入成功后,执行以下命令对比表tableName和tableNameBak中的数据条数是否一致。
select count(*) from dbName.tableName;
select count(*) from dbName.tableNameBak;
- 执行以下命令删除表tableNameBak:
drop table dbName.tableNameBak;
表删除成功后,再次适当调大BUCKETS或重新设置表字段创建表,并执行6~7导入数据、对比数据结果。如果第二次导入数据完成后,数据量大小仍然不一致,则执行11。
- 执行以下命令删除表tableName:
drop table dbName.tableName;
执行以下命令修改表名:
alter table dbName.tableNameBak rename dbName.tableName;
- 两个表的数据对比一致后,等待5分钟,查看该告警是否消除
- 是,处理完毕。
- 否,执行11。
收集故障信息。