clickhouse常见的一些问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了clickhouse常见的一些问题相关的知识,希望对你有一定的参考价值。
参考技术A 一般情况下,如果不是主动使用systemctl stop clickhouse-server 停止clickhouse
而是使用kill -9 pid关闭clickhouse,或者异常奔溃,那么如果一切正常的情况下clickhouse server 10s检测进程,自动重启。
登录机器cat /etc/cron.d/clickhouse-server
*/10 * * * * root (which service > /dev/null 2>&1 && (service clickhouse-server condstart ||:)) || /etc/init.d/clickhouse-server condstart > /dev/null 2>&1
默认会10s检测一下服务进程是否正常,否则重启,检测时间可以调。/etc/init.d/clickhouse-server
在执行分布式DDL的时候出现这个问题一般是有一个节点处于假死状态,但是节点又没有完全奔溃,一般报错如下
Code: 159. DB::Exception: Received from xxxxx:29000. DB::Exception: Watching task /clickhouse/task_queue/ddl/query-0000xxxxxxx is executing longer than distributed_ddl_task_timeout (=180) seconds. There are 1 unfinished hosts (0 of them are currently active), they are going to execute the query in background.
distributed_ddl_task_timeout 执行超过了默认的180s。
首先检查异常节点机器网络,磁盘等信息,然后检查ck状态。一般都是磁盘满了或者网络问题,很少有zk集群出问题。处理方式的话都是清理磁盘和修复网络。
Code: 458, e.displayText() = DB::ErrnoException: Cannot unlink file /data2/clickhouse/store/488/488da1e0-a9ee-4191-8376-0daaa4e0314d/format_version.txt, errno: 2, strerror: No such file or directory (version 21.3.4.25 (official build))
clickhouse 集群在建分布式表的时候出现 clickhouse zookeeper All connection tries failed
如果配置没啥问题,zk和ck集群也没啥问题,重启下zk即可恢复
查询出现AST is too big. Maximum: 500000
程序报错AST is too big. Maximum: 500000,语法树元素个数超过限制错误,说明查询sql很长很复杂,一般情况不会有,要木优化sql,要木修改集群配置
在user.xml 添加
<max_ast_elements>10000000</max_ast_elements>
<max_expanded_ast_elements>10000000</max_expanded_ast_elements>
报错 DB::Exception: Replica xxxxx already exists 。
CK会对同一个block保证重复插入的insert的幂等性,会检测重复,默认会去重,使用 insert_deduplicate 配置。如果不需要去重则可以使用 SET insert_deduplicate=0 ,但不推荐这样做。
查询超过了限制的时间(60s),需要优化sql,或者做预聚合
一次写入的分区数超过100,一般情况下不会出现一次写操作写100个分区的情况,解决方法1:查看写入的数据是否异常,为啥会写100个分区,一般是按时间分区,是不是时间解析错误了。解决方案2:在user.xml配置文件中添加<max_partitions_per_insert_block>配置项
ClickHouse-尚硅谷(15. 高级-常见问题排查)学习笔记
上一篇:(14. 高级-MaterializeMySQL 引擎)学习笔记
文章目录
- 1 分布式 DDL 某数据节点的副本不执行
- 2 数据副本表和数据不一致
- 3 副本节点全量恢复
- 4 数据副本启动缺少 zk 表
- 5 ZK table replicas 数据未删除,导致重建表报错
- 6 Clickhouse 节点意外关闭
- 7 其他问题参考
1 分布式 DDL 某数据节点的副本不执行
-
问题:使用分布式 ddl 执行命令 create table on cluster xxxx 某个节点上没有创建表,但是 client 返回正常,查看日志有如下报错。
<Error> xxx.xxx: Retrying createReplica(), because some other replicas were created at the same time
-
解决办法:重启该不执行的节点。
2 数据副本表和数据不一致
- 问题:由于某个数据节点副本异常,导致两数据副本表不一致,某个数据副本缺少表,需要将两个数据副本调整一致。
- 解决办法:
在缺少表的数据副本节点上创建缺少的表,创建为本地表,表结构可以在其他数据副本通过 show crete table xxxx 获取。
表结构创建后,clickhouse 会自动从其他副本同步该表数据,验证数据量是否一致即可。
3 副本节点全量恢复
- 问题:某个数据副本异常无法启动,需要重新搭建副本。
- 解决办法:
- 清空异常副本节点的 metadata 和 data 目录。
- 从另一个正常副本将 metadata 目录拷贝过来(这一步之后可以启动数据库,但是只有表结构没有数据)。
- 执行
sudo -u clickhouse touch /data/clickhouse/flags/force_restore_data
- 启动数据库。
4 数据副本启动缺少 zk 表
-
问题:某个数据副本表在 zk 上丢失数据,或者不存在,但是 metadata 元数据里存在,导致启动异常,报错:
Can’t get data for node /clickhouse/tables/01-02/xxxxx/xxxxxxx/replicas/xxx/metadata: node doesn’t exist (No node): Cannot attach table xxxxxxx
-
解决办法:
- metadata 中移除该表的结构文件,如果多个表报错都移除
- mv metadata/xxxxxx/xxxxxxxx.sql /tmp/
- 启动数据库
- 手工创建缺少的表,表结构从其他节点 show create table 获取。
- 创建后会自动同步数据,验证数据是否一致。
5 ZK table replicas 数据未删除,导致重建表报错
-
问题:重建表过程中,先使用 drop table xxx on cluster xxx ,各节点在 clickhouse 上table 已物理删除,但是 zk 里面针对某个 clickhouse 节点的 table meta 信息未被删除(低概率事件),因 zk 里仍存在该表的 meta 信息,导致再次创建该表 create table xxx on cluster, 该节点无法创建表(其他节点创建表成功),报错:
Replica /clickhouse/tables/01-03/xxxxxx/xxx/replicas/xxx already exists..
-
解决办法:
- 从其他数据副本 cp 该 table 的 metadata sql 过来.
- 重启节点。
6 Clickhouse 节点意外关闭
-
问题:模拟其中一个节点意外宕机,在大量 insert 数据的情况下,关闭某个节点。
-
现象:数据写入不受影响、数据查询不受影响、建表 DDL 执行到异常节点会卡住,报错:
Code: 159. DB::Exception: Received from localhost:9000. DB::Exception: Watching task /clickhouse/task_queue/ddl/query-0000565925 is executing longer than distributed_ddl_task_timeout (=180) seconds. There are 1 unfinished hosts (0 of them are currently active), they are going to execute the query in background.
-
解决办法:启动异常节点,期间其他副本写入数据会自动同步过来,其他副本的建表 DDL 也会同步。
7 其他问题参考
阿里云帮助中心:https://help.aliyun.com/document_detail/162815.html?spm=a2c4g.11186623.6.652.312e79bd17U8IO
以上是关于clickhouse常见的一些问题的主要内容,如果未能解决你的问题,请参考以下文章
ClickHouse-尚硅谷(15. 高级-常见问题排查)学习笔记
ClickHouse-尚硅谷(15. 高级-常见问题排查)学习笔记