前置准备
服务器信息
192.168.26.101
192.168.26.102
192.168.26.103
下载如下软件包并传送到指定目录/data/software/clickhouse/
这边采用了clickhouse 23.4.2.11
与zookeeper 3.8.4
版本。
下载地址如下:
https://packages.clickhouse.com/rpm/stable/clickhouse-common-static-23.4.2.11.x86_64.rpm
https://packages.clickhouse.com/rpm/stable/clickhouse-server-23.4.2.11.x86_64.rpm
https://packages.clickhouse.com/rpm/stable/clickhouse-client-23.4.2.11.x86_64.rpm
https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
修改系统如下配置以达到clickhouse的要求
##系统前置配置
sudo vim /etc/security/limits.conf
##末尾加入如下内容
* soft nofile 65535
* hard nofile 65535
* soft nproc 131072
* hard nproc 131072
sudo vim /etc/security/limits.d/20-nproc.conf
##末尾加入如下内容
* soft nofile 65535
* hard nofile 65535
* soft nproc 131072
* hard nproc 131072
##安装依赖
yum install -y libtool
yum install -y *unixODBC*
安装zookeeper集群
cd /data/software/clickhouse/
tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz -C /data/
mv /data/apache-zookeeper-3.8.4-bin /data/zookerper-3.8.4
mkdir /data/zookerper-3.8.4/zkData
## server对应编号 如2或其他,每台服务器不同【这边我使用了ip最后一位作为myid】
echo "101" > /data/zookerper-3.8.4/zkData/myid
## 配置zoo.cfg
mv /data/zookerper-3.8.4/conf/zoo_sample.cfg /data/zookerper-3.8.4/conf/zoo.cfg
vim /data/zookerper-3.8.4/conf/zoo.cfg
# 修改数据存储路径配置
dataDir=/data/zookerper-3.8.4/zkData/
## 增加集群配置如下:
################cluster##############
server.101=192.168.26.101:2888:3888
server.102=192.168.26.102:2888:3888
server.103=192.168.26.103:2888:3888
## 配置参数解读
# server.A=B:C:D
# A是一个数字,表示这个是第几号服务器,集群模式下配置一个文件myid,这个文件在dataDir目录下,这个文件里有一个数据就是A的值我这边采用ip最后一位
# zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里的配置信息比较从而判断是哪个server
# B是这个服务器的地址
# C是这个服务器follower与集群中Leader服务器交换信息的端口,默认是2888
# D是集群中Leader服务器挂了以后,用来重新进行选举通信的端口,默认是3888
##启动集群
cd /data/zookerper-3.8.4/
bin/zkServer.sh start
##查看状态
bin/zkServer.sh status
## zookeeper的zoo.cfg 没有做本地适应配置,后续可增加,集群最少需要三台服务器才能完成选举
clickhouse 集群安装
##安装rpm包
cd /data/software/clickhouse/
rpm -ivh *.rpm
##修改配置文件
vim /etc/clickhouse-server/config.xml
#数据文件路径 <path>/var/lib/clickhouse</path>
#日志文件路径 <log>/var/log/clickhouse-server/clickhouse-server.log</log>
#新增集群指定配置 <include_from>/etc/clickhouse-server/config.d/metrika.xml<include_from>
配置clickhouse集群
vim /etc/clickhouse-server/config.d/metrika.xml
<?xml version="1.0"?>
<yandex>
<remote_servers>
<dq_ck_servers> <!--集群名称-->
<shard> <!--集群的第一个分片-->
<internal_replication>true</internal_replication>
<replica> <!--第一个replica是分片本体-->
<host>192.168.110.53</host>
<port>9002</port>
</replica>
<replica> <!--第二个replica是分片一号副本-->
<host>192.168.110.59</host>
<port>9002</port>
</replica>
<replica> <!--第三个replica是分片二号副本-->
<host>192.168.110.61</host>
<port>9002</port>
</replica>
</shard>
</dq_ck_servers>
</remote_servers>
<zookeeper>
<node index="53">
<host>192.168.110.53</host>
<port>2181</port>
</node>
<node index="59">
<host>192.168.110.59</host>
<port>2181</port>
</node>
<node index="61">
<host>192.168.110.61</host>
<port>2181</port>
</node>
</zookeeper>
<macros>
<shard>01</shard> <!--不同机器放的分片数不一样,这边是只有一分片两副本所以都是01-->
<replica>rep_1_2</replica> <!--不同机器放的副本数不一样,这便是一分片两副本_2和_3是副本,_1是本体-->
</macros>
<networks>
<ip>::/0</ip>
</networks>
</yandex>
启动指令
systemctl start clickhouse-server
systemctl restart clickhouse-server