ClickHouse部署总结

Posted by Zhb on February 8, 2022

ClickHouse部署总结

背景:

项目前期使用的是国产OLTP数据库(Oscar),在进行数据分析及数据展示时遇到性能瓶颈,因此想要切换到OLAP数据库进行数分析,神通也有类似的数据分析产品(mpp数据库)涉及到资源协调等原因,于是决定先部署一台ClickHouse 数据库满足年底出数的要求。

知识补充:

数据处理可以分为OLTP(联机事务处理)和OLAP(联机分析处理)两大类。

OLTP一般用于处理客户的事务和进行查询,需要随时对数据表中的记录进行增删改查,对实时性要求高。

OLAP一般用于市场的数据分析,通常数据量大,需要进行复杂的分析操作,可以对大量历史数据进行汇总和分析,对实时性要求不高。

那么对于OLTP来说,由于随时需要对数据记录进行增删改查,更适合采用行式存储,因为一行数据的写入会同时修改多个列。传统的RDBMS都属于行式存储,比如Oracle、SQL Server和MySQL等。

对于OLAP来说,由于需要对大量历史数据进行汇总和分析,则适合采用列式存储,这样的话汇总数据会非常快,但是对于插入(INSERT)和更新(UPDATE)会比较麻烦,相比于行式存储性能会差不少。

所以说列式存储适合大批量数据查询,可以降低I/O,但如果对实时性要求高,则更适合行式存储。

现在让我们正式进入部署的学习吧!

安装前准备工作

1.关闭防火墙

service iptables stop  关闭防火墙;

2.在两个文件中分别加入以下内容

sudo vim /etc/security/limits.conf
sudo vim /etc/security/limits.d/90-nproc.conf
 soft    nofile            65536
    hard    nofile            65536
    soft    nproc             131072
    hard    nproc             131072 **3.永久关闭selinux**
vi /etc/selinux/config
将:SELINUX=enforcing改为SELINUX=disabled

4.进行部署

部署方式有两种,一种是在线安装,一种是rpm包的方式进行安装。

在线安装

sudo yum install yum-utils 
sudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG 
sudo yum-config-manager –add repo https://repo.clickhouse.tech/rpm/stable/x86_64
sudo yum install clickhouse-server clickhouse-client
sudo service clickhouse-server start
clickhouse-client

离线安装

1.下载rpm安装包

https://mirrors.tuna.tsinghua.edu.cn/clickhouse/rpm/stable/x86_64/
我下载的是如下三个包(网站包很多,直接复制名字搜索)
clickhouse-client-21.6.6.51-2.noarch.rpm
clickhouse-common-static-21.6.6.51-2.x86_64.rpm
clickhouse-server-21.6.6.51-2.noarch.rpm

2.安装

rpm -ivh *.rpm 

这里会提示输入默认的密码,可以直接回车 不需要密码,后面单独对用户进行设置密码。 如果遇到提示文件不存在的情况,需要给新文件的文件添加权限。

命令: chmod +x *.rpm

服务启动和停止

service start clickhouse-server
service stop clickhouse-server
service status clickhouse-server

若service启动过程报错为:Init script is already running,则使用systemctl方式启动.(centos 7需要使用systemctl启动)

systemctl start clickhouse-server
systemctl stop clickhouse-server

5.登陆

没有设置密码:clickhouse-client
设置了密码:clickhouse-client -h 127.0.0.1 -d default -m -u default --password 12345

6.配置远程登录

vi /etc/clickhouse-server/config.xml
找到<listent_host>::</listen_host> 去掉注释,并修改为
<listent_host>0.0.0.0</listen_host> 

7.重启动

systemctl stop clickhouse-server.service
systemctl start clickhouse-server.service
systemctl status clickhouse-server.service

安装过程中的问题补充:

在安装过程中给出现了rpm命令失效的问题解决方案如下

RPM命令执行失败:bash: rpm: 未找到命令...
在rpm执行正常的系统的找到这三个文件并放入故障系统的放入对应目录下。
目录如下:
/bin/rpm
/usr/lib/rpm/rpmrc
/usr/lib/rpm/macros

执行updatedb命令 //更新slocate数据库,里面存放了系统中文件与目录的相关信息。

使用过程中问题补充:

用户在使用过程中发现查询数据为空的情况,排查发现是字段大小写不统一的问题,关于数据库的大小写是否感的问题,暂时还未搞清楚,后续搞清楚后,我会进行补充。