| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> clickhouse使用遇到的坑 -> 正文阅读 |
|
[大数据]clickhouse使用遇到的坑 |
使用驱动版本 <!--ClickHouse驱动--> <dependency> <groupId>ru.yandex.clickhouse</groupId> <artifactId>clickhouse-jdbc</artifactId> <version>0.2.4</version> </dependency> Error during connection to ru.yandex.clickhouse.settings.ClickHouseProperties@326c7e74, reporting failure to data source, message: 10.177.27.69:8133 failed to respond execute clickhouse Query Error 解决方案升级驱动运行正常 <!--ClickHouse驱动--> <dependency> <groupId>ru.yandex.clickhouse</groupId> <artifactId>clickhouse-jdbc</artifactId> <version>0.2.6</version> </dependency> 常遇异常 一、异常 1)DB::Exception: Nested type Array(String) cannot be inside Nullable type (version 20.4.6.53 (official build)) select splitByString(',',cast(col as String)) col from test 2)DB::Exception: Cannot convert NULL value to non-Nullable type: while converting source column second_channel to destination column second_channel (version 20.4.6.53 (official build)) 3)DB::Exception: Memory limit (total) exceeded: would use 113.20 GiB (attempt to allocate chunk of 134200512 bytes), maximum: 113.14 GiB: While executing CreatingSetsTransform. (version 20.4.6.53 (official build)) 5)DB::Exception: Table columns structure in ZooKeeper is different from local table structure (version 20.12.3.3 (official build)) 6)Too many parts (300). Merges are processing significantly? slower than inserts... 原因:使用 Flink 实时消费 Kafka 的数据,Sink 到 ClickHouse ,策略是一条一条插入,任务上线一段时间之后,ClickHouse 扛不住数据插入的压力了(是因为MergeTree的merge的速度跟不上 data part 生成的速度)。 解决:优化 FLink ClickHouse Sink逻辑, 根据时间和数据量做触发,满足其一才会执行插入操作。 7)Caused by: org.apache.spark.memory.SparkOutOfMemoryError: error while calling spill() on org.apache.spark.util.collection.unsafe.sort.UnsafeExternalSorter@5915c8a5 原因:磁盘空间不足。 8)spark sql unsupported type array 原因:因为数据源的数组类型和spark sql的数组类型不一致,可以将数组转为string 解决: select toString(field) from tablet 二、错误码 1)Code: 48 Received exception from server (version 21.1.2.15): 原因:分布式表不能进行更新,ALTER TABLE UPDATE/DELETE不支持分布式DDL 解决:需要在分布式环境中手动在每个节点上local的进行更新/删除数据。
解决:升级clickhouse-jdbc 驱动jar或者pom引入依赖版本到0.2.6 。
原因:查询超时导致报错。 4)Code 62,Max query size exceeded 原因:Select语句中使用in方式查询报错。 解决: 注意这里的单位是bytes(字节),我这里设置了102410241024=1,073,741,824,就解决问题了。如果是sql创建的用户,需要通过sql修改配额,修改方式参考clickhouse通过RABC即SQL-driven来管理用户权限 - 渐逝的星光 - 博客园。 5)Code: 168,AST is too big,Maximum: 50000 原因:AST太大了。 解决: <max_ast_elements>10000000</max_ast_elements> <max_expanded_ast_elements>10000000</max_expanded_ast_elements> 6)Code: 221,db::exception: no interserver io endpoint named… 原因:没有指定interserver_http_host参数,clickhouse配置文件中关于对这个参数的描述我翻译过来大概意思就是这个参数是其他副本用于请求此服务器的主机名;如果未指定,则与“hostname-f”命令类似确定,此设置可用于将复制切换到另一个网络接口(服务器可以通过多个地址连接到多个网络)。不指定该参数的话,服务器就会试图连接到自己,而对应的端口号未提供服务时就会报Connection refused这样的错误了。 7)Code: 253, Replica /clickhouse/tables/XXX/XXX/replicas/dba07 already exists <!-- 修改参数 database_atomic_delay_before_drop_table_sec = 0 ,解决删除副本表立马重建会报错的问题 --> <database_atomic_delay_before_drop_table_sec>0</database_atomic_delay_before_drop_table_sec> 8)Code: 252 9)Code: 359 sudo touch '/data/clickhouse/clickhouse-server/flags/force_drop_table' && sudo chmod 666 '/data/clickhouse/clickhouse-server/flags/force_drop_table' 然后再次执行 删除操作就可以了。需要注意的是,这个标识文件有效期只有一次,执行删除完毕之后,这个文件就会消失。 10)Code: 117 Code: 117, e.displayText() = DB::Exception: Unexpected NULL value of not Nullable type String (version 20.8.3.18) 解决:参照处理null值文档 11)Code: 62 ERROR ApplicationMaster: User class threw exception: ru.yandex.clickhouse.except.ClickHouseException: ClickHouse exception, code: 62, host: 127.0.0.1, port: 8123; Code: 62, e.displayText() = DB::Exception: Syntax error: failed at position 1432 (end of query): . Expected one of: ENGINE, storage definition (version 20.8.3.18)ru.yandex.clickhouse.except.ClickHouseException: ClickHouse exception, code: 62, host: 127.0.0.1, port: 8123; Code: 62, e.displayText() = DB::Exception: Syntax error: failed at position 1432 (end of query): . Expected one of: ENGINE, storage definition (version 20.8.3.18) 解决:创建相关表 12)Code: 241 Code: 241. DB::Exception: Received from localhost:9000. DB::Exception: Memory limit (for query) exceeded: would use 9.31 GiB (attempt to allocate chunk of 4223048 bytes), maximum: 9.31 GiB: While executing MergeTreeThread: While executing CreatingSetsTransform. 原因:内存使用超出限制,默认的最大限制是10G。 解决:sql设置单次查询内存或者设置用户配额(sql设置或者users.xml设置调整max_memory_usage = 20000000000000) 13)Code: 202 ClickHouse exception, code: 202, host: xxxxx, port: 8123; Code: 202, e.displayText() = DB::Exception: Too many simultaneous queries. Maximum: 100 解决:修改config.xml文件:<max_concurrent_queries>100</max_concurrent_queries>。 14)Code: 252 ru.yandex.clickhouse.except.ClickHouseException: ClickHouse exception, code: 252, host: xxxx, port: 8123; Code: 252, e.displayText() = DB::Exception: Too many parts (308). Merges are processing significantly slower than inserts. (version 20.8.3.18) 解决:调小并行度,减少批次处理的条数。 15)Code: 159 Code: 159. DB::Exception: Received from localhost:9000. DB::Exception: Watching task /clickhouse/task_queue/ddl/query-0000000002 is executing longer than distributed_ddl_task_timeout (=180) seconds. There are 3 unfinished hosts (0 of them are currently active), they are going to execute the query in background. |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 2:47:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |