实战篇丨ClickHouse初体验之集群搭建指南(上)

大家好,今天给大家分享LS同学根据亲身经历整理的一篇关于搭建ClickHouse集群的文章。
该篇文章主要讲述ClickHouse之3节点3分片1副本的集群搭建过程,也算是避坑指南,希望对大家有帮助,特别是CK初学者。
准备工作

安装环境
ZooKeeper版本要求
Zookeeper 安装3节点,版本要求在 ZooKeeper 3.4.5 或更高版本.
你可以配置任何现有的 ZooKeeper 集群,系统会使用里面的目录来存取元数据(该目录在创建可复制表时指定)。
如果配置文件中没有设置 ZooKeeper ,则无法创建复制表,并且任何现有的复制表都将变为只读。
在 ClickHouse 中,ZooKeeper 不参与任何实质性的数据传输。ZooKeeper 在 ClickHouse 中主要用在副本表数据的同步(ReplicatedMergeTree引擎)以及分布式表(Distributed)的操作上。
系统要求
ClickHouse可以在任何具有x86_64,AArch64或PowerPC64LE CPU架构的Linux,FreeBSD或Mac OS X上运行。
官方预构建的二进制文件通常针对x86_64进行编译,并利用SSE 4.2指令集,因此,除非另有说明,支持它的CPU使用将成为额外的系统需求。下面是检查当前CPU是否支持SSE 4.2的命令:
安装的3台机器都需要做验证!!!
# grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
输出结果如下

CPU是否支持SSE 4.2验证结果图

磁盘占用情况结果图2、在 /data1 目录下创建个ClickHouse,然后授权给CK。
3台机器都要执行:
cd /data1
mkdir clickhouse
chownd -R clickhouse:clickhouse /data1/clickhouse
版本选择和下载
ClickHouse的版本分类
testing :测试版本 prestable:预发稳定版 stable:稳定版 lts(长期支持)
我们此处选择stable:22.2.2.1-2 版本,具体细节官网有介绍:https://clickhouse.com/docs/en/faq/operations/production/
下载
rpm下载:
https://packages.clickhouse.com/rpm/stable/
由于我们的机器都是生产环境,所以此处选择了rpm的方式安装,提前把安装包下载好,放到安装包下载目录下 (此处我们的机器已经创建无需考虑)(3台机器都需要)

解压后文件目录
安装
台机器都要执行:
rpm -ivh clickhouse-common-static-22.2.2.1-2.x86_64.rpm
rpm -ivh clickhouse-server-22.2.2.1-2.noarch.rpm
rpm -ivh clickhouse-client-22.2.2.1-2.noarch.rpm

在安装 server 时,会提醒输入密码:此处确保3台机器的密码一致,我们密码设置为 root ,后续在配置时需要用到此处的密码。
配置文件
CK的配置主要为config.xml、user.xml 和 metrika.xml这三个。
配置 config.xml
配置文件的 config.xml更改的点,确保3台机器都要改动,并且改动的参数一致。
<?xml version="1.0"?>
<!-- CH的config是热部署的 -->
<clickhouse>
<!-- 端口配置 -->
<http_port>8123</http_port>
<tcp_port>9000</tcp_port>
<interserver_http_port>9009</interserver_http_port>
<!--取消该注释,开启远程访问--> <listen_host>::</listen_host>
<!-- 指定数据存储路径 -->
<path>/data1/clickhouse/</path>
<tmp_path>/data1/clickhouse/tmp/</tmp_path>
<!--
user_files_path:包含用户文件的目录,在表函数file()中使用。--> <user_files_path>
/data1/clickhouse/user_files/ </user_files_path>
<!--用来存储创建的用户和角色--><access_control_path>/data1/clickhouse/access/</access_control_path><!--包含输入格式文件--><format_schema_path>/data1/clickhouse/format_schemas/<format_schema_path><!-- 远程服务器,分布式表引擎和集群表功能使用的集群的配置 -->
<remote_servers incl="clickhouse_remote_servers" />
<distributed_ddl>
<!-- 在ZooKeeper中与DDL查询队列的路径 -->
<path>/clickhouse/task_queue/ddl</path>
</distributed_ddl>
<!-- zk启动 -->
<zookeeper incl="zookeeper-servers" optional="true" />
<!-- 启动macros,并指定地址 -->
<macros incl="macros" optional="true" />
<!--引入metrika.xml-->
<include_from>/etc/clickhouse-server/config.d/metrika.xml</include_from></clickhouse>
配置metrika.xml
在 /etc/clickhouse-server/config.d/ 下面vim 一个metrika.xml ,然后复制粘贴下面的配置。配置文件的 metrika.xml更改的点,确保3台机器都要改动,并且改动的参数一致。
<?xml version="1.0"?>
<clickhouse>
<!--新版的clickhouse集群的首个标签必须是clickhouse,而不是yandex --><!-- 集群配置 -->
<clickhouse_remote_servers>
<!-- 集群名称,确保和config.xml中的<remote_servers incl="clickhouse_remote_servers" />
的incl的中的参数一致-->
<perftest_3shards_1replicas>
<shard>
<!-- 建议一个台机器一个节点,避免资源争夺 -->
<!-- 表示是否只将数据写入其中一个副本,默认为false,表示写入所有副本,在复制表的情况下可能会导致重复和不一致,所以这里一定要改为true。-->
<internal_replication>true</internal_replication>
<!-- 副本配置,ch没有主备之分 -->
<replica>
<host>BD-P-GP01</host>
<port>9000</port>
<user>default</user>
<password>root</password>
</replica>
</shard>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>BD-P-GP02</host>
<port>9000</port>
<user>default</user>
<password>root</password>
</replica>
</shard>
<shard>
<internal_replication>true</internal_replication>
<re实战篇丨ClickHouse初体验之集群搭建指南(上)
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



