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数据库,里面存放了系统中文件与目录的相关信息。
使用过程中问题补充:
用户在使用过程中发现查询数据为空的情况,排查发现是字段大小写不统一的问题,关于数据库的大小写是否感的问题,暂时还未搞清楚,后续搞清楚后,我会进行补充。