Big Data 134 - ClickHouse Single Machine + Cluster Node Deployment Guide | Installation Configuration | systemd Management / config.d
TL;DR
- Scenario: Quickly install ClickHouse on Ubuntu, first run through single machine, then build 3-node cluster.
- Conclusion: Use official repo + signed-by method for installation; use systemd to manage service, don’t manually sudo -u clickhouse clickhouse-server; cluster recommends using ClickHouse Keeper instead of ZooKeeper.
- Output: One-click installation script, single machine MRE (3 minutes)
Minimum Runnable Example
# 1) Dependencies & keyring
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg
curl -fsSL 'https://packages.clickhouse.com/rpm/lts/repodata/repomd.xml.key' \
| sudo gpg --dearmor -o /usr/share/keyrings/clickhouse-keyring.gpg
# 2) Repo (choose one of stable or lts)
ARCH=$(dpkg --print-architecture)
echo "deb [signed-by=/usr/share/keyrings/clickhouse-keyring.gpg arch=${ARCH}] https://packages.clickhouse.com/deb stable main" \
| sudo tee /etc/apt/sources.list.d/clickhouse.list
sudo apt-get update
sudo apt-get install -y clickhouse-server clickhouse-client
Start and Boot Auto-start
sudo systemctl enable --now clickhouse-server
sudo systemctl status clickhouse-server --no-pager
Single Machine Installation
Ubuntu server installation steps:
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates dirmngr
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4
echo "deb https://repo.clickhouse.com/deb/stable/ main/" | sudo tee /etc/apt/sources.list.d/clickhouse.list
sudo apt-get update
sudo apt-get install -y clickhouse-server clickhouse-client
Default password path is: /etc/clickhouse-server/users.d/default-password.xml
Configure Permissions
sudo chown -R clickhouse:clickhouse /etc/clickhouse-server
sudo chmod -R 755 /etc/clickhouse-server
sudo chown -R clickhouse:clickhouse /var/lib/clickhouse
sudo chmod -R 755 /var/lib/clickhouse
Single Machine Test
Start ClickServer:
sudo -u clickhouse clickhouse-server
Start ClickClient:
clickhouse-client -m
Cluster Installation
Cluster Nodes
- h121 2C4G
- h122 2C4G
- h123 2C4G
Configuration Files
config.xml
Modify /etc/clickhouse-server/config.xml:
<!-- Path to data directory, with trailing slash. -->
<path>/var/lib/clickhouse/</path>
<!-- Open remote access, allow all connections -->
<listen_host>::</listen_host>
<!-- Add content under root tag -->
<include_from>/etc/clickhouse-server/config.d/metrika.xml</include_from>
metrika.xml
Create /etc/clickhouse-server/config.d/metrika.xml:
<yandex>
<remote_servers>
<perftest_3shards_1replicas>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>h121.wzk.icu</host>
<port>9000</port>
<user>default</user>
<password>clickhouse@wzk.icu</password>
</replica>
</shard>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>h122.wzk.icu</host>
<port>9000</port>
<user>default</user>
<password>clickhouse@wzk.icu</password>
</replica>
</shard>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>h123.wzk.icu</host>
<port>9000</port>
<user>default</user>
<password>clickhouse@wzk.icu</password>
</replica>
</shard>
</perftest_3shards_1replicas>
</remote_servers>
<zookeeper-servers>
<node index="1">
<host>h121.wzk.icu</host>
<port>2181</port>
</node>
<node index="2">
<host>h122.wzk.icu</host>
<port>2181</port>
</node>
<node index="3">
<host>h123.wzk.icu</host>
<port>2181</port>
</node>
</zookeeper-servers>
<macros>
<shard>01</shard>
<replica>h121.wzk.icu</replica>
</macros>
<networks>
<ip>::/0</ip>
</networks>
<clickhouse_compression>
<case>
<min_part_size>10000000000</min_part_size>
<min_part_size_ratio>0.01</min_part_size_ratio>
<method>lz4</method>
</case>
</clickhouse_compression>
</yandex>
Modify permissions:
sudo chown -R clickhouse:clickhouse /etc/clickhouse-server/config.d/metrika.xml
Modify Password
Modify /etc/clickhouse-server/users.d/default-password.xml:
<clickhouse>
<users>
<default>
<password>clickhouse@wzk.icu</password>
<networks>
<ip>::/0</ip>
</networks>
</default>
</users>
</clickhouse>
Start Test
sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml
Official Start
systemctl start clickhouse-server
systemctl status clickhouse-server