zl程序教程

您现在的位置是:首页 >  工具

当前栏目

ClickHouse管理工具—ckman教程(3)从ckman源码分析部署集群时的主要步骤

2023-09-14 09:15:29 时间

CKman(ClickHouse Manager)是由擎创科技自主研发的一款管理ClickHouse的工具,前端用Vue框架,后端使用Go语言编写。它主要用来管理ClickHouse集群、节点以及数据监控等,致力于服务ClickHouse分布式的操作以及管理。同时提供简单的数据查询窗口。

本系列文章将逐步介绍ckman从安装到使用的详细教程,今天分享给大家的是从CKman源码分析部署集群时的主要步骤:

CKman系列教程3

函数入口:DeployCk
1. 参数校验
   判断集群名是否已经存在(clusters.json)
   解析简写的ip列表,根据是否支持副本判断ip列表个数的奇偶是否符合规范
   检查路径的权限(是否存在,clickhouse是否可访问)
   存储策略相关的校验(略)

2. 部署
   1)Init
       cat /proc/meminfo | grep MemTotal | awk {print $2} 取各节点的内存大小
       test -f /proc/net/if_inet6; echo $? 判断是否支持ipv6
       hostname -f 取各节点的hostname
   2)Prepare
       将client,server,common三个rpm安装包拷贝到各节点上(并发操作)上传到各节点的rpm目录下
   3)Install
       systemctl stop clickhouse-server  防止以前还有其他运行的ck服务
       DEBIAN_FRONTEND=noninteractive rpm --force --nosignature -ivh xxxclientxxx.rpm xxxserverxxx.rpm xxxcommonxxx.rpm
       删除原有的数据目录,并重新创建,修改所有权为clickhouse用户。

4)Config
       metrika.xml   集群相关的配置(各节点一样,对逻辑集群有特殊处理,此处先略过)
       custom.xml    ckman做的一些特殊的优化配置(各节点一样)
       users_xxx.xml  用户相关的配置(各节点一样)
       profiles.xml   用户资源配置相关(各节点不一样)
       host.xml       各个节点自己的配置(各节点不一样)
       -----------------------
            ckman早期版本中,是提前准备好一个模板,然后将其中的关键字替换掉,形成最终的配置文件,但这样有个缺点就是不好做各个ck版本之间的兼容,因此,在2.1.2版本之后,放弃了模板,利用ck自身对配置文件的merge行为,将所有的配置文件都配置在config.d 和users.d下面,在ck服务启动时,最终merge到/data01/clickhouse/preprocessed_configs/目录下的config.xml和users.xml中
   5)Start
       systemctl start clickhouse-server
   6)Check
       使用client分别连接到各节点,看是否能登录得上