Как установить ClickHouse в Docker?

Редактировал(а) Олеся 2021/11/11 06:35

ClickHouse — высокопроизводительная отечественная аналитическая база данных с открытым исходным кодом, разработанная в Яндексе.

Внимание! При установке ClickHouse следует использовать внешний конфигурационный файл и внешний каталог хранения данных для того, чтобы при перезапуске контейнера вся информация оставалась в сохранности.

Для установки выполнить следующие действия:

1) Cоздать необходимые каталоги, в которых будут храниться настройки, журналы и базы данных ClickHouse:

sudo mkdir -p /opt/clickhouse/{data,etc,log}

2) Запустить ClickHouse в пробном режиме:

sudo docker run -d --name clickhouse_1 --ulimit nofile=262144:262144 -v /opt/clickhouse/log:/var/log/clickhouse-server -v /opt/clickhouse/data:/var/lib/clickhouse yandex/clickhouse-server

3) Убедиться, что соединение с сервером работает:

sudo docker run -it --rm --link clickhouse_1:clickhouse-server yandex/clickhouse-client --host clickhouse-server

4) Проверить, что сервер отвечает на запросы:

SELECT now()

┌───────────────now()─┐

│ 2021-11-10 08:46:45 │

└─────────────────────┘

1 rows in set. Elapsed: 0.003 sec.

e29c32808cc4 :) select version();

SELECT version()

┌─version()─┐

│ 21.11.2.2 │

└───────────┘

5) Выполнить экспорт конфигурационных файлов сервера в каталог хоста, чтобы позднее их можно было бы изменять:

sudo docker exec -it clickhouse_1 cat /etc/clickhouse-server/config.xml > config.xml

sudo docker exec -it clickhouse_1 cat /etc/clickhouse-server/users.xml > users.xml

sudo mv config.xml users.xml

6) Остановить сервер ClickHouse и запустить его с внешними файлами конфигурации:

sudo docker stop clickhouse_1

sudo docker rm clickhouse_1

sudo docker run -d --restart=always --name clickhouse_1 --ulimit nofile=262144:262144 -p 127.0.0.1:8123:8123 -p 127.0.0.1:9000:9000 -v /opt/clickhouse/log:/var/log/clickhouse-server -v /opt/clickhouse/data:/var/lib/clickhouse -v /opt/clickhouse/etc/users.xml:/etc/clickhouse-server/users.xml -v /opt/clickhouse/etc/config.xml:/etc/clickhouse-server/config.xml yandex/clickhouse-server

7) Проверить доступность сервера, как было показано выше:

sudo docker run -it --rm --link clickhouse_1:clickhouse-server yandex/clickhouse-client --host clickhouse-server

8) Проверить, что сервер отвечает на запросы:

SELECT now()

┌───────────────now()─┐

│ 2021-11-10 08:50:01 │

└─────────────────────┘

1 rows in set. Elapsed: 0.003 sec.

e29c32808cc4 :) select version();

SELECT version()

┌─version()─┐

│ 21.11.2.2 │

└───────────┘

Сервер ClickHouse развернут.


Посмотреть видеоурок: Работа докера на примере ClickHouse

Теги: ClickHouse
strelets.net
telegram: @os_strelets