ClickHouse集群部署与管理:从0到1的实战指南
ClickHouse集群部署与管理:从0到1的实战指南
前言
作为一个在数据深渊里捞了十几年 Bug 的女码农,我深知集群部署的重要性。ClickHouse 单机性能虽强,但在处理海量数据时,集群部署是必然选择。今天,我就来聊聊 ClickHouse 集群的部署与管理,从硬件准备到日常运维,带你构建一个高可用、高性能的 ClickHouse 集群。
一、集群部署准备
1.1 硬件要求
ClickHouse 对硬件的要求相对较高,尤其是内存和存储:
- CPU:至少 8 核,推荐 16 核以上
- 内存:至少 16GB,推荐 32GB 以上
- 存储:SSD 优先,推荐 NVMe SSD
- 网络:万兆网络,最低要求千兆
1.2 网络配置
集群节点间的网络通信对性能影响很大:
- 确保节点间网络延迟低
- 配置固定 IP 地址
- 关闭防火墙或开放必要端口(默认 9000、8123、9009)
1.3 操作系统准备
推荐使用 Linux 系统,如 CentOS 7+ 或 Ubuntu 18.04+:
# 关闭防火墙 systemctl stop firewalld systemctl disable firewalld # 关闭 SELinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config setenforce 0 # 调整系统参数 cat >> /etc/sysctl.conf << EOF net.core.somaxconn = 4096 vm.swappiness = 10 EOF sysctl -p二、集群部署步骤
2.1 安装 ClickHouse
在所有节点上安装 ClickHouse:
# 添加 ClickHouse 仓库 curl -s https://packagecloud.io/install/repositories/altinity/clickhouse/script.rpm.sh | sudo bash # 安装 ClickHouse 服务和客户端 sudo yum install -y clickhouse-server clickhouse-client # 启动服务 sudo systemctl start clickhouse-server sudo systemctl enable clickhouse-server2.2 配置集群
编辑配置文件/etc/clickhouse-server/config.xml:
<clickhouse> <listen_host>0.0.0.0</listen_host> <remote_servers> <my_cluster> <shard> <internal_replication>true</internal_replication> <replica> <host>node1</host> <port>9000</port> </replica> <replica> <host>node2</host> <port>9000</port> </replica> </shard> <shard> <internal_replication>true</internal_replication> <replica> <host>node3</host> <port>9000</port> </replica