数据库版本:24.1.1.2048
jdk版本:jdk8
4个文件(三个ck的包):
OpenJDK8U-jdk_x64_linux_hotspot_8u382b05.tar
clickhouse-client-24.1.1.2048.x86_64.rpm
clickhouse-common-static-24.1.1.2048.x86_64.rpm
clickhouse-server-24.1.1.2048.x86_64.rpm
百度云个人下载地址(可能失效):
链接: 百度网盘 请输入提取码 提取码: 2xy6
官网地址:
packages.clickhouse.com/rpm/stable/
阿里云地址:
clickhouse-rpm安装包下载_开源镜像站-阿里云
三个节点的集群
副本设置了一分片三副本
官方预构建的二进制文件通常针对 x86_64 进行编译,并利用 SSE 4.2 指令集,因此,除非另有说明,支持它的 CPU 使用将成为额外的系统需求。下面是检查当前 CPU 是否支持 SSE 4.2 的命令:
$ grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
如果你部署的环境有端口访问限制,需要提前开通这些端口的访问权限
端口:8123 9000 9009(内部互相访问) 9181 9234
cat > /etc/hosts <
修改本地的主机名,每个节点执行的主机名根据上面的网络设置进行修改
hostnamectl set-hostname 新主机名
eg:
hostnamectl set-hostname bigdata01
#上传到对应的目录,然后解压
tar -xf OpenJDK8U-jdk_x64_linux_hotspot_8u382b05.tar.gz -C /usr/local
# 配置环境变量
cat > /etc/profile.d/jdk.sh <
每个节点都要执行操作
#提前把这三个文件放到同一目录下面
#clickhouse-client-24.1.1.2048.x86_64.rpm
#clickhouse-common-static-24.1.1.2048.x86_64.rpm
#clickhouse-server-24.1.1.2048.x86_64.rpm
# 安装ck的三个包 (去掉keeper的组件,否则提示冲突)
yum -y install clickhouse-*
# 修改配置
# 修改数据、缓存存储位置
sed -i 's#var/lib/clickhouse#data/clickhouse#g' /etc/clickhouse-server/config.xml
# 创建存储目录
mkdir /data/clickhouse && chown -R clickhouse.clickhouse /data/clickhouse
#日志目录(非必须,如果启动提示文件不存在,再创建)
vim /var/log/clickhouse-server/clickhouse-server.log
vim /var/log/clickhouse-server/clickhouse-server.err.log
# 设置权限
chown clickhouse:clickhouse /var/log/clickhouse-server/clickhouse-server.log
chown clickhouse:clickhouse /var/log/clickhouse-server/clickhouse-server.err.log
chown clickhouse:clickhouse /usr/bin/clickhouse
# 配置文件的权限
chmod 644 /etc/clickhouse-server/config.xml
# 修改监听地址使远程可访问
cat > /etc/clickhouse-server/config.d/listen.xml <
1
0.0.0.0
EOF
#修改时区
cat > /etc/clickhouse-server/config.d/timezone.xml <
Asia/Shanghai
EOF
注:每个节点server_id的值不一样,根据实际修改。该参数不能重复,每个节点唯一
注:单节点的raft_configuration参数也需要配置
修改 /etc/clickhouse-server/config.xml 主配置文件,在根节点
#打开配置文件
vim /etc/clickhouse-server/config.xml
#根节点
0.0.0.0
9181
1
/data/clickhouse/coordination/log
/data/clickhouse/coordination/snapshots
10000
30000
warning
false
1
bigdata01
9234
2
bigdata02
9234
3
bigdata03
9234
bigdata01
9181
bigdata02
9181
bigdata03
9181
配置项目的作用:
coordination_settings 配置下的force_sync的作用:
force_sync
选项用于决定 ClickHouse Keeper 是否强制将数据同步到磁盘。在 ClickHouse Keeper 中,当客户端请求更新 ZooKeeper 的数据节点时,ClickHouse Keeper 会将这些更新写入内存缓冲区,并最终写入磁盘。force_sync
控制着这些更新何时被强制同步到磁盘。
修改宏变量
注:每个节点的shard、replica值不一样,根据实际修改
三个节点的副本值replica不同
本次的配置是1分片,3副本(一个数据块,在三个服务器上面存储分别存一份)
bigdata01
vim /etc/clickhouse-server/config.d/macros.xml
ck_cluster
ck_cluster
1
1
bigdata02
vim /etc/clickhouse-server/config.d/macros.xml
ck_cluster
ck_cluster
1
2
bigdata03
vim /etc/clickhouse-server/config.d/macros.xml
ck_cluster
ck_cluster
1
3
修改集群的分片、副本
三个节点操作一致
vim /etc/clickhouse-server/config.d/remote-servers.xml
ck_cluster
/clickhouse/tables/{cluster}/{shard}/{database}/{table}
{replica}
true
bigdata01
9000
default
jM80NNij
bigdata02
9000
default
jM80NNij
bigdata03
9000
default
jM80NNij
# 生成密码
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
#生成结果
jM80NNij
e377b4470304eadc7342f33ff6cfccc26f7888d46646d6956b7209d33a5f2fb1
#内容 - 建议放在某个配置文件中做留存,防止遗忘
#解释
# 正常用来登录的密码
jM80NNij
# 配置文件中配置的密码
e377b4470304eadc7342f33ff6cfccc26f7888d46646d6956b7209d33a5f2fb1
打开sql管理能力
vim /etc/clickhouse-server/users.xml
# 编辑该配置项目,打开sql管理能力
1
添加用户
adminuser帐号配置:
vim /etc/clickhouse-server/users.d/adminuser.xml
e377b4470304eadc7342f33ff6cfccc26f7888d46646d6956b7209d33a5f2fb1
::/0
default
default
用户名:adminuser
密码:jM80NNij
default帐号配置:
# 添加密码
sed -i 's# #e377b4470304eadc7342f33ff6cfccc26f7888d46646d6956b7209d33a5f2fb1 #' /etc/clickhouse-server/users.xml
用户名:default
密码:jM80NNij
systemctl start clickhouse-server.service
systemctl status clickhouse-server.service
systemctl enable clickhouse-server.service
查看实时日志
journalctl -u clickhouse-server.service -f
启动 ClickHouse 并验证每个 Keeper 实例是否正在运行。在每台服务器上执行以下命令。如果 Keeper
正在运行且运行正常,则该命令将返回: ruok``imok
# echo ruok | nc localhost 9181; echo
imok
如果没有nc 命令
telnet bigdata0x 9181
# eg telnet bigdata01 9181
数据库有一个名为zookeeper的表,其中包含 ClickHouse Keeper 实例的详细信息。让我们看一下表格:system.zookeeper
先登录:
clickhouse-client --password="jM80NNij"
SELECT *
FROM system.zookeeper
WHERE path IN ('/', '/clickhouse');
# 查看集群
SHOW CLUSTERS;
# 查看集群
SELECT
cluster,
shard_num,
replica_num,
host_name,
is_local,
user,
database_shard_name,
database_replica_name
FROM system.clusters
查看ClickhouseKeeper的日志
clickhouse-keeper dump /path/to/changelog_1_100000.bin
查看所有表以及相关的信息
SELECT
sum(rows) AS `总行数`,
formatReadableSize(sum(data_uncompressed_bytes)) AS `原始大小`,
formatReadableSize(sum(data_compressed_bytes)) AS `压缩大小`,
round((sum(data_compressed_bytes) / sum(data_uncompressed_bytes)) * 100, 0) AS `压缩率`,
`table` AS `表名`
FROM system.parts where database = 'system' group by `table`;
修改的语句
ALTER TABLE `system`.metric_log MODIFY TTL event_date + toIntervalDay(15);
ALTER TABLE `system`.trace_log MODIFY TTL event_date + toIntervalDay(15);
ALTER TABLE `system`.query_log MODIFY TTL event_date + toIntervalDay(15);
ALTER TABLE `system`.asynchronous_metric_log MODIFY TTL event_date + toIntervalDay(15);
# 查看创建语句是否成功
SHOW CREATE `system`.metric_log;
B站视频
【clickhouse-v24.1-离线集群部署】 https://www.bilibili.com/video/BV1yNpieREL2/?share_source=copy_web&vd_source=54b8e98ca037df7d40df4e66e8fae702