无法启动clickhouse服务,.. / data / default / <tablename>中的文件太多

时间:2018-05-28 17:06:29

标签: database clickhouse

我的独立Clickhouse-server安装有一个奇怪的问题。服务器运行了一段时间几乎默认配置,除了数据和tmp目录被替换为单独的磁盘:

cat /etc/clickhouse-server/config.d/my_config.xml 
<?xml version="1.0"?> 
<yandex> 
  <path>/data/clickhouse/</path> 
  <tmp_path>/data/clickhouse/tmp/</tmp_path> 
</yandex>

今天服务器因连接拒绝错误而停止响应。它重新启动,之后服务无法完全启动:

2018.05.28 13:15:44.248373 [ 2 ] <Information> DatabaseOrdinary (default): 42.86%
2018.05.28 13:15:44.259860 [ 2 ] <Debug> default.event_4648 (Data): Loading data parts
2018.05.28 13:16:02.531851 [ 2 ] <Debug> default.event_4648 (Data): Loaded data parts (2168 items)
2018.05.28 13:16:02.532130 [ 2 ] <Information> DatabaseOrdinary (default): 57.14%
2018.05.28 13:16:02.534622 [ 2 ] <Debug> default.event_5156 (Data): Loading data parts
2018.05.28 13:34:01.731053 [ 3 ] <Information> Application: Received termination signal (Terminated)

真的,我停止了57%的进程,因为它开始时间过长(也许它可以在一两个小时内开始,我没有尝试)。

默认情况下,日志级别为“trace”,但我没有显示出此类行为的任何原因。

我认为问题出在/ data / clickhouse / data / default / event_5156中的文件计数中。 现在它是626023目录并且ls -la命令在这个目录中不能正常工作,我必须使用find来计算文件:

#  time find . -maxdepth 1 | wc -l
626023

real    5m0.302s
user    0m3.114s
sys     0m24.848s

我有两个问题:

1)为什么Clickhouse-Server使用默认配置生成了如此多的文件和目录?

2)如何在足够的时间内没有数据丢失的情况下启动服务?

1 个答案:

答案 0 :(得分:0)

问题出在数据更新方法中。我使用带有jdbc连接器的脚本,并且每个请求都发送了一个字符串。将方案更改为批量更新后,问题就解决了。