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的大小,确保每个分区下的Tablet大小的范围在100MB~3GB,并重新创建表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。
 
 
收集故障信息。