ClickHouse部署笔记

ClickHouse 特点

学习地址:https://clickhouse.tech/docs/zh/ ,以下笔记部分来源官网,部分来源B站视频:https://www.bilibili.com/video/BV1Yh411z7os?p=1

ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。

OLAP场景的关键特征

  • 绝大多数是读请求
  • 数据以相当大的批次(> 1000行)更新,而不是单行更新;或者根本没有更新。
  • 已添加到数据库的数据不能修改。
  • 对于读取,从数据库中提取相当多的行,但只提取列的一小部分。
  • 宽表,即每个表包含着大量的列
  • 查询相对较少(通常每台服务器每秒查询数百次或更少)
  • 对于简单查询,允许延迟大约50毫秒
  • 列中的数据相对较小:数字和短字符串(例如,每个URL 60个字节)
  • 处理单个查询时需要高吞吐量(每台服务器每秒可达数十亿行)
  • 事务不是必须的
  • 对数据一致性要求低
  • 每个查询有一个大表。除了他以外,其他的都很小。
  • 查询结果明显小于源数据。换句话说,数据经过过滤或聚合,因此结果适合于单个服务器的RAM中

ClickHouse的特性

  • 列式存储

  • DBMS的功能,支持sql

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

  • 多样化引擎

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

  • 高吞吐写入能力

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

  • 数据分区与线程级并行

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

ClickHouse安装部署过程

准备工作

  1. 确定防火墙处于关闭状态

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

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

      [hadoop@hadoop102 ~]$ sudo vi /etc/security/limits.conf 
      #<domain>        <type>  <item>  <value>
      * soft nofile 65536
      * hard nofile 65536
      * soft nproc 131072
      * hard nproc 131072
      

      配置说明:由于clickhouse的 特性 ,需要配置最大读取文件数和最大进程数,soft 和 hard 标识配置当前用户 和 全局用户。soft 要小于等于 hard

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

      [hadoop@hadoop102 ~]$ sudo vi /etc/security/limits.d/20-nproc.conf 
      *          soft    nproc     4096
      root       soft    nproc     unlimited
      * soft nofile 65536
      * hard nofile 65536
      * soft nproc 131072
      * hard nproc 131072
      

      生效方式:

      重新登录用户即可

    3. 执行同步操作

      ##因为是系统文件,需要用sudo 的方式,不然会报权限不足
      [hadoop@hadoop102 ~]$ sudo /home/hadoop/bin/xsync /etc/security/limits.conf 
      [hadoop@hadoop102 ~]$ sudo /home/hadoop/bin/xsync /etc/security/limits.d/20-nproc.conf 
      ##查看文件进程限制命令,可对比查看是否配置成功
      [hadoop@hadoop102 ~]$ ulimit -a
      
  3. 安装clickhouse依赖(在 hadoop103、hadoop104 上也要执行以下操作)

    [hadoop@hadoop102 ~]$ sudo yum install -y libtool
    [hadoop@hadoop102 ~]$ sudo yum install -y *unixODBC*
    
  4. CentOS 取消 SELINUX (安全增强)

    ##查看安全增强协议,Enforcing:开启,Disabled :关闭
    [hadoop@hadoop102 root]$ getenforce
    Enforcing
    ##修改/etc/selinux/config 中的 SELINUX=disabled
    [hadoop@hadoop102 root]$ sudo vi /etc/selinux/config 
    SELINUX=disabled
    ##执行同步操作
    [hadoop@hadoop102 root]$ sudo /home/hadoop/bin/xsync /etc/selinux/config 
    ##重启三台服务器 生效
    

单机安装

clickhouse安装文件下载地址:https://repo.yandex.ru/clickhouse/rpm/stable/x86_64/

使用版本号:21.7.3.14-2

  1. 将安装文件上传到hadoop102,并分发到hadoop104,hadoop103

    [hadoop@hadoop102 software]$ mkdir clickhouse
    ##上传文件
    [hadoop@hadoop102 software]$ rz 
    [hadoop@hadoop102 clickhouse]$ ls
    clickhouse-client-21.7.3.14-2.noarch.rpm
    clickhouse-common-static-21.7.3.14-2.x86_64.rpm
    clickhouse-common-static-dbg-21.7.3.14-2.x86_64.rpm
    clickhouse-server-21.7.3.14-2.noarch.rpm
    ## 分发文件
    [hadoop@hadoop102 software]$ xsync clickhouse
    
  2. 分别在三台机子上安装这 4 个 rpm 文件(中途提示设置密码,可不设置,回车)

    [hadoop@hadoop102 clickhouse]$ sudo rpm -ivh *.rpm
    ## sudo rpm -qa|grep clickhouse 查看安装情况
    [hadoop@hadoop102 clickhouse]$ sudo rpm -qa|grep clickhouse
    clickhouse-common-static-21.7.3.14-2.x86_64
    clickhouse-client-21.7.3.14-2.noarch
    clickhouse-common-static-dbg-21.7.3.14-2.x86_64
    clickhouse-server-21.7.3.14-2.noarch
    
  3. 修改配置文件(使用root用户修改,否则可能出现权限不够)

    [hadoop@hadoop102 etc]$ su root
    ## 把 <listen_host>::</listen_host> 的注释打开,这样的话才能让 ClickHouse 被除本
    机以外的服务器访问
    [root@hadoop102 clickhouse-server]# vi /etc/clickhouse-server/config.xml 
    ##分发配置文件
    [root@hadoop102 clickhouse-server]# sudo /home/hadoop/bin/xsync /etc/clickhouse-server/config.xml
    

    在这里插入图片描述

  4. 三台机器上关闭开机自启

    [hadoop@hadoop102 bin]$ sudo systemctl disable clickhouse-server
    Removed symlink /etc/systemd/system/multi-user.target.wants/clickhouse-server.service.
    
  5. 启动Server

    [hadoop@hadoop102 bin]$ cd /usr/bin/
    [hadoop@hadoop102 bin]$ sudo clickhouse start
     chown --recursive clickhouse '/var/run/clickhouse-server/'
    Will run su -s /bin/sh 'clickhouse' -c '/usr/bin/clickhouse-server --config-file /etc/clickhouse-server/config.xml --pid-file /var/run/clickhouse-server/clickhouse-server.pid --daemon'
    Waiting for server to start
    Waiting for server to start
    Server started
    [hadoop@hadoop102 bin]$ sudo clickhouse status
    /var/run/clickhouse-server/clickhouse-server.pid file exists and contains pid = 2177.
    The process with pid = 2177 is running.
    
  6. 使用clickhouse 客户端连接 clickhouse

    ## -m 表示可换行输入sql,sql 结束判断符号为;
    [hadoop@hadoop102 bin]$  clickhouse-client -m
    ClickHouse client version 21.7.3.14 (official build).
    Connecting to localhost:9000 as user default.
    Connected to ClickHouse server version 21.7.3 revision 54449.
    
    hadoop102 :) show databases;
    
    SHOW DATABASES
    
    Query id: 5aacb1a7-c923-419b-a790-f66fd454e66a
    
    ┌─name────┐
    │ default │
    │ system  │
    └─────────┘
    
    2 rows in set. Elapsed: 0.003 sec. 
    
    hadoop102 :) 
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值