目录
2.1.3 yum install 下载安装clickhouse
系统环境描述:本教程基于CentOS 8.0版本虚拟机
ClickHose集群规划:
节点 | ClickHouse-server | ClickHouse-client | zookeeper | IP |
master | 192.168.31.215 | |||
node1 | 192.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安装包方式安装
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
sudo yum install -y clickhouse-server clickhouse-client
分别在node2、node3、node4节点的/etc/clickhouse-server/config.xml文件下,
<listen_host>0.0.0.0</listen_host>
配置成所有地址可访问
mkdir -pv /opt/clickhouse/{data,tmp}
chown -R clickhouse:clickhouse /opt/clickhouse/
提示:这里需要授权下新建的目录,不然可能会导致服务启动异常
- <path>/opt/clickhouse/data/path>
-
- <tmp_path>/opt/clickhouse/tmp/tmp_path>
- 查询下文件里面的默认端口:9000,替换成7000,我这里修改是因为9000端口和我的hadoop集群端口冲突了,如果没有端口冲突,可忽略。
- <tcp_port>7000</tcp_port>
- <include_from>/etc/clickhouse-server/config.d/metrika.xml</include_from>
- <zookeeper incl="zookeeper-servers" optional="false" />
分别在node2、node3、node4节点/etc/clickhouse-server/config.d/目录下创建metrika.xml文件
touch metrika.xml
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配置文件配置集群接副本分片的标签是
select * from system.clusters; 查询,会查询不到集群的信息。
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配置名称。
分别在node2、node3、node4节点上,启动clickhouse服务。
启动指令:
service clickhouse-server start
通过netstat -anp | grep 7000指令探测端口是否被监听占用,从图上可知,我们的7000端口,被clickhouse-server程序占用,表明服务启动成功。
在node2、node3、node4任意一台节点进入clickhouse客户端
clickhouse-client --port 7000
select * from system.clusters;
显示如上信息,集群成功。
好了,今天ClickHouse分布式集群部署的相关内容就分享到这里,如果帮助到大家,欢迎大家点赞+关注+收藏,有疑问也欢迎大家评论留言!