1.什么是clickhouse
ClickHouse是第一个真正意义上的开源OLAP数据库管理系统
它是面向列的,允许使用SQL查询实时生成分析报告。
序号 | 特性 | 序号 | 特性 |
---|---|---|---|
1 | 速度快 | 4 | 高效硬件利用 |
2 | 线性扩展 | 5 | 容错 |
3 | 性能丰富 | 6 | 高可用 |
ClickHouse的性能超过了市场上类似的面向列的数据库管理系统。它每台服务器每秒处理数亿到10亿行数据和几百亿字节的数据。
官网地址: https://clickhouse.tech/
2、离线安装部署
2.1 ClickHouse的安装过程
预构建包的系统要求:Linux, x86_64 with SSE 4.2.
ClickHouse支持运行在主流64位CPU架构(X86、AArch和PowerPC)的Linux操作系统之上,可以通过源码编译、预编译压缩包、Docker镜像和RPM等多种方法进行安装。由于篇幅有限,本节着重讲解离线Tga的安装方法。更多的安装方法请参阅官方手册,此处不再赘述。
2.2 环境准备
在这个示例中,演示服务器的操作系统为CentOS Linux release 7.8.2003 (Core)
,而ClickHouse选用21.1.6.13版本。在正式安装之前,我们还需要做一些准备工作。
https://repo.clickhouse.tech/tgz/
https://repo.clickhouse.tech/rpm/stable/x86_64
2.2.1 系统要求
ClickHouse can run on any Linux, FreeBSD, or Mac OS X with x86_64, AArch64, or PowerPC64LE CPU architecture.
通过以下指令检查当前CPU是否支持SSE4.2:
$ grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
如果不支持SSE指令集,则不能直接使用先前下载的预编译安装包,需要通过源码编译特定的版本进行安装。
2.2.2 下载Tgz安装文档
建议对所有Linux发行版使用官方预编译的tgz存档,在这些发行版中不可能安装deb或rpm包。
可以使用curl或wget从存储库下载所需的版本https://repo.clickhouse.tech/tgz/.
下载并解压后执行安装脚本。
如下所示:
export LATEST_VERSION=`curl https://api.github.com/repos/ClickHouse/ClickHouse/tags 2>/dev/null | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -n 1`
curl -O https://repo.clickhouse.tech/tgz/stable//clickhouse-common-static-$LATEST_VERSION.tgz
curl -O https://repo.clickhouse.tech/tgz/stable/clickhouse-common-static-dbg-$LATEST_VERSION.tgz
curl -O https://repo.clickhouse.tech/tgz/stable/clickhouse-server-$LATEST_VERSION.tgz
curl -O https://repo.clickhouse.tech/tgz/stable/clickhouse-client-$LATEST_VERSION.tgz
2.2.3 关闭防火墙
首先,考虑到后续的集群部署,通常建议关闭本机的防火墙,在CentOS 7下关闭防火墙的方法如下:
# 关闭防火墙
systemctl stop firewalled.service
# 禁止开机启动项
systemctl disable firewalled.service
2.2.4 设置FQDN(fully qualified domain name)
现在需要为服务器设置FQDN:
hostnamectl --static set-hostname ck1.bankbigdata.cn
验证修改是否生效:
hostname
最后需要配置hosts文件,配置后的效果如下:
cat /etc/hosts
...
192.168.2.11 ck1.bankbigdata.cn
2.3 安装ClickHouse
2.3.1 安装执行
假设已经将待安装的tgz文件上传到了服务器的/chbase/setup路径下,此时进入该目录
解压安装
tar -xzvf clickhouse-common-static-$LATEST_VERSION.tgz
sudo clickhouse-common-static-$LATEST_VERSION/install/doinst.sh
tar -xzvf clickhouse-common-static-dbg-$LATEST_VERSION.tgz
sudo clickhouse-common-static-dbg-$LATEST_VERSION/install/doinst.sh
tar -xzvf clickhouse-server-$LATEST_VERSION.tgz
sudo clickhouse-server-$LATEST_VERSION/install/doinst.sh
sudo /etc/init.d/clickhouse-server start
tar -xzvf clickhouse-client-$LATEST_VERSION.tgz
sudo clickhouse-client-$LATEST_VERSION/install/doinst.sh
2.3.2 目录结构
程序在安装的过程中会自动构建整套目录结构,接下来分别说明它们的作用。
首先是核心目录部分:
(1)/etc/clickhouse-server:服务端的配置文件目录,包括全局配置config.xml和用户配置users.xml等
(2)/var/lib/clickhouse:默认的数据存储目录(通常会修改默认路径配置,将数据保存到大容量磁盘挂载的路径)。
(3)/var/log/clickhouse-server:默认保存日志的目录(通常会修改路径配置,将日志保存到大容量磁盘挂载的路径)。
2.3.3 修改配置文件
(1)/etc/security/limits.d/clickhouse.conf:文件句柄数量的配置,默认值如下所示。
该配置也可以通过config.xml的max_open_files修改。
(2)/etc/cron.d/clickhouse-server:cron定时任务配置,用于恢复因异常原因中断的ClickHouse服务进程,其默认的配置如下。
*/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服务
如果ClickHouse服务正在运行,则跳过;如果没有运行,则通过start启动。
2.3.4 可执行文件
最后是一组在/usr/bin路径下的可执行文件
(1)clickhouse:主程序的可执行文件。
(2)clickhouse-client:一个指向ClickHouse可执行文件的软链接,供客户端连接使用。(3)clickhouse-server:一个指向ClickHouse可执行文件的软链接,供服务端启动使用。
(4)clickhouse-compressor:内置提供的压缩工具,可用于数据的正压反解。
2.3.5 修改配置启动服务
在启动服务之前,建议修改默认的数据保存目录,将它切换到大容量磁盘挂载的路径。打开config.xml配置文件,修改数据保存的地址:
创建数据存储文件目录:
mkdir -p /opt/chbase/data
修改配置路径:
<!-- Path to data directory, with trailing slash. -->
<path>/opt/chbase/data</path>
<!-- Path to temporary data for processing hard queries. -->
<tmp_path>/opt/chbase/data/tmp/</tmp_path>
<!-- Directory with user provided files that are accessible by 'file' table function. -->
<user_files_path>/opt/chbase/data/user_files/</user_files_path>
需要将该目录(/opt/chbase/data)的Owner设置为clickhouse用户:
chown clickhouse:clickhouse -R ./
# 日志目录设置为clickhouse用户
cd /var/log/clickhouse-server
chown clickhouse:clickhouse -R ./
clickhouse用户由安装程序自动创建,启动脚本会基于此用户启动服务。
在上述准备工作全部完成之后,就可以启动ClickHouse了
sudo -u clickhouse clickhouse-server restart --config-file=/etc/clickhouse-server/config.xml
在启动成功之后,就可以使用客户端测试连接了:密码ch123
clickhouse-client --password
至此,单节点的安装过程就全部完成了。
ps:下一博文讲解Clickhouse客户端的访问接口(CLI&JDBC)