clickhouse(十二、踩坑之路)

ClickHouse问题分析:启动失败,报错 doesn‘t look like the set of parts in ZK ClickHouse问题分析:启动失败,报错 doesn't look like the set of parts in ZK 阅读详情
AI摘要

本文汇总了ClickHouse数据库在运行过程中遇到的多种常见错误及其详细的解决方案,包括元数据与数据不一致、分布式DDL语句超时、字符串转数字异常等问题,提供了实用的修复策略和技术建议。

  • Q1
    DB::Exception: Cannot create table from metadata file /data/clickhouse/metadata/default/dwd_test.sql, error: DB::Exception: The local set of parts of table default.dwd_test doesn’t look like the set of parts in ZooKeeper: 65.88 million rows of 85.04 million total rows in filesystem are suspicious. There are 545 unexpected parts with 65883643 rows (191 of them is not just-written with 65883643 rows), 0 missing parts (with 0 blocks).

  • A1
    这是由于truncate、alter等ddl语句用了on cluster,偶尔导致zookeeper同步异常。解决方法1:删除有问题节点的本地表数据 rm -r /data/clickhouse/data/default/dwd_test,再重新启动CK,副本会自动重新同步该表数据。(如果没有副本请不要使用此方法。)
    解决方法2:命令行执行sudo -u clickhouse touch /data/clickhouse/flags/force_restore_data 然后手动恢复有问题的partition

  • Q2
    Connected to ClickHouse server version 20.3.8 revision 54433.
    Poco::Exception. Code: 1000, e.code() = 13, e.displayText() = Access to file denied: /home/qspace/.clickhouse-client-history (version 20.3.8.53 (official build))

  • A2

    创建该文件、并设置开放权限。
    chown clickhouse:clickhouse /home/qspace/.clickhouse-client-history (没有则创建)

  • Q3
    Application: DB::Exception: Listen [::]:8124 failed: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = DNS error: EAI: Address family for hostname not supported (version 20.5.2.7 (official build))

  • A3
    本机没有开放ipv6,只能对ipv4生效。在/etc/click-house/config.xml中,把<listen_host> 改成0.0.0.0 或者 ::

  • Q4
    Code: 32, e.displayText() = DB::Exception: Received from hadoop8:9900. DB::Exception: Attempt to read after eof: Cannot parse Int32 from String, because value is too short. (version 20.3.8.53 (official build))
    字符串转数字异常,有些为空或者非数字的字符导致转换失败

  • A4
    使用toUInt64OrZero函数、转换失败则为0。

  • Q5
    Application: DB::Exception: Suspiciously many (125) broken parts to remove.: Cannot attach table default.test
    Code: 231. DB::Exception: Received from ck10:9000. DB::Exception: Suspiciously many (125) broken parts to remove…

  • A5
    因为写入数据造成的元数据和数据不一致问题。先删除磁盘数据、再重启节点删除本地表,如果是复制表再上zookeeper删除副本,然后重新建表。复制表的话数据会同步其他副本的。

  • Q6
    Cannot execute replicated DDL query on leader.

  • A6
    由于分布式ddl语句比较耗时会超时响应、改为本地执行或者减少作用的数据范围。如ALTER、OPTIMIZE全表改为具体的partition.

  • Q7
    Code: 76. DB::Exception: Received from 0.0.0.0:9900. DB::Exception: Cannot open file /data/clickhouse/data/default/test/tmp_insert_20200523_55575_55575_0/f0560_deep_conversion_optimization_goal.mrk2, errno: 24, strerror: Too many open files.

  • A7
    修改/etc/security/limits.conf 添加:
    clickhouse soft nofile 262144
    clickhouse hard nofile 262144
    使用ulimit -n 查询、看到的是所有用户可打开的总数,而ck能打开的大小只是系统的默认值,所以不要被这个命令干扰,重启ck后、获取ck的进程、再通过cat /proc/${pid}/limits |grep open ,判断配置是否生效

  • Q8
    DB::Exception: Too many parts(100).

  • A8
    官方回答:The following changes have been made on config.xml:

<merge_tree>
    <parts_to_delay_insert>300</parts_to_delay_insert>
    <parts_to_throw_insert>600</parts_to_throw_insert>
    <max_delay_to_insert>2</max_delay_to_insert>
    <max_suspicious_broken_parts>5</max_suspicious_broken_parts>
</merge_tree>
  • Q9
    Code: 117. DB::Exception: Received from hadoop8:9900. DB::Exception: Data directory for table already containing data parts - probably it was unclean DROP table or manual intervention. You must either clear directory by hand or use ATTACH TABLE instead of CREATE TABLE if you need to use that parts…

  • A9
    建表的时候发现之前表存储数据还在,如果需要之前的数据那么把create改为attach语句,如果需要则要清理磁盘上对应表空间的目录、如果zookeeper上也有相关信息可能也需要一起清理。

  • Q10
    Received exception from server (version 20.3.8):
    Code: 999. DB::Exception: Received from hadoop7:9900. DB::Exception: Session expired (Session expired).

  • A10
    查看日志应该是zookeeper的状态问题。

clickhouse分布式集群遇到的一些错误处理 clickhouse 遇到的一些报错处理 阅读详情

相关推荐

ClickHouse 问题处理case2

查看ClickHouse logs目录下每天产生大量的错误日志,刚接触CH的时候,感觉日志可读性非常不友好,不像mysql那样一看就基本可以定位问题; CH日志中包含许多无效信息; 报错日志: 2021.05.12 23:19:08.747258 [ 46720 ] {0860894a-98fe-413b-a737-bcf1c3abeedf} <Error> TCPHandler: Code: 38, e.displayText() = DB::Exception: Cannot par

一条大河 5020

复杂查询导致clickhouse宕机

背景 最近在研究clickhouse,发现了不少坑,有些坑是官方的无法解决,有些是配置的问题。配置问题及优化的问题就需要我们不断的调整配置以及优化sql。优化sql最主要是理解clickhouse是如何查询的,我们才能找到瓶颈点,找到优化方法。 问题 在8G内存4核CPU的机器上,单节点的默认配置的clickhouse,保存数据8000W+,一个复杂的多表关联的查询,每次查询到98%的时候,clickhouse就自动宕机了,报错如下: Exception on client: Code: 32. DB::E

null_equals的专栏 5065

Python使用ClickHouse实践与踩坑记

本文为初步使用ClickHouse做OLAP数据分析实践,并记录了数据库连接端口配置、接口返回值等问题。体会到ClickHouse的速度快。

肖永威的专栏 2万+

ClickHouse 学习

DDL 添加数据库字段 alter table user_tags add column last_subject String; alter table user_tags add column class_trust_valids Int8; 删除列 ALTER TABLE [db].name [ON CLUSTER cluster] DROP COLUMN ...

银滴子的博客 1924

【clickhouse踩坑记录】clickhouse数据删不掉

背景 今天做数据同步时,需要进行先删除数据再写数据这一步操作。但是执行删除数据sql后,数据没被删掉,仍然还可以查询到。但执行删除语句返回的结果并没有报错。 // 删除代码 alter table ${db}.${table} on cluster ${cluster} delete where event_date between '2021-05-05' and '2021-06-03' // 查询代码 select * from ${db}.${table} where event_date bet

weixin_44505713的博客 9050

ClickHouse生产踩了坑?来看看怎么避坑

本文总结了ClickHouse在生产环境中常见的8大问题及解决方案:1)内存爆满问题,需优化查询语句和调整内存参数;2)磁盘空间不足,需定期清理数据和配置TTL;3)副本不同步,需检查配置一致性和网络连通性;4)数据倾斜,需优化分片键选择;5)数据重复/丢失,需配置去重引擎和备份机制;6)“Too many parts”错误,需优化批量写入策略;7)权限不足,需创建专用用户;8)端口冲突,需检查并终止占用进程。文章针对每个问题提供了具体操作方案,帮助用户快速定位和解决问题。

专注分享后端开发、大数据、分布式、性能优化等实战技术。 只写通俗易懂、能直接落地的干货,持续输出优质技术内容。 723

【ClickHouse】集群安装部署流程(踩坑解决)

ClickHouse集群安装部署流程(防止踩坑)ClickHouse集群安装部署Fisrt1、安装之前1.1、SSE 4.2 指令集1.2、设置用户的文件句柄数2、单节点方式2.1、yum方式安装RPM安装包方式一2.1.1、推荐使用CentOS、RedHat和所有其他基于rpm的Linux发行版的官方预编译rpm包。2.1.2、查看安装包命令:2.1.3、然后运行命令安装:2.2、yum方式安装RPM安装包方式二2.2.1、安装curl工具2.2.2、添加clickhouse的yum镜像2.2.3、检查镜

m0_50638181的博客 2万+

【clickhouse踩坑记录】ClickHouse查询性能优化(入门级)

背景 用了一年多的ClickHouse,但好像都没系统地去学一遍,趁着最近有点时间,相对全面地去看了一圈ClickHouse的内容。发现ClickHouse虽然性能查询本身快,但如果使用不恰当,性能会被降一个级别。下面主要简单介绍一下,ClickHouse的查询可以从哪些方面做优化。可重点关注标题加粗部分!! 优化方法 表级别优化 填充有空值的字段 对于一些表字段,若存在空值,则可以考虑使用无业务场景意义的字符进行填充。因为ClickHouse对于空值,在底层存储是用了单独的文件存储。相对于没有空值的情

weixin_44505713的博客 1万+

ClickHouse踩坑指南

创建单表建议首选MergeTree引擎(ClickHouse中最强大的表引擎当属 MergeTree引擎及该系列(*MergeTree)中的其他引擎。),创建分布式表建议选择MergeTree + Distributed引擎,若保证高可用,建议选择ReplicatedMergeTree + Distributed引擎; 针对当前ClickHouse版本,Nullable(DateTime)不生效,插入空值报错; 在SQL解析方面,ClickHouse是大小写敏感的,这意味着SELECT a 和 SEL.

u013473512的博客 16万+

Clickhouse踩坑记录

背景:我司因presto在大数据量下查询较慢,后综合技术特点及我们的数据特点决定采用Clickhouse替代。 实现方案:将Hive数据每天增量同步至Clickhouse。 备注:以下将Clickhouse简称ck 实现步骤: 在ck中创建Hive引擎的表 在ck中创建MergeTree引擎的表 每天将Hive引擎的表增量同步至MergeTree引擎的表 踩坑点 一开始在ck创建表后发现hive那边是存储的文本格式的,后来在hive修改为orc格式 ,ck这边没有重新建表,然后就报了上边的

weixin_41589448的博客 3611

使用ClickHouse JDBC官方驱动,踩坑无数

这个问题我在网上查原因说是由于Zookeeper压力过大,表变成只读状态,导致ClickHouse插入数据失败。写入数据频率过高。Zookeeper中的集群节点挂掉。而我们项目出现这个问题的原因是第一个:写入数据频率过高。但是在网上搜资料的过程中,我又发现了另外一个问题:我们项目用了JDBC驱动,但ClickHouse官方并不推荐。。证实了官网确实不建议使用驱动:而应该改成驱动,并且推荐使用0.3.2以上的版本:于是,后面几天开始了ClickHouse的JDBC驱动升级之旅。

2万+

那些年我们踩过的一些坑之 ClickHouse

...

程序员小陶的大数据分享 3777

保姆级教程:用SNAP处理哨兵一号数据,5步搞定城区范围提取(附江西晋城案例)

本文提供了一份详细的保姆级教程,介绍如何使用SNAP软件处理哨兵一号数据,通过5个关键步骤快速提取城区范围。以江西晋城为例,教程涵盖数据准备、预处理、核心处理流程、自动化搭建及成果分析,帮助用户轻松掌握SNAP操作技巧,适用于城市规划、环境监测等领域。

weixin_32535389的博客 453

宝塔使用clickhouse踩坑

最近有个物联网项目,需要存储物联网终端发送过来的信息(类似log日志,但又要存储在数据库里,方便后期聚合统计),本来想写文件的奈何客户要求聚合统计,所以只能用数据库才能达到更高的计算效率,当然mysql对这种日志型数据库并没有优势,数据量上去后反而不利于计算,所以就研究了一下列式数据库,看到宝塔有clickhouse就研究了一下,但是期间遇到很多坑这里把解决方案分享出来供大家参考

qq_38883889的博客 1138

从零玩转GD32单片机CAN总线:手把手实战配置与源码解析

本文提供了一份基于GD32单片机的CAN总线实战入门指南。从硬件连接(GD32F103C8T6与TJA1050收发器)到软件配置,详细解析了CAN初始化、波特率计算、过滤器设置及中断收发等核心源码。通过手把手的回环测试示例与常见问题排查,帮助开发者快速掌握CAN总线通信的关键配置与调试技巧。

g5h6i7j的博客 481

机器学习入门指南:Jupyter Notebook实战

对于机器学习工程师而言,他们更擅长的是算法、模型、数据探索的工作,而对于工程化的能力则并不是其擅长的工作。Jupyter Notebook生成PMML文件1​​​​​​​。Jupyter Notebook生成PMML文件2​​​​​​​。PySpark Notebook建模 -折线图​​​​​​​。TensorFlowNotebook建模​​​​​​​。R Notebook建模 - 散点图​​​​​​​。PySpark Notebook建模​​​​​​​。R Notebook获取训练数据集​​​​​​​。

datacreating的博客 1975

clickhouse实战和踩坑

最近需要使用clickhouse来做数据仓库,所以开始接触数据库clickhouse,下面是自己一些学习笔记。 1.什么是clickhouse? 官网描述:ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS). 第一次接触列式数据库,感觉单看概念还是比较抽象,难懂,思维很难转换的过来 对比一下olap和oltp的区别: 从上面可以看出OLAP数据库特点就是数据量大,主要是查询操作,所以需保证查询速度快,所以一般OLAP一般采用列式数据库. 2.clickhouse的特征 官网

weixin_38437520的博客 1028

手把手教你获取全国街道级GeoJSON数据:前端地图开发必备技巧

本文详细介绍了获取全国街道级GeoJSON数据的多种方法,从前端地图开发的实际需求出发,涵盖了免费获取省市县级数据的工具如阿里云DataV.GeoAtlas和HashTang,以及进阶的街道级数据获取方案,包括使用Bigemap GIS Office和专业数据采购。文章还提供了数据处理与优化技巧,帮助开发者高效使用GeoJSON数据进行地图可视化。

weixin_29053383的博客 289

关于Clickhouse的CollapsingMergeTree引擎生产环境踩坑分享

关于Clickhouse的CollapsingMergeTree表引擎生产应用分享

weixin_42329623的博客 922

ORB-SLAM3算法2之EuRoc开源数据集运行ORB-SLAM3生成轨迹并用evo工具评估轨迹

ORB-SLAM3算法1 已成功编译安装ORB-SLAM3到本地,本篇目的是用EuRoc开源数据来运行ORB-SLAM3,并生成轨迹,最后用evo评估工具来评估ORB-SLAM3生成的轨迹和真值轨迹。

重点记录机器人和自动驾驶相关领域的技术,尤其是计算机视觉,视觉SLAM等,不仅有前言文献或必备算法的学习,也会有实际应用的点滴经验 3762

基于YOLOv11的农作物病虫害检测系统设计与实现

我们使用公开的IP102病虫害数据集作为基础,该数据集包含102种病虫害类别,覆盖水稻、小麦、玉米等多种主要农作物。图像数量:75,222张类别数:102图像分辨率:从640×480到4000×3000不等标注格式:PASCAL VOC格式此外,我们还收集了部分田间实际拍摄的图像以增强模型泛化能力。

YOLO 595

clickhouse 踩坑指南

1. clickhouse修改字段类型 当别人往表中插入数据,也就是对字段进行操作时,是不能修改字段类型的 此时若要修改字段类型,需要先drop掉该字段,再进行add,如果单纯使用modify是不会修改成功的。 ????: 原始 col1 类型是 string,此时若要修改为int32: alter tablebase.table ON CLUSTER *** modify column col1 Int32; but:如果此列一直在进行被修改,比如插入数据,则会报错: Exception

yuanyuanxingxing的专栏 3672

Python爬虫教程:抓取Android或iOS应用中的数据

随着智能手机的普及,移动应用程序已经成为我们生活中不可或缺的一部分。从社交媒体、在线购物到金融服务和健康管理,几乎所有领域都有相应的手机应用程序(App)服务用户。而这些应用程序通常会存储大量的数据,例如用户行为、产品信息、订单记录等。如果我们能有效地抓取这些数据,可以为数据分析、商业智能、用户行为分析等提供有力支持。本文将重点介绍如何使用Python爬虫技术抓取Android或iOS应用中的数据,尤其是如何从这些应用的后端接口、存储、或网页中提取数据。我们将探讨如何通过反向工程技术访问移动应用中的API接

2201_76125261的博客 801

ClickHouse 踩坑合集:7 月遇到的 8 个让人头疼的生产问题

ORDER BY (event_time, user_id) 在时间范围查询时比 (user_id, event_time) 更优——但必须结合你的查询模式选:如果你的 90% 查询都是,user_id 放前面没错。但如果你大量查询是"最近 1 小时所有用户的行为"(只有时间过滤,没有 user_id 过滤),把 event_time 放第一列反而更好——因为 ClickHouse 会按 ORDER BY 的第一列做分区裁剪。没有放之四海皆准的 ORDER BY 顺序,必须基于实际查询日志做统计分析。

2401_85575345的博客 4755

【LLC快速上手系列】LLC轻载时,死区时间怎么调才对?别再傻傻乱搞了!

死区时间,就是指。如果你死区设得好,就能让开通前 ( V_DS to 0 ),完美实现!

weixin_43199439的博客 1856

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

clickhouse 安装踩坑

clickhouse配置

The_OneRS的博客 3205

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: metabase常用指令
下一篇: spark数据倾斜处理实践
yyoc97
博客等级 码龄12年 272粉丝 91原创
评论 19
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值