ClickHouse入门实践--安装与部署

单机安装

ClickHouse支持运行在主流64位CPU架构(X86、AArch和PowerPC)的Linux操作系统之上,可以通过源码编译、预编译压缩包、Docker镜像和RPM等多种方法进行安装。由于篇幅有限,本节着重讲解离线RPM的安装方法。更多的安装方法请参阅官方手册,此处不再赘述。

操作系统:centos7.x
ClickHouse版本:19.17.4.11
ClickHouse安装包下载地址:
https://packagecloud.io/altin...
https://repo.yandex.ru/clickh...

需要下载下面四个安装包
clickhouse-client-19.17.4.11-1.el7.x86_64.rpm
clickhouse-common-static-19.17.4.11-1.el7.x86_64.rpm
clickhouse-server-19.17.4.11-1.el7.x86_64.rpm
clickhouse-server-common-19.17.4.11-1.el7.x86_64.rpm

关闭防火墙,检查环境:
systemctl stop firewalld.service
systemctl disable firewalld.service

需要验证当前服务器的CPU是否支持SSE 4.2指令集,因为向量化执行需要用到这项特性:

#grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
SSE 4.2 supported

设置FQDN:
hostnamectl --static set-hostname ch5.nauu.com
验证修改:
hostname -f
ch5.nauu.com

最后需要配置hosts文件,配置后的效果如下:
192.168.59.136 ch5.nauu.com ch5

安装执行
将RPM包上传到/chbase/setup目录下
cd /chbase/setup
rpm -ivh *.rpm

ClickHouse入门实践--安装与部署_第1张图片
如果报错缺少依赖包,需要一一补齐

目录结构

程序在安装的过程中会自动构建整套目录结构,接下来分别说明它们的作用。首先是核心目录部分:
(1)/etc/clickhouse-server:服务端的配置文件目录,包括全局配置config.xml和用户配置users.xml等。
(2)/var/lib/clickhouse:默认的数据存储目录(通常会修改默认路径配置,将数据保存到大容量磁盘挂载的路径)。
(3)/var/log/clickhouse-server:默认保存日志的目录(通常会修改路径配置,将日志保存到大容量磁盘挂载的路径)。

接着是配置文件部分:
(1)/etc/security/limits.d/clickhouse.conf:文件句柄数量的配置,默认值如下所示。

ClickHouse入门实践--安装与部署_第2张图片

该配置也可以通过config.xml的max_open_files修改。
(2)/etc/cron.d/clickhouse-server:cron定时任务配置,用于恢复因异常原因中断的ClickHouse服务进程,其默认的配置如下。
ClickHouse入门实践--安装与部署_第3张图片

可以看到,在默认的情况下,每隔10秒就会使用condstart尝试启动一次ClickHouse服务,而condstart命令的启动逻辑如下所示。
image.png

如果ClickHouse服务正在运行,则跳过;如果没有运行,则通过start启动。最后是一组在/usr/bin路径下的可执行文件:
(1)clickhouse:主程序的可执行文件。
(2)clickhouse-client:一个指向ClickHouse可执行文件的软链接,供客户端连接使用。
(3)clickhouse-server:一个指向ClickHouse可执行文件的软链接,供服务端启动使用。
(4)clickhouse-compressor:内置提供的压缩工具,可用于数据的正压反解。

启动服务

在启动服务之前,建议修改默认的数据保存目录,将它切换到大容量磁盘挂载的路径。打开config.xml配置文件,修改数据保存的地址:
vim /etc/clickhouse-server/config.xml
ClickHouse入门实践--安装与部署_第4张图片

安装过程中clickhouse用户已经被创建,
usermod -s /bin/bash clickhouse

在root用户下启动:
ClickHouse入门实践--安装与部署_第5张图片

在启动成功之后,就可以使用客户端测试连接了:
clickhouse-client
ClickHouse入门实践--安装与部署_第6张图片

到此,单节点安装结束。

版本升级
在使用离线RPM安装包安装后,可以直接通过rpm命令升级:
ClickHouse入门实践--安装与部署_第7张图片

客户端的访问接口

ClickHouse的底层访问接口支持TCP和HTTP两种协议,其中,TCP协议拥有更好的性能,其默认端口为9000,主要用于集群间的内部通信及CLI客户端;而HTTP协议则拥有更好的兼容性,可以通过REST服务的形式被广泛用于JAVA、Python等编程语言的客户端,其默认端口为8123。通常而言,并不建议用户直接使用底层接口访问ClickHouse,更为推荐的方式是通过CLI和JDBC这些封装接口,因为它们更加简单易用。

CLI(Command Line Interface)即命令行接口,其底层是基于TCP接口进行通信的,是通过clickhouse-client脚本运行的。它拥有两种执行模式。

重要参数
(1)--host / -h:服务端的地址,默认值为localhost。如果修改了config.xml内的listen_host,则需要依靠此参数指定服务端地址,例如下面所示的代码。
image.png

用Datagrip链接clickhouse:

ClickHouse入门实践--安装与部署_第8张图片
用户default 密码默认为空,数据库default

JDBC连接
ClickHouse支持标准的JDBC协议,底层基于HTTP接口通信。使用下面的Maven依赖,即可为Java程序引入官方提供的数据库驱动包:
ClickHouse入门实践--安装与部署_第9张图片

标准形式
标准形式是我们常用的方式,通过JDK原生接口获取连接,其关键参数如下:
JDBC Driver Class为ru.yandex.clickhouse.ClickHouseDriver;
JDBC URL为jdbc:clickhouse://:[/]。接下来是一段伪代码用例:

ClickHouse入门实践--安装与部署_第10张图片

高可用模式
高可用模式允许设置多个host地址,每次会从可用的地址中随机选择一个进行连接,其URL声明格式如下:
image.png

你可能感兴趣的:(大数据)