ClickHouse报错:DB::Exception: Memory limit (total) exceeded
问题描述
当使用Flink向ClickHouse批量持续写入数据时,遇到如下的错误信息:
Caused by: java.sql.SQLException: Code: 241, e.displayText() = DB::Exception: Memory limit (total) exceeded: would use 6.86 GiB (attempt to allocate chunk of 4295130 bytes), maximum: 6.86 GiB (version 20.8.3.18) , server ClickHouseNode [uri=...]...
问题分析
从出错信息判断,应该是批量写入ClickHouse时内存不够引起的内存溢出错误。
实际上,不单在写入ClickHouse时有可能遇到这样的问题,在对ClickHouse执行查询(特别是聚合查询)时,也有可能会遇到这样的问题。
原因是,默认情况下,ClickHouse会限制使用的内存量,包括服务器使用的内存量和每个用户使用的内存量。这可以通过参数设置来调节。
问题解决
可通过调整扩大可用内存阈值,来解决这个问题。解决步骤如下(以root账户操作):
1)找到ClickHouse的配置目录。在默认安装下,使用如下命令:
# cd /etc/clickhouse-server/
2)打开该目录的下的config.xml配置文件,设置ClickHouse服务器可使用的内存比率。在文件中找到max_se ......
......
抱歉,只有登录会员才可浏览!会员登录