大数据技术—— Clickhouse安装

news2024/11/25 3:05:59

目录

第一章 ClickHouse入门

1.1 ClickHouse的特点

1.1.1 列式存储

1.1.2 DBMS的功能

1.1.3 多样化引擎

1.1.4 高吞吐写入能力

1.1.5 数据分区与线程级并行

1.1.6 性能对比

第二章 ClickHouse的安装

2.1  准备工作

2.1.1  确定防火墙处于关闭状态

2.1.2  CentOS取消打开文件数限制

2.1.3  安装依赖

2.1.4  CentOS取消SELINUX

2.2  单机安装

2.2.1  在hadoop202的/opt/software下创建clickhouse目录

2.2.2 将资料/ClickHouse下4个文件上传到hadoop202的software/clickhouse目录下

2.2.3  将安装文件同步到hadoop203、hadoop204

2.2.4  分别在三台机子上安装这4个rpm文件

2.2.5  修改配置文件

2.2.6  启动Clickhouse

2.2.7  三台机器上关闭开机自启

2.2.8  使用client连接server


第一章 ClickHouse入门

        ClickHouse 是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),使用C++语言编写,主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。  

1.1 ClickHouse的特点

1.1.1 列式存储

以下面的表为例:

Id

Name

Age

1

张三

18

2

李四

22

3

王五

34

  • 采用行式存储时,数据在磁盘上的组织结构为:

1

张三

18

2

李四

22

3

王五

34

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

  • 采用列式存储时,数据在磁盘上的组织结构为:

1

2

3

张三

李四

王五

18

22

34

这时想查所有人的年龄只需把年龄那一列拿出来就可以了

  • 列式储存的好处:
  1. 对于列的聚合,计数,求和等统计操作原因优于行式存储。
  2. 由于某一列的数据类型都是相同的,针对于数据存储更容易进行数据压缩,每一列选择更优的数据压缩算法,大大提高了数据的压缩比重。
  3. 由于数据压缩比更好,一方面节省了磁盘空间,另一方面对于cache也有了更大的发挥空间。

1.1.2 DBMS的功能

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

1.1.3 多样化引擎

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

1.1.4 高吞吐写入能力

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

        官方公开benchmark测试显示能够达到50MB-200MB/s的写入吞吐能力,按照每行100Byte估算,大约相当于50W-200W条/s的写入速度。

1.1.5 数据分区与线程级并行

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

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

1.1.6 性能对比

某网站精华帖,中对几款数据库做了性能对比。

  • 单表查询

  • 关联查询

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

第二章 ClickHouse的安装

2.1  准备工作

2.1.1  确定防火墙处于关闭状态

2.1.2  CentOS取消打开文件数限制

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

[atguigu@hadoop202 ~]$ sudo vim /etc/security/limits.conf

* soft nofile 65536

* hard nofile 65536

* soft nproc 131072

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

[atguigu@hadoop202 ~]$ sudo vim /etc/security/limits.d/20-nproc.conf

* soft nofile 65536

* hard nofile 65536

* soft nproc 131072

* hard nproc 131072
  • 执行同步操作

[atguigu@hadoop202 ~]$ sudo /home/atguigu/bin/xsync /etc/security/limits.conf

[atguigu@hadoop202 ~]$ sudo /home/atguigu/bin/xsync /etc/security/limits.d/20-nproc.conf

2.1.3  安装依赖

[atguigu@hadoop202 ~]$ sudo yum install -y libtool

[atguigu@hadoop202 ~]$ sudo yum install -y *unixODBC*

在hadoop203、hadoop204上执行以上操作

2.1.4  CentOS取消SELINUX

  • 修改/etc/selinux/config中的SELINUX=disabled

[atguigu@hadoop202 ~]$ sudo vim /etc/selinux/config

SELINUX=disabled

注意:别改错了

  • 执行同步操作

[atguigu@hadoop202 ~]$ sudo /home/atguigu/bin/xsync /etc/selinux/config

  • 重启三台服务器

2.2  单机安装

官网:Fast Open-Source OLAP DBMS - ClickHouse

下载地址:https://repo.clickhouse.tech/rpm/stable/x86_64/  

2.2.1  在hadoop202的/opt/software下创建clickhouse目录

[atguigu@hadoop202 software]$ mkdir clickhouse

2.2.2 将资料/ClickHouse下4个文件上传到hadoop202的software/clickhouse目录下

2.2.3  将安装文件同步到hadoop203、hadoop204

[atguigu@hadoop202 software]$ xsync clickhouse/

2.2.4  分别在三台机子上安装这4个rpm文件

[atguigu@hadoop202 clickhouse]$ sudo rpm -ivh *.rpm

sudo rpm -qa|grep clickhouse查看安装情况

2.2.5  修改配置文件

[atguigu@hadoop202 clickhouse]$ sudo vim /etc/clickhouse-server/config.xml

<listen_host>::</listen_host> 的注释打开,这样的话才能让ClickHouse被除本机以外的服务器访问,在70行左右。

分发配置文件

sudo /home/atguigu/bin/xsync /etc/clickhouse-server/config.xml

在这个文件中,有ClickHouse的一些默认路径配置,比较重要的

数据文件路径:<path>/var/lib/clickhouse/</path>

日志文件路径:<log>/var/log/clickhouse-server/clickhouse-server.log</log>

2.2.6  启动Clickhouse

[atguigu@hadoop202 clickhouse]$ sudo systemctl start clickhouse-server

注意:如果安装过zabbix,需要禁用一些服务的开机自启

2.2.7  三台机器上关闭开机自启

[atguigu@hadoop202 clickhouse]$sudo systemctl disable clickhouse-server

2.2.8  使用client连接server

[atguigu@hadoop202 clickhouse]$ clickhouse-client -m

-m :可以在命令窗口输入多行命令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2050316.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue UI - 可视化的Vue项目管理器

概述 Vue CLI 3.0 更新后&#xff0c;提供了一套全新的可视化Vue项目管理器 —— Vue UI。所以要想使用它&#xff0c;你的 Vue CL I版本必须要在v3.0以上。 一、启动Vue UI 1.1 环境准备 1.1.1 安装node.js 访问官网&#xff08;外网下载速度较慢&#xff09;或 http://nod…

民航管理局无人机运营合格证技术详解

1. 证书定义与意义 民航管理局无人机运营合格证&#xff08;以下简称“合格证”&#xff09;是对符合民航法规、规章及标准要求的无人机运营单位或个人进行资质认证的重要证明。该证书旨在确保无人机运营活动的安全、有序进行&#xff0c;保护国家空域安全&#xff0c;维护公众…

电子电气架构 --- 软件定义汽车需要怎么样的EE架构

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 屏蔽力是信息过载时代一个人的特殊竞争力&#xff0c;任何消耗你的人和事&#xff0c;多看一眼都是你的不…

反射型XSS的几种payload

目录 第一种&#xff1a;采用的是urlcode编码 第二种&#xff1a;前面用html实体编码&#xff0c;后面用urlcode编码 第三种&#xff1a;只对&#xff1a;使用urlcode编码 第四种&#xff1a;对<>进行html实体编码 第五种&#xff1a;textarea 第六种&#xff1a;和…

【JavaEE】锁策略和CAS

&#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【Java】登神长阶 史诗般的Java成神之路 &#x1f4b0;一.常见的的锁策略 锁策略&#xff08;Locking Strategy&#xff09;是指在多线程环境中&#xff0c;为了控制对共享资源的访问&#xff0c;确保…

「OC」探索CALayer:基础知识与实用技巧简要介绍

「OC」探索CALayer&#xff1a;基础知识与实用技巧简要介绍 文章目录 「OC」探索CALayer&#xff1a;基础知识与实用技巧简要介绍前言认识CALayerCALayer的相关属性 UIView和CALayer区别联系创建UIView和CALayer的原因 开始创建CALayer视图层级CALayers 和 Sublayersposition与…

javaweb-flex布局

1. flex布局原理 flex是flexible Box的缩写&#xff0c;意味着"弹性布局"&#xff0c;用来为盒子模型提供最大的灵活性&#xff0c;任何一个容器都可以指定为flex布局。 当我们为父盒子设为flex布局以后&#xff0c;子元素的float、clear和vertical-align属性都将失…

【质因数分解】将正整数分解质因数

将一个正整数分解成质因数&#xff0c;例如&#xff1a;输入90&#xff0c;打印输出 902*3*3*5 使用C语言实现&#xff1a; #include<stdio.h>int main(){int n,i;printf("请输入需要分解的正整数&#xff1a; ");scanf("%d",&n);for(i2;i<…

六. 部署分类器-deploy-classification-basic

目录 前言0. 简述1. 案例运行2. 代码分析2.1 main.cpp2.2 model.cpp 3. 补充说明结语下载链接参考 前言 自动驾驶之心推出的 《CUDA与TensorRT部署实战课程》&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考 本次课程我们来学习课程第六章—部署分类器&#xff…

Flutter-自适用高度PageView

需求 在 Flutter 中&#xff0c;PageView 是一个非常常用的组件&#xff0c;能够实现多个页面的滑动切换。然而&#xff0c;默认的 PageView 高度是固定的&#xff0c;这在展示不同高度的页面时&#xff0c;可能会导致不必要的空白或内容裁剪问题。为了使 PageView 能够根据每…

Educational Codeforces Round 169 (Rated for Div. 2)(ABCDE)

A. Closest Point 签到 #define _rep(i,a,b) for(int i(a);i<(b);i) int n,m; int q[N]; void solve() {cin>>n;_rep(i,1,n)cin>>q[i];if(n!2)cout<<"NO\n";else if(abs(q[1]-q[2])!1)cout<<"YES\n";else cout<<"…

堆排序-优先级队列

我们用堆排来实现优先级队列&#xff0c;那么优先级队列是什么&#xff0c;就是 我们给每一个任务都添加一个优先级&#xff0c;优先级越高执行的越早我们用&#xff0c;但是我们怎么能按照顺序优先拿到优先级高的任务呢&#xff0c;我们可以用排序 来进行&#xff0c;也可以用…

Mybatis-Plus分页插件注意事项

使用Mybatis-Plus的分页插件进行分页查询时&#xff0c;如果结果需要使用<collection>进行映射&#xff0c;只能使用嵌套查询&#xff0c;而不能使用嵌套结果映射 嵌套查询和嵌套结果映射是Collection映射的两种方式&#xff0c;下面通过一个案例进行介绍 例如有room_i…

MyBatis源码系列3(解析配置文件,创建SqlSessionFactory对象)

创建SqlSessionFactory&#xff1b; 首先读取配置文件&#xff0c;使用构造者模式创建SqlSessionFactory对象。 InputStream inputStream Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder…

C++面试基础系列-struct

系列文章目录 文章目录 系列文章目录C面试基础系列-struct1.C中struct2.C中struct2.1.同名函数2.2.typedef定义结构体别名2.3.继承 3.总结3.1.C和C中的Struct区别 4.struct字节对齐5.struct与const 关于作者 C面试基础系列-struct 1.C中struct struct里面只能放数据类型&#…

算法力扣刷题记录 八十六【47.全排列 II】

前言 回溯章节第12篇。 记录 八十四【46.全排列】初步学习了集合中无重复元素的排列求解。 本文&#xff1a;记录 八十六【47.全排列 II】当集合中有重复元素时&#xff0c;求解排列&#xff1b; 一、题目阅读 给定一个可包含重复数字的序列 nums &#xff0c;按任意顺序 返回…

VirtualBox安装Oracle Linux 7.9全流程

1.准备工作 1.1 VirtualBox下载 下载地址1&#xff1a; Downloads – Oracle VM VirtualBoxhttps://www.virtualbox.org/wiki/Downloads 下载地址2&#xff1a; https://www.oracle.com/virtualization/virtualbox/ 选择以上的任意一个地址都可下载到。 1.2 Oracle Linux 操作…

购物车系统设计方案

背景 在电商领域&#xff0c;购物车&#xff08;Shopping Cart&#xff09;扮演着至关重要的角色&#xff0c;它是连接用户浏览商品与最终完成购买行为的桥梁。 从两个视角来阐述&#xff0c;作为ToC的购物车&#xff0c;存在的意义&#xff1a; 从用户角度&#xff1a; 收…

ssm大学生实习管理系统的设计与实现-计算机毕业设计源码45837

摘 要 在信息时代&#xff0c;随着网络的快速发展&#xff0c;各个行业都离不开信息的处理。在这样的背景下&#xff0c;高校需要以学生管理信息为导向&#xff0c;并与学生实习的持续创新相结合。因此&#xff0c;设计一个高校学生实习管理系统就显得非常必要。 该系统采用了B…

维基百科向量搜索;简单易用的GraphRAG实现;友好的人工智能助手;AI的音乐多模态

✨ 1: Semantic Search on Wikipedia 维基百科向量搜索 为了证明 Upstash Vector 的可扩展性&#xff0c;Upstash在一个数据库中以 11 种语言&#xff08;144m 向量&#xff09;索引了整个维基百科 ◆ 超过700GB的数据 ◆ 快速语义搜索 ◆ 与维基百科聊天 为您提供了一款可…