• clickhouse学习之路----clickhouse的特点及安装


    clickhouse学习笔记

    反正都有学不完的技术,不如就学一学clickhouse吧



    clickhouse的特点

    1.列式存储

    以下面表为例

    idnameage
    1张三18
    2李四22
    3王五30

    1.采用行式存储时,数据在磁盘上的组织结构为
    在这里插入图片描述
    2.采用列式存储时,数据在磁盘上的组织结构为1
    在这里插入图片描述
    显而易见的优点是:
    1)对于列的聚合,计数,求和等统计操作原因优于行式存储。
    2)由于某一列的数据类型都是相同的,针对于数据存储更容易进行数据压缩,每一列选择更优的数据压缩算法,大大提高了数据的压缩比重。
    3)由于数据压缩比更好,一方面节省了磁盘空间,另一方面对于 cache 也有了更大的发挥空间。

    2. DBMS 的功能

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

    3.多样化引擎

    ClickHouse 和 MySQL 类似,把表级的存储引擎插件化,根据表的不同需求可以设定不同的存储引擎。目前包括合并树、日志、接口和其他四大类 20 多种引擎

    4.高吞吐写入能力

    ClickHouse 采用类 LSM Tree的结构,数据写入后定期在后台 Compaction。通过类 LSM tree的结构,ClickHouse 在数据导入时全部是顺序 append 写,写入后数据段不可更改,在后台compaction 时也是多个段 merge sort 后顺序写回磁盘。顺序写的特性,充分利用了磁盘的吞吐能力,即便在 HDD 上也有着优异的写入性能。
    官方公开 benchmark 测试显示能够达到 50MB-200MB/s 的写入吞吐能力,按照每行100Byte 估算,大约相当于 50W-200W 条/s 的写入速度。

    5.数据分区与线程级并行

    ClickHouse 将数据划分为多个 partition,每个 partition 再进一步划分为多个 index granularity(索引粒度),然后通过多个 CPU核心分别处理其中的一部分来实现并行数据处理。在这种设计下,单条 Query 就能利用整机所有 CPU。极致的并行处理能力,极大的降低了查询延时。
    所以,ClickHouse 即使对于大量数据的查询也能够化整为零平行处理。但是有一个弊端就是对于单条查询使用多 cpu,就不利于同时并发多条查询。所以对于高 qps 的查询业务,ClickHouse 并不是强项。

    clickhouse安装

    此安装为虚拟机安装

    1.关闭防火墙

    关闭防火墙:systemctl stopfirewalld
    禁用防火墙:systemctl disabled firewalld
    查看防火墙状态:systemctl status firewalld
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    2.CentOS 取消打开文件数限制

    列出所有的参数选项 ulimt -a
    
    • 1

    在这里插入图片描述
    ulimit的作用:
    假设一台机器现在有10人登陆,在系统资源没有限制的情况下,一个人又打开500个文件,每个文件有10m,那这个时候系统内存的资源就收到严重的挑战
    而实际应用的环境要比这种假设复杂的多,例如在一个嵌入式开发环境中,各方面的资源都是非常紧缺的,对于开启文件描述符的数量,分配堆栈的大小,CPU 时间,虚拟内存大小,等等,都有非常严格的要求。资源的合理限制和分配,不仅仅是保证系统可用性的必要条件,也与系统上软件运行的性能有着密不可分的联系。这时,ulimit 可以起到很大的作用,它是一种简单并且有效的实现资源限制的方式。
    常用参数:

    ulimit -a 列出所有的参数选项
    ulimit -H 设置硬件资源限制
    ulimit -S 设置软件资源限制
    ulimit -n 设置应许打开文件数
    
    • 1
    • 2
    • 3
    • 4

    格式:

    domain:可以是用户或者用户组 *代表所有
    type:可以有两个值,soft 和 hard
    item:表示要限定的资源 可以有很多候选值,如 stack(最大堆栈大小),cpu(占用cpu的时间),nofile(最大打开文件数),nproc(最大开的进程数)
    例:* hard nofile 100 该行配置语句限定了任意用户所能创建的最大文件数是 100。
    
    • 1
    • 2
    • 3
    • 4

    修改ulimit参数,配置文件是:/etc/security/limits.conf
    [root@hadoop ~]# sudo vim /etc/security/limits.conf

    在这里插入图片描述

    [root@hadoop ~]# sudo vim /etc/security/limits.d/20-nproc.conf
    可能会覆盖/etc/security/limits.conf,所以在该文件中也配置一份

    在这里插入图片描述

    3.安装依赖

    [root@hadoop ~]# yum install -y libtool
    [root@hadoop ~]# yum install -y *unixODBC*
    
    • 1
    • 2

    4. CentOS 取消 SELINUX

    [root@hadoop ~]# vim /etc/selinux/config
    SELINUX=disabled
    
    • 1
    • 2

    在这里插入图片描述
    查看是否生效
    因为没有重启,所以默认是生效的
    在这里插入图片描述
    若在生产环境中需要改变状态,则可以启用临时生效
    假设状态为开,可以临时关闭。若现状态为关,想要开启必须重启!

    setenforce 0 # 0表示关闭 1 表示开启

    上述安装前工作准备好之后,虚拟机重启
    官网下载安装包这里选择手动下载安装
    链接: https://packages.clickhouse.com/rpm/stable/

    5.上传文件

    在/opt/install目录下创建ck文件夹来存放clickhouse四个安装包
    在这里插入图片描述
    将安装包上传至/opt/install/ck
    在这里插入图片描述

    5.安装

    切换目录至opt/install/ck下安装

    [root@hadoop ck]# sudo rpm -ivh *.rpm
    
    • 1

    在这里插入图片描述

    6.修改配置文件

    [root@hadoop ck]# vim /etc/clickhouse-server/config.xml 
    使用 /isten 来查找关键字
    将:: 的注释打开,这样的话才能让ClickHouse 被除本机以外的服务器访问
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    7.启动服务

    [root@hadoop ck]# systemctl start clickhouse-server
    [root@hadoop ck]# ps -ef|grep clickhouse #查看进程
    
    • 1
    • 2

    在这里插入图片描述

    8.client 连接 server

    [root@hadoop ck]# clickhouse-client --password 
    
    • 1

    在这里插入图片描述

  • 相关阅读:
    传奇开服教程完整版GOM引擎超详细的单机架设图文教程(小白一看就会)
    【无标题】
    【0140】postmaster接收并处理libpq发送的startup packet(9)
    逆向-beginners之float联合体
    JAVA中的属性、方法、构造器,你真的弄懂了吗?
    uni-app:实现简易自定义下拉列表
    竞赛 深度学习LSTM新冠数据预测
    第2关:BeautifulSoup解析网页
    shopee虾皮面试题汇总-C++后端
    【Spring】Ioc容器
  • 原文地址:https://blog.csdn.net/weixin_43240150/article/details/131798306