如果你想使用clickhouse的集群模式或者使用多个副本来保障数据安全性,那么就离不开zookeeper的使用,关于zookeeper在clickhouse中的作用可以详见前文。很不幸的是,zookeeper是脆弱的,尤其在很大读写压力的场景下,zk出错是比较常见的问题,而且处理起来还比较棘手。下面根据一些经验,整理了一下在CH中常用 的关于zk的一些问题排查方法。
| 检查项 | SQL命令 | 备注 |
|---|---|---|
| zk服务是否可用 | select count() from system.zookeeper where path=’/’` | 也许zk服务是启动的,但是因为网络或者安全防火墙设置就是你的CH访问不到 |
| zk服务异常 | select value from system.events where event=‘ZooKeeperHardwareExceptions’ | 大于0表示zk服务出现过硬件故障,CH将zk的故障分为了UserException、HardwareException、 OtherExceptions |
| Read only table导致无法写入 | select value from system.metrics where metric=‘ReadonlyReplica’ | |
| 数据块丢失 | select value from system.events where event=‘ReplicatedDataLoss’ | |

在使用ClickHouse集群模式或确保数据安全时,Zookeeper扮演关键角色。然而,Zookeeper在高读写压力下易出错,处理这些问题颇具挑战。本文总结了在ClickHouse中遇到的Zookeeper问题及其排查方法,包括建议将Zookeeper的数据和日志目录分离,使用高性能SSD存储,以及调整系统的ulimit设置以避免限制过小。
最低0.47元/天 解锁文章
4112

被折叠的 条评论
为什么被折叠?



