ClickHouse分布式集群部署

目录

​编辑

一、环境说明

二、安装部署

2.1 RPM方式安装

2.1.1 安装yum-utils

2.1.2 配置yum repo源

2.1.3 yum install 下载安装clickhouse

2.2 信息配置

2.2.1 配置外网可访问地址

2.2.2 修改存储路径

2.2.2.1 新建存储目录

2.2.2.2 授权

2.2.2.3 修改配置

2.2.3 修改服务端口

2.2.4 修改配置文件目录

2.2.5 配置metrika.xml文件

2.2.5.1 创建metrika.xml文件

2.2.5.2 添加配置信息

2.2.5.3 配置说明

2.3 启动服务

2.4 检查集群配置是否完成

2.4.1 登录clickehouse

2.4.2 查询集群信息


一、环境说明

系统环境描述:本教程基于CentOS 8.0版本虚拟机

ClickHose集群规划:

节点ClickHouse-serverClickHouse-clientzookeeperIP
master192.168.31.215
node1192.168.31.8
node2***192.168.31.9
node3**192.168.31.167
node4**192.168.31.154

软件版本说明:

ClickHouse     23.8.2.7
jdk    1.8.0_211
zookeeper    3.8.2

提示:本次部署需要的zookeeper,我使用的是Hadoop集群中的,关于zookeeper的部署,这里不做描述。

二、安装部署

按照ClickHouse 官网文档说明显示,ClickHouse 的安装可有RPM安装包安装、Tgz安装包安装、DEB安装包安装、Docker安装包安装、使用源码安装等方式,本次我们使用RPM安装包方式安装

2.1 RPM方式安装

2.1.1 安装yum-utils

sudo yum install -y yum-utils

2.1.2 配置yum repo源

sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo

2.1.3 yum install 下载安装clickhouse

sudo yum install -y clickhouse-server clickhouse-client

2.2 信息配置

2.2.1 配置外网可访问地址

分别在node2、node3、node4节点的/etc/clickhouse-server/config.xml文件下,<listen_host>标签,如下:

<listen_host>0.0.0.0</listen_host>

配置成所有地址可访问

2.2.2 修改存储路径

2.2.2.1 新建存储目录
mkdir  -pv /opt/clickhouse/{data,tmp}
2.2.2.2 授权
chown  -R  clickhouse:clickhouse /opt/clickhouse/

提示:这里需要授权下新建的目录,不然可能会导致服务启动异常

2.2.2.3 修改配置
<!-- Path to data directory, with trailing slash. -->
<path>/opt/clickhouse/data/</path>  <!-- 修改存储路径 -->

<!-- Path to temporary data for processing hard queries. -->
<tmp_path>/opt/clickhouse/tmp/</tmp_path>  

2.2.3 修改服务端口

查询下文件里面的默认端口:9000,替换成7000,我这里修改是因为9000端口和我的hadoop集群端口冲突了,如果没有端口冲突,可忽略。
<tcp_port>7000</tcp_port>

2.2.4 修改配置文件目录

<include_from>/etc/clickhouse-server/config.d/metrika.xml</include_from>
<zookeeper incl="zookeeper-servers" optional="false" />

2.2.5 配置metrika.xml文件

2.2.5.1 创建metrika.xml文件

分别在node2、node3、node4节点/etc/clickhouse-server/config.d/目录下创建metrika.xml文件

touch metrika.xml
2.2.5.2 添加配置信息

vim metrika.xml

添加如下配置信息:

<yandex>
    <remote_servers>
        <clickhouse_cluster_3shards_1replicas>
            <shard>
                <internal_replication>true</internal_replication>
                <replica>
                    <host>node2</host>
                    <port>7000</port>
                </replica>
            </shard>
            <shard>
                <replica>
                    <internal_replication>true</internal_replication>
                    <host>node3</host>
                    <port>7000</port>
                </replica>
            </shard>
            <shard>
                <internal_replication>true</internal_replication>
                <replica>
                    <host>node4</host>
                    <port>7000</port>
                </replica>
            </shard>
        </clickhouse_cluster_3shards_1replicas>
    </remote_servers>
   
    <zookeeper-servers>
        <node index="1">
            <host>node2</host>
            <port>2181</port>
        </node>
        <node index="2">
            <host>node3</host>
            <port>2181</port>
        </node>
        <node index="3">
            <host>node4</host>
            <port>2181</port>
        </node>
    </zookeeper-servers>
    <macros>
        <replica>01</replica>
    </macros>
    <networks>
        <ip>::/0</ip>
    </networks>
    <clickhouse_compression>
        <case>
            <min_part_size>10000000000</min_part_size>
            <min_part_size_ratio>0.01</min_part_size_ratio>
            <method>lz4</method>
        </case>
    </clickhouse_compression>
</yandex>

注意:由于clickhouse 的版本更新较块,在以前的版本中,metrika.xml配置文件配置集群接副本分片的标签是<clickhouse_remote_servers>,新版本有做修改,标签变成<remote_servers>,如果还使用以前的<clickhouse_remote_servers>标签,登录客户端后执行
select * from system.clusters; 查询,会查询不到集群的信息。

2.2.5.3 配置说明

clickhouse_remote_servers:
clickhouse集群配置标签,固定写法(后续版本改成了remote_servers)。

clickhouse_cluster_3shards_1replicas:
配置clickhouse的集群名称,可自由定义名称,注意集群名称中不能包含点号。这里代表集群中有3个分片,每个分片有1个副本。
分片是指包含部分数据的服务器,要读取所有的数据,必须访问所有的分片。
副本是指存储分片备份数据的服务器,要读取所有的数据,访问任意副本上的数据即可。

shard:
分片,一个clickhouse集群可以分多个分片,每个分片可以存储数据,这里分片可以理解为clickhouse机器中的每个节点。
这里可以配置一个或者任意多个分片,在每个分片中可以配置一个或任意多个副本,不同分片可配置不同数量的副本。如果只是配置一个分片,这种情况下查询操作应该称为远程查询,而不是分布式查询。

replica:
每个分片的副本,默认每个分片配置了一个副本。也可以配置多个。如果配置了副本,读取操作可以从每个分片里选择一个可用的副本。如果副本不可用,会依次选择下个副本进行连接。该机制利于系统的可用性。

internal_replication:
默认为false,写数据操作会将数据写入所有的副本,设置为true,写操作只会选择一个正常的副本写入数据,数据的同步在后台自动进行。

zookeeper-servers:
配置的zookeeper集群

macros:
区分每台clickhouse节点的宏配置,每台clickhouse需要配置不同名称。

networks:
这里配置ip为“::/0”代表任意IP可以访问,包含IPv4和IPv6。
注意:允许外网访问还需配置/etc/clickhouse-server/config.xml 参照第三步骤。

clickhouse_compression:
MergeTree引擎表的数据压缩设置,
min_part_size:代表数据部分最小大小。
min_part_size_ratio:数据部分大小与表大小的比率。
method:数据压缩格式。
注意:需要在每台clickhouse节点上配置metrika.xml文件,并且修改每个节点的 macros配置名称。

2.3 启动服务

分别在node2、node3、node4节点上,启动clickhouse服务。
启动指令:

service clickhouse-server start

通过netstat -anp | grep 7000指令探测端口是否被监听占用,从图上可知,我们的7000端口,被clickhouse-server程序占用,表明服务启动成功。

2.4 检查集群配置是否完成

在node2、node3、node4任意一台节点进入clickhouse客户端

2.4.1 登录clickehouse

clickhouse-client --port 7000

2.4.2 查询集群信息

select * from system.clusters;

显示如上信息,集群成功。

好了,今天ClickHouse分布式集群部署的相关内容就分享到这里,如果帮助到大家,欢迎大家点赞+关注+收藏,有疑问也欢迎大家评论留言!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
点击House是一个开源的分布式列式数据库管理系统,它可以用于大规模数据存储和分析。下面是一个简单的点击House集群部署的步骤: 1. 确保你有足够的物理或虚拟机器来构建一个集群。每个节点都应该具有足够的内存、磁盘空间和计算资源来处理你的数据和查询负载。 2. 下载和安装点击House软件包。你可以从点击House官方网站或GitHub页面下载最新版本的软件包。 3. 配置主节点。编辑主节点的配置文件,指定主节点的IP地址、端口号和其他必要的配置选项。 4. 配置从节点。编辑从节点的配置文件,指定从节点的IP地址、端口号和其他必要的配置选项。 5. 启动主节点和从节点。在每个节点上运行点击House服务,启动主节点和从节点。确保节点之间可以互相通信。 6. 配置集群。在主节点上运行点击House客户端,使用命令行工具或Web界面配置集群。指定从节点的IP地址和端口号,并设置副本数和其他复制选项。 7. 创建表和导入数据。使用点击House客户端创建表,并将数据导入到表中。你可以使用SQL语句或命令行工具来执行这些操作。 8. 运行查询。使用点击House客户端执行查询操作。你可以编写SQL查询语句来分析和查询你的数据。 请注意,这只是一个简单的点击House集群部署的概述。实际部署过程可能会因你的环境和需求而有所不同。强烈建议参考点击House官方文档和社区资源,以获取更详细的部署指南和最佳实践。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值