ClickHouse支持运行在主流64位CPU架构(X86、AArch和PowerPC)的Linux操作系统之上,可以通过源码编译、预编译压缩包、Docker镜像和RPM等多种方法进行安装。本文着重讲解离线RPM的安装方法。
1.下载RPM安装包
需要下载三个安装包:
clickhouse-client-20.8.7.15-2.noarch.rpm
clickhouse-server-20.8.7.15-2.noarch.rpm
clickhouse-common-static-20.8.7.15-2.x86_64.rpm
下载地址:https://repo.yandex.ru/clickhouse/rpm/stable/x86_64/
clickhouse-client:创建clickhouse-client客户端工具软连接,并安装客户端配置文件
clickhouse-server:创建clickhouse-server软连接,并安装默认配置服务
clickhouse-common-static:ClickHouse编译的二进制文件
2.安装
[hadoop@prod-hbase-pp-slave005 ~]$ sudo rpm -ivh clickhouse-common-static-20.8.7.15-2.x86_64.rpm
warning: clickhouse-common-static-20.8.7.15-2.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID e0c56bd4: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:clickhouse-common-static-20.8.7.1################################# [100%]
[hadoop@prod-hbase-pp-slave005 ~]$ sudo rpm -ivh clickhouse-server-20.8.7.15-2.noarch.rpm
warning: clickhouse-server-20.8.7.15-2.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID e0c56bd4: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:clickhouse-server-20.8.7.15-2 ################################# [100%]
Path to data directory in /etc/clickhouse-server/config.xml: /var/lib/clickhouse/
[hadoop@prod-hbase-pp-slave005 ~]$ sudo rpm -ivh clickhouse-client-20.8.7.15-2.noarch.rpm
warning: clickhouse-client-20.8.7.15-2.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID e0c56bd4: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:clickhouse-client-20.8.7.15-2 ################################# [100%]
3.启动服务
[hadoop@prod-hbase-pp-slave005 ~]$ sudo service clickhouse-server start
Start clickhouse-server service: Path to data directory in /etc/clickhouse-server/config.xml: /var/lib/clickhouse/
DONE
4.测试
[hadoop@prod-hbase-pp-slave005 ~]$ clickhouse-client
ClickHouse client version 20.8.7.15 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.8.7 revision 54438.
prod-hbase-pp-slave005 :) show databases;
SHOW DATABASES
┌─name───────────────────────────┐
│ _temporary_and_external_tables │
│ default │
│ system │
│ test │
└────────────────────────────────┘
4 rows in set. Elapsed: 0.002 sec.
5.目录结构
程序在安装的过程中会自动构建整套目录结构,接下来分别说明它们的作用。具体参数修改会在后续高级篇展开。
核心目录部分:
- /etc/clickhouse-server:服务端的配置文件目录,包括全局配置config.xml和用户配置users.xml等。
- /var/lib/clickhouse:默认的数据存储目录(通常会修改默认路径配置,将数据保存到大容量磁盘挂载的路径)。
- /var/log/clickhouse-server:默认保存日志的目录(通常会修改路径配置,将日志保存到大容量磁盘挂载的路径)。
配置文件部分:
- /etc/security/limits.d/clickhouse.conf:文件句柄数量的配置,默认值如下所示。
[root@prod-hbase-pp-slave005 hadoop]# cat /etc/security/limits.d/clickhouse.conf
clickhouse soft nofile 262144
clickhouse hard nofile 262144
该配置也可以通过config.xml的max_open_files修改。
- /etc/cron.d/clickhouse-server:cron定时任务配置,用于恢复因异常原因中断的ClickHouse服务进程,其默认的配置如下。
[root@prod-hbase-pp-slave005 hadoop]# cat /etc/cron.d/clickhouse-server
#*/10 * * * * root (which service > /dev/null 2>&1 && (service clickhouse-server condstart ||:)) || /etc/init.d/clickhouse-server condstart > /dev/null 2>&1
可以看到,在默认的情况下,每隔10秒就会使用condstart尝试启动一次ClickHouse服务,而condstart命令的启动逻辑如下所示。
is_running || service_or_func start
如果ClickHouse服务正在运行,则跳过;如果没有运行,则通过start启动。
/usr/bin路径下的可执行文件:
- clickhouse:主程序的可执行文件。
- clickhouse-client:一个指向ClickHouse可执行文件的软链接,供客户端连接使用。
- clickhouse-server:一个指向ClickHouse可执行文件的软链接,供服务端启动使用。
- clickhouse-compressor:内置提供的压缩工具,可用于数据的正压反解。
注:
官方预构建的二进制文件通常针对x86_64进行编译,并利用SSE 4.2指令集,因此,除非另有说明,支持它的CPU使用将成为额外的系统需求。下面是检查当前CPU是否支持SSE 4.2的命令:
$ grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
一般在虚拟机上可能会存在不支持SSE 4.2指令集的情况,可以通过适当的配置调整从源代码构建ClickHouse,参考:https://clickhouse.tech/docs/zh/getting-started/install/#from-sources,或者调整虚拟机配置以支持SSE 4.2指令集。