Не удается запустить службу clickhouse, слишком много файлов в ../data/default/<TableName> - PullRequest
0 голосов
/ 28 мая 2018

У меня странная проблема с моей автономной установкой clickhouse-сервера.Некоторое время сервер работал с почти стандартной конфигурацией, за исключением того, что каталоги data и 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%, потому что он запускается слишком долго (возможно, он может начаться через час или два, я непопробую).

Уровень журнала по умолчанию - «трассировка», но я не показал никаких причин такого поведения.

Я думаю, что проблема заключается в подсчете файлов в / data / clickhouse / data /по умолчанию / 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 голосов
/ 04 июня 2018

Проблема была в методе обновления данных.Я использовал скрипт с соединителем jdbc и отправлял одну строку на запрос.После изменения схемы на пакетное обновление проблема была решена.

...