Centos7安装Clickhouse单节点部署

🎈 作者:互联网-小啊宇

🎈 简介: CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作,擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护等领域。

🎈 博客首页:CSDN【互联网-小阿宇】阿里云【互联网-小阿宇】

🎈 欢迎小伙伴们点赞 👍、收藏 ⭐、留言💬

Centos7安装Clickhouse单节点部署

⭐Clihouse简介

一、clickhouse简介

ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的用于在线分析处理查询(OLAP :Online Analytical Processing)MPP架构的列式存储数据库(DBMS:Database Management System),能够使用 SQL 查询实时生成分析数据报告。ClickHouse的全称是Click Stream,Data WareHouse。

clickhouse可以做用户行为分析,流批一体

线性扩展和可靠性保障能够原生支持 shard + replication

clickhouse没有走hadoop生态,采用 Local attached storage 作为存储

二、clickhouse特点

1、列式存储:

行式存储的好处:

想查找某个人所有的属性时,可以通过一次磁盘查找加顺序读取就可以;但是当想查所有人的年龄时,需要不停的查找,或者全表扫描才行,遍历的很多数据都是不需要的。

列式存储的好处

对于列的聚合、计数、求和等统计操作优于行式存储

由于某一列的数据类型都是相同的,针对于数据存储更容易进行数据压缩,每一列选择更优的数据压缩算法,大大提高了数据的压缩比重

数据压缩比更好,一方面节省了磁盘空间,另一方面对于cache也有了更大的发挥空间

列式存储不支持事务

2、DBMS功能:几乎覆盖了标准 SQL 的大部分语法,包括 DDL 和 DML、,以及配套的各种函数;用户管理及权限管理、数据的备份与恢复

3、多样化引擎:目前包括合并树、日志、接口和其他四大类20多种引擎。

4、高吞吐写入能力:

ClickHouse采用类LSM Tree的结构,数据写入后定期在后台Compaction。通过类 LSM tree的结构, ClickHouse在数据导入时全部是顺序append写,写入后数据段不可更改,在后台compaction时也是多个段merge sort后顺序写回磁盘。顺序写的特性,充分利用了磁盘的吞吐能力。

5、数据分区与线程及并行:

ClickHouse将数据划分为多个partition,每个partition再进一步划分为多个index granularity(索引粒度),然后通过多个CPU核心分别处理其中的一部分来实现并行数据处理。在这种设计下, 单条 Query 就能利用整机所有 CPU。 极致的并行处理能力,极大的降低了查询延时。

所以, ClickHouse 即使对于大量数据的查询也能够化整为零平行处理。但是有一个弊端就是对于单条查询使用多cpu,就不利于同时并发多条查询。所以对于高 qps 的查询业务并不是强项。

6、ClickHouse 像很多 OLAP 数据库一样,单表查询速度优于关联查询,而且 ClickHouse的两者差距更为明显。

关联查询:clickhouse会将右表加载到内存。

三、clickhouse为什么快?

C++可以利用硬件优势

摒弃了hadoop生态

数据底层以列式存储

利用单节点的多核并行处理

为数据建立索引一级、二级、稀疏索引

使用大量的算法处理数据

支持向量化处理

预先设计运算模型-预先计算

分布式处理数据

四、引擎作用:

表引擎是 ClickHouse 的一大特色。可以说, 表引擎决定了如何存储表的数据。包括:

数据的存储方式和位置

支持哪些查询以及如何支持

并发数据访问

索引的使用

是否可以执行多线性请求

数据复制参数

五、ClickHouse引擎:

引擎决定了数据的存储位置、存储结构、表的特征(是否修改操作DDL、DDL、是否支持并发操作)

1、数据库引擎:数据库引擎 | ClickHouse文档

目前支持的数据库引擎有5种:

Ordinary:默认引擎,在绝大多数情况下我们都会使用默认引擎,使用时无须刻意声明。在此数据库下可以使用任意类型的表引擎。

Dictionary:字典引擎,此类数据库会自动为所有数据字典创建它们的数据表

Memory:内存引擎,用于存放临时数据。此类数据库下的数据表只会停留在内存中,不会涉及任何磁盘操作,当服务重启后数据会被清除

Lazy:日志引擎,此类数据库下只能使用Log系列的表引擎

MySQL:MySQL引擎,将远程的MySQL服务器中的表映射到ClickHouse中,常用语数据的合并。

MaterializeMySQL:MySQL数据同步;将MySQL数据全量或增量方式同步到clickhouse中,解决mysql服务并发访问压力过大的问题

2、表引擎:表引擎 | ClickHouse文档

⭐单节点clickhouse部署

一、服务器环境

操作系统 规格配置 服务 模式
Centos7.5 2C4G clickhouse 单节点

二、部署流程

1、关闭防火墙&沙盒

关闭防火墙并关闭开机自启动

bash 复制代码
systemctl stop firewalld && systemctl disable firewalld

查看selinux状态是否为disabled,否则修改

bash 复制代码
[root@localhost ~]# getenforce
Enforcing

修改为disabled

bash 复制代码
vim /etc/selinux/config
#修改
SELINUX=disabled
#重启生效
reboot

2、修改打开文件数限制

在 /etc/security/limits.conf文件的末尾加入以下内容

bash 复制代码
vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

在/etc/security/limits.d/20-nproc.conf文件的末尾加入以下内容

bash 复制代码
vim /etc/security/limits.d/20-nproc.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

3、安装依赖

bash 复制代码
yum install -y libtool
yum install -y *unixODBC*

4、Clickhouse安装包的下载

  • 下载地址:Clickhouse安装包
  • 下载四个RPM文件:client、server、common-static、server-common
  • 我下载的版本:

5、创建clickhouse目录

bash 复制代码
mkdir -p /data/clickhouse
将四个RPM上传

6、RPM安装

按照顺序依次安装

bash 复制代码
rpm -ivh clickhouse-common-static-20.8.3.18-1.el7.x86_64.rpm 
rpm -ivh clickhouse-server-common-20.8.3.18-1.el7.x86_64.rpm 
rpm -ivh clickhouse-server-20.8.3.18-1.el7.x86_64.rpm 
rpm -ivh clickhouse-client-20.8.3.18-1.el7.x86_64.rpm

查看安装情况

bash 复制代码
[root@localhost clickhouse]# rpm -qa | grep clickhouse
clickhouse-common-static-20.8.3.18-1.el7.x86_64
clickhouse-server-20.8.3.18-1.el7.x86_64
clickhouse-server-common-20.8.3.18-1.el7.x86_64
clickhouse-client-20.8.3.18-1.el7.x86_64

7、解除IP访问限制

bash 复制代码
 vim /etc/clickhouse-server/config.xml
 #114行打开注释

8、设置密码

加密方式有三种

clickhouse密码可以可以设置 SHA256 ,SHA1和明文三种方式。

bash 复制代码
vim /etc/clickhouse-server/users.xml
#58行根据情况进行修改
bash 复制代码
<password_sha256_hex></password_sha256_hex>
  • SHA1
bash 复制代码
<password_double_sha1_hex></password_double_sha1_hex>
  • 明文
bash 复制代码
 <password></password>

三、clickhouse相关

1、相关命令

bash 复制代码
#查看命令
clickhouse --help 
#启动
clickhouse start 
#重启
clickhouse restart

2、相关目录

bash 复制代码
命令目录
/usr/bin
配置文件目录
cd /etc/clickhouse-server/
日志目录
cd /var/log/clickhouse-server/
数据文件目录
cd /var/lib/clickhouse/

四、使用client连接server

bash 复制代码
#第一种连接(适用无密码)
clickhouse-client -m
#第二种连接
clickhouse-client --host=你的IP --port=9000 --user=default --password=你的密码
-m :可以在命令窗口输入多行命令

也可以通过数据库连接工具进行连接

相关推荐
袖清暮雨19 小时前
ClickHouse讲解
大数据·数据库·数据仓库·clickhouse·oracle
江枫渔火L2 天前
使用clickhouse的ReplacingMergeTree引擎表做活跃玩家信息表
数据库·clickhouse
潇凝子潇4 天前
Doris ClickHouse Greenplum 对比
clickhouse·doris·greenplum
递归尽头是星辰6 天前
ClickHouse核心优势分析与场景实战
大数据·数据仓库·clickhouse·实时分析·实时查询
鲁尼的小宝贝7 天前
基于Flink的数据中台管理平台
java·大数据·clickhouse·flink·yarn
问道飞鱼11 天前
【大数据知识】今天聊聊Clickhouse部署方案
大数据·clickhouse·部署
Fireworkitte14 天前
ClickHouse详解
clickhouse
知其_所以然15 天前
使用docker安装clickhouse集群
clickhouse·docker·容器
wuli玉shell15 天前
Doris和Clickhouse对比
clickhouse·doris
SelectDB技术团队18 天前
可观测性方案怎么选?SelectDB vs Elasticsearch vs ClickHouse
大数据·数据仓库·clickhouse·elasticsearch·信息可视化·doris·半结构化