clickhouse 简单集群搭建

本文详细介绍了如何搭建ClickHouse集群,包括安装软件、配置修改、环境调整和初始化脚本执行。通过修改metrika.xml和config.xml文件配置集群节点,确保所有服务器的hosts文件正确,并创建分布式表。在完成所有步骤后,重启服务并验证集群设置。注意所有服务器需执行初始化脚本才能正常运行,否则可能出现连接拒绝错误。
摘要由CSDN通过智能技术生成

搭建步骤总结

1.安装软件
2.环境修改
3.配置修改,重启服务器载入配置
4.每台服务器执行初始化脚本

详细搭建说明

服务器列表

IP本地域名
192.168.2.151ch1.cttic.cn
192.168.2.153ch3.cttic.cn
192.168.2.41ch7.cttic.cn

集群搭建

软件离线安装

请查看博文

配置修改

metrika.xml文件
#该配置复制到/etc/目录下,clickhouse启动的时候会自动读取
<yandex>
    <!--自定义配置名,与config.xml配置的incl属性对应即可 -->
    <clickhouse_remote_servers>
        <ch_cluster> #集群名称
			<node>
				<host>ch3.cttic.cn</host>
				<port>9000</port>
			</node>
			<node>
				<host>ch1.cttic.cn</host>
				<port>9000</port>
			</node>
			<node>
				<host>ch7.cttic.cn</host>
				<port>9000</port>
			</node>
        </ch_cluster>
    </clickhouse_remote_servers>
	
	<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>
config.xml
	#vi /etc/clickhouse-server/config.xml
	
	#配置太多,已省略无改动配置
	...
	#配置监听端口,不然其他机器访问不了
    <listen_host>::1</listen_host>
    <listen_host>0.0.0.0</listen_host>
	...
    #修改数据存储目录
    <path>/data/ch/data/</path>
    #修改临时存储目录
    <tmp_path>/data/ch/tmp/</tmp_path>
	...
    <remote_servers incl="clickhouse_remote_servers" >
    #移除这里的所有内容
    </remote_servers>
	...

环境修改

1.关闭防火墙或者开放clickhouse使用的所有端口(8123,9000等)
2.各个服务器的/etc/hosts文件都需要添加对应的本地域名

#vi  /etc/hosts,添加本地域名
...
192.168.2.151 ch1.cttic.cn
192.168.2.153 ch3.cttic.cn
192.168.2.41 ch7.cttic.cn
...

初始化脚本

CREATE TABLE IF NOT EXISTS testDB.test_data_local (
	create_time Datetime,
	...
) ENGINE = MergeTree()
ORDER BY (...)
PARTITION BY toDate(create_time);  #按天分区存储

#分布式引擎参数:配置文件中的集群名,远程数据库名,远程表名,数据分片键
#配置文件中的集群名和metrika.xml定义的集群名称必须对应
CREATE TABLE testDB.test_data_all AS testDB.test_data_local 
ENGINE = Distributed(ch_cluster,testDB,test_data_local,rand());

重启服务

clickhouse restart

验证结果

clickhouse-client  --query  "SELECT * FROM system.clusters"

#应该会有以下输出
ch_cluster      1       1       1       ch3.cttic.cn    192.168.2.153   9000    0       default         0       0
ch_cluster      2       1       1       ch1.cttic.cn    192.168.2.151   9000    0       default         0       0
ch_cluster      3       1       1       ch7.cttic.cn    192.168.2.41    9000    1       default         0       0


注意事项

必须要集群所有服务器都执行了初始化脚本之后,才可以进行查询或者写入操作,不然会提示以下错误

Code: 210, e.displayText() = DB::NetException: Connection refused (ch3.cttic.cn:9000) (version 20.9.2.20 (official build))

遇到的问题

  1. 网上的都是通过service clickhouse stop/start命令,但是在我测试里面无效每次执行都只是提示 Init script is already running,然后没其他动静,不知道是不是版本差异导致的

参考链接

分布式表引擎
配置文件
参考文章

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜晓码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值