ClickHouse安装(集群版)

该文详细介绍了如何在三台机器上搭建ClickHouse集群,包括设置hostname、hosts映射、关闭防火墙和SELinux,安装Zookeeper,以及配置和启动ClickHouse服务。集群规划为三节点,每个节点设置一个副本,并通过zookeeper进行协调。最后,通过clickhouse-client验证了集群的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、准备工作

1、设置hostname

# 三台机器分别执行
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3

2、hosts映射

# 三台机器均执行(根据自己ip进行修改)
vim /etc/hosts
192.168.117.30 node1
192.168.117.31 node2
192.168.117.32 node3

3、关闭防火墙

# 三台机器均执行
systemctl stop firewalld.service
systemctl disable firewalld.service

4、同步时间

# 三台机器均执行
yum install ntpdate
ntpdate ntp5.aliyun.com

5、关闭selinux

# 三台机器均执行
vim /etc/selinux/config
修改为 SELINUX=disabled

6、安装好zookeeper

这里我简单的用docker安装了一个单机版的zookeeper作为测试使用

docker pull zookeeper
docker run -d --name zookeeper --privileged=true -p 2181:2181 zookeeper

7、重启

二、搭建ClickHouse集群

本次集群规划:三台机器组成集群中的三个节点,每个节点设置一个副本

1、下载安装包

可以使用如下地址下载(阿里镜像比较快一些)

https://repo.yandex.ru/clickhouse/rpm/stable/x86_64/

https://mirrors.aliyun.com/clickhouse/rpm/lts/

在这里插入图片描述

2、安装

rpm -ivh clickhouse*

安装过程中需要输入密码,不设置密码直接回车即可
在这里插入图片描述

3、修改配置文件

注:配置文件需要同步到集群中的所有机器
配置文件位置:/etc/clickhouse-server
(1)放开listen_host配置,使clickhouse可以外部访问
在这里插入图片描述
(2)修改**/etc/clickhouse-server/config.xml**

# remote_servers 标签下默认的配置不需要可以删掉
# 添加“incl”,并且名称要和metrika.xml中标签定义名称相同,如下图1对应关系
# 添加“include_from”标签,配置“metrika.xml”路径
# 新建“metrika.xml”文件并编辑内容,内容说明如下图2
<remote_servers incl="clickhouse_button">
<include_from>/etc/clickhouse-server/metrika.xml</include_from>

“incl”值与metrika.xml的对应关系(图1)
在这里插入图片描述
metrika.xml文件配置(图2)
注:metrika.xml文件配置根据自己的集群规划来进行配置即可

<yandex>
    <!-- incl="clickhouse_button"  --> 
    <clickhouse_button>
        <!--  自定义集群名称(自己定义即可)  -->
        <button_cluster>
            <!--  定义集群的分片数量,几个shard标签则说明几个节点  -->
            <shard>
                <!--  定义分片的副本数量,这里只配置了一个,如果需要配置多个,追加replica即可  -->
                <replica>
                    <host>node1</host>
                    <port>9000</port>
                </replica>
            </shard>
            <shard>
                <replica>
                    <host>node2</host>
                    <port>9000</port>
                </replica>
            </shard>
			<shard>
                <replica>
                    <host>node3</host>
                    <port>9000</port>
                </replica>
            </shard>
        </button_cluster>
    </clickhouse_button>
 
    <zookeeper-servers>
	    <!-- zookeeper多个节点追加node配置即可 -->
        <node index="1">
            <host>node1</host>
            <port>2181</port>
        </node>
    </zookeeper-servers>
</yandex>

4、启动

# 启动 ClickHouse
systemctl start clickhouse-server
# 查看 ClickHouse 运行状态,运行状态如下图所示
systemctl status clickhouse-server

在这里插入图片描述

三、验证集群

# 使用clickhouse-client
clickhouse-client --password *****
select cluster,shard_num,replica_num,host_name,port,user from system.clusters;

在这里插入图片描述

### 尚硅谷 ClickHouse 集群安装教程 #### 准备工作 在准备阶段,需确保每台服务器上已准备好必要的环境配置。这包括但不限于操作系统本确认、依赖库的安装以及网络设置调整等[^1]。 #### 安装ClickHouse服务端 对于每一台计划部署ClickHouse节点的机器而言,应当按照官方文档指导完成软件包下载与安装过程。此过程中需要注意选择适合的操作系统平台对应的二进制文件,并遵循特定发行下的具体命令执行流程来实现自动化脚本编写或手动操作。 #### 同步配置文件并重启服务 为了使整个集群能够正常协同工作,在所有参与计算资源池中的成员间保持一致性的参数设定至关重要。因此需要将`config.xml`和`metrika-shard.xml`这两个核心配置文件复制到其他节点(如clickhouse2, clickhouse3),之后通过适当的方式触发各实例的服务重启动作以应用最新的更改[^2]。 ```bash scp /etc/clickhouse-server/config.xml user@ip_clickhouse2:/etc/clickhouse-server/ scp /etc/clickhouse-server/metrika-shard.xml user@ip_clickhouse2:/etc/clickhouse-server/ ssh user@ip_clickhouse2 "sudo systemctl restart clickhouse-server" ``` #### 用户权限管理 合理规划用户的访问控制策略也是构建安全可靠的数据仓库不可或缺的一环。可以通过编辑位于`users.xml`内的相应节段来进行细粒度授权定义,比如指定允许连接地址范围、授予读写权限级别等措施,从而保障数据的安全性和隐私保护[^4]。 #### 测试验证 最后一步则是进行全面的功能测试,确保各个组件之间可以无缝协作。可以从简单的查询请求开始尝试,逐步过渡至复杂场景模拟直至满足业务需求为止。期间如果遇到任何异常情况,则应及时查阅日志记录定位问题根源并加以解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值