栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 前沿技术 > 大数据 > 大数据系统

ClickHouse单机和分片集群安装与特点介绍

ClickHouse单机和分片集群安装与特点介绍

  •  介绍

ClickHouse 是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),使用C++语言编写,主要用于在线分析处理查询(OLAP)
适合单条sql的查询  多表join能力较差

  •  特点

 列式储存 

 对应列的聚合,计算,求和速度优于行式储存 
 又于列的数据类型相同 可以使用更加高效的压缩方式 
 数据压缩的更好 一方面节约磁盘空间 另一方面对cache(高速缓存器)有更大     的发挥空间 
 吞吐量高、性能强,一致性、事务性较弱
 数据易维护,当我们更新数据时,历史数据会有版本号,不会被改变或者消失。
 缺点也很明显。列式存储在表关联上不方便 适合数据分析 不适合复杂业务 


 DBMS功能 

 


完成了标准的SQL语法 DDL ,DML含有大量函数(不支持自定义函数) 用户管理好权限管理,含有数据备份和恢复


多样化引擎


多种引擎 适应不同的业务场景 20多种  合并树,日志 ,接口,等等 


 高吞吐写入


ClickHouse采用类LSM Tree的结构,数据写入后定期在后台Compaction。
ckHouse在数据导入时全部是顺序append写 compaction时也是多个段merge sort后顺序写回磁盘
官方公开benchmark测试显示能够达到50MB-200MB/s的写入吞吐能力,按照每行100Byte估算,大约相当于50W-200W条/s的写入速度。


#### 数据分区与线程级并行


单条Query就能利用整机所有CPU ,分区建索引 ,并行查询 
有一个弊端就是对于单条查询使用多cpu,就不利于同时并发多条查询

  • Clickhouse安装
  • 1 关闭防火墙
systemctl status firewalld.service 
systemctl stop firewalld.service 
systemctl start firewalld.service
  •  2  安装依赖 
    每个节点执行
    sudo yum install -y libtool
    sudo yum install -y *unixODBC*  
  •  3 CentOS打开文件数数限制  取消 SELINUX
    $ sudo vim /etc/security/limits.conf
    #添加以下内容
    * soft nofile 65536
    * hard nofile 65536
    * soft nproc 131072
    * hard nproc 131072
   $ sudo vim /etc/security/limits.d/20-nproc.conf
    #添加以下内容
    * soft nofile 65536
    * hard nofile 65536
    * soft nproc 131072
    * hard nproc 131072

    sudo vim /etc/selinux/config
    SELINUX=disabled


节点同步文件
重启服务器

  •  4 在线安装 每台都需要
    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 rpm -ivh *.rpm

  •  5 修改配置文件 
sudo vim /etc/clickhouse-server/config.xml
把 :: 的注释打开,这样的话才能让ClickHouse被除本机![image.png](/img/bVcU1T3)
分发配置文件

  • 6 启动clickhouse
sudo systemctl start clickhouse-server`
连接测试 clickhouse-client -m  
或者:
TZ=Asia/Shanghai clickhouse-client -m
-m是可以换行输入命令
 分片集群的部署


注意:ClickHouse的集群是表级别的,实际企业中,大部分做了高可用,但是没有用分片,避免降低查询性能以及操作集群的复杂性。
* 配置6节点的集群和副本 三分片二副本

创建/etc/clickhouse-server/config.d/metrika-shard.xml 文件
修改文件


    
          
              
                true
                
                    
                    hadoop101
                    9000
                 
                 
                  
                    hadoop102
                    9000
                 
            

                
                 true
                     
                    hadoop103
                    9000
                 
                     
                    hadoop104
                    9000
                 
              

                
                 true
                      
                    hadoop105
                    9000
                 
                     
                    hadoop106
                    9000
                 
              
        
    


同步分发,重启服务

  •  创建集群表

会自动同步 但每个节点上只可以查自己的数据 

create table st_order_mt on cluster gmall_cluster (
    id UInt32,
    sku_id String,
    total_amount Decimal(16,2),
    create_time  Datetime
 ) engine =ReplicatedMergeTree('/clickhouse/tables/{shard}/st_order_mt_0108','{replica}')
   partition by toYYYYMMDD(create_time)
   primary key (id)
   order by (id,sku_id);


创建总表(可以查看所有节点分片数据)

create table st_order_mt_all on cluster gmall_cluster
(
    id UInt32,
    sku_id String,
    total_amount Decimal(16,2),
    create_time  Datetime
)engine = Distributed(gmall_cluster,default, st_order_mt,hiveHash(sku_id));
转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/280044.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号