ClickHouse集群无法创建表,报错Code:107问题求助
ClickHouse集群无法创建表且UUID固定问题排查
报错信息
Code: 107. DB::Exception: There was an error on [ck1:9000]: Code: 107. DB::ErrnoException: Cannot open file /data/clickhouse/store/76b/76b93482-a138-42fc-9969-e608641273be/zxc_sig.sql.tmp, errno: 2, strerror: No such file or directory. (FILE_DOESNT_EXIST) (version 22.11.2.30 (official build)). (FILE_DOESNT_EXIST) (version 22.11.2.30 (official build)) , server ClickHouseNode [uri=http://10.31.0.57:8123/default, options={use_server_time_zone=false,use_time_zone=false}]@619095544
核心问题分析
清理数据目录、重装集群、删除ZooKeeper根节点后仍指向同一UUID路径,说明旧的元数据或路径信息被缓存/残留,并非集群新初始化的问题。
排查及解决步骤
- 换用原生客户端测试:使用
clickhouse-client命令行工具尝试创建表,若操作正常,说明问题出在你之前使用的客户端(如JDBC驱动)存在缓存,需重启客户端或清理其本地缓存。 - 彻底清理本地元数据目录:找到ClickHouse的
metadata目录(默认路径为/var/lib/clickhouse/metadata),删除所有文件后重启ClickHouse服务。该目录存储库级和表级元数据定义,残留的旧记录会导致服务加载无效路径。 - 检查配置文件残留:查看
config.xml等核心配置文件,确认<path>、<metadata_path>、<zookeeper>等配置项无硬编码的旧路径或UUID相关内容,确保重装后配置已完全更新。 - 验证磁盘权限与挂载状态:执行
ls -ld /data/clickhouse确认目录所有者为clickhouse用户且权限为755;用df -h检查磁盘是否正常挂载,避免因磁盘未挂载导致路径实际不存在。 - 确认ZooKeeper节点清理彻底:通过
zkCli.sh登录ZooKeeper,执行ls /确认无/clickhouse残留节点,若有未删除的子节点,执行rmr /clickhouse彻底清理,等待集群同步后再测试。
内容的提问来源于stack exchange,提问作者cnzxc
相关产品推荐
相关产品推荐

