MapReduce服务 MRS-数据表报错Too many parts解决方法:问题排查步骤
问题排查步骤
- 磁盘或其他存储介质问题导致merge过慢或者中止。
登录Manager页面,检查是否存在磁盘容量不足或其他磁盘告警,如果存在,请按照告警指导处理。
如果是磁盘容量不足,也可以联系客户删除部分过期数据,释放空间,快速恢复业务。
- Zookeeper异常导致merge无法正常执行。
登录Manager页面,检查ZooKeeper是否存在服务不可用、ClickHouse服务在ZooKeeper的数量配额使用率超过阈值等相关告警,如果存在,请按照告警指导处理。
- 执行如下SQL排查是否存在副本同步队列任务积压:
select FQDN() as node,type,count() from clusterAllReplicas(default_cluster, system.replication_queue) group by node,type;
如果存在积压,请查看副本队列中的任务是否报错,并根据报错信息处理。
- 执行如下SQL排查是否存在节点间表结构不一致。
select FQDN(), create_table_query from clusterAllReplicas(default_cluster,system.tables) where name = '${table_name}' group by FQDN(),create_table_query;
如果存在,请将不一致的表结构修改一致。
- 执行如下SQL排查是否存在mutation任务异常:
select FQDN(), database, table, mutation_id, create_time, command from clusterAllReplicas(default_cluster, system.mutations) where is_done = '0' order by create_time asc;
如果mutation任务正常,等待mutation任务完成,如果mutation任务异常,清理异常的mutation任务。
- 业务写入压力过大导致merge速度小于insert速度。
可以用以下SQL语句检查报错节点最近一小时的写入条数和频次:
select tables,written_rows,count() from system.query_log where type='QueryFinish' and query_start_time between (toUnixTimestamp(now()) - 3600) AND toUnixTimestamp(now()) and query_kind = 'Insert' group by tables,written_rows order by written_rows limit 10;
业务上建议一次写入一个分区,写入频率不要太快,不要小批量数据的插入,适当增大每次插入的时间间隔。
- 如果没有触发Merge,或者Merge较慢,需要调整参数加快Merge。
加速Merge,需要调整如下参数,请参考加速Merge操作:
配置项
参考值
max_threads
CPU核数*2
background_pool_size
CPU核数
merge_max_block_size
8192的整数倍,根据CPU内存资源大小调整
cleanup_delay_period
适当小于默认值 30
- ModelArts自定义镜像_自定义镜像简介_如何使用自定义镜像
- MapReduce服务_如何使用MapReduce服务_MRS集群客户端安装与使用
- GaussDB集群搭建_SQL数据库是谁发明的_高斯数据库集群搭建_华为云
- 连接RDS for MySQL数据库_华为云数据库RDS_语法_数据库连接_连接命令
- MySQL数据库简介_MySQL数据库应用_MySQL授权多个数据库
- ModelArts开发环境_开发环境简介_开发环境怎么使用
- MapReduce服务_什么是MapReduce服务_什么是HBase
- 数据治理中心_数据开发_最佳实践_-华为云
- mysql数据库免费吗_mysql在线数据库_mysql数据库下载
- 大数据分析是什么_使用MapReduce_创建MRS服务