ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。
在传统的行式数据库系统中,数据按如下顺序存储:
Row | WatchID | JavaEnable | Title | GoodEvent | EventTime |
---|---|---|---|---|---|
#0 | 89354350662 | 1 | Investor Relations | 1 | 2016-05-18 05:19:20 |
#1 | 90329509958 | 0 | Contact us | 1 | 2016-05-18 08:10:20 |
#2 | 89953706054 | 1 | Mission | 1 | 2016-05-18 07:38:00 |
#N | ... | ... | ... | ... | ... |
处于同一行中的数据总是被物理的存储在一起。
常见的行式数据库系统有:MySQL
、Postgres
和MS SQL Server
。
在列式数据库系统中,数据按如下的顺序存储:
Row: | #0 | #1 | #2 | #N |
---|---|---|---|---|
WatchID: | 89354350662 | 90329509958 | 89953706054 | ... |
JavaEnable: | 1 | 0 | 1 | ... |
Title: | Investor Relations | Contact us | Mission | ... |
GoodEvent: | 1 | 1 | 1 | ... |
EventTime: | 2016-05-18 05:19:20 | 2016-05-18 08:10:20 | 2016-05-18 07:38:00 | ... |
这些示例只显示了数据的排列顺序。来自不同列的值被单独存储,来自同一列的数据被存储在一起。
常见的列式数据库有: Vertica、 Paraccel (Actian Matrix,Amazon Redshift)、 Sybase IQ、 Exasol、 Infobright、 InfiniDB、 MonetDB (VectorWise, Actian Vector)、 LucidDB、 SAP HANA、 Google Dremel、 Google PowerDrill、 Druid、 kdb+。
不同的数据存储方式适用不同的业务场景,数据访问的场景包括:进行了何种查询、多久查询一次以及各类查询的比例;每种类型的查询(行、列和字节)读取多少数据;读取数据和更新之间的关系;使用的数据集大小以及如何使用本地的数据集;是否使用事务,以及它们是如何进行隔离的;数据的复制机制与数据的完整性要求;每种类型的查询要求的延迟与吞吐量等等。
系统负载越高,依据使用场景进行定制化就越重要,并且定制将会变的越精细。没有一个系统能够同时适用所有不同的业务场景。如果系统适用于广泛的场景,在负载高的情况下,要兼顾所有的场景,那么将不得不做出选择。是要平衡还是要效率?
环境说明:
服务端登录地址详见各任务服务端说明。
补充说明:宿主机可通过Asbru工具或SSH客户端进行SSH访问;
相关软件安装包在宿主机的/opt目录下,请选择对应的安装包进行安装,用不到的可忽略;
所有任务中应用命令必须采用绝对路径;
进入Master节点的方式为
docker exec -it master /bin/bash
进入Slave1节点的方式为
docker exec -it slave1 /bin/bash
进入Slave2节点的方式为
docker exec -it slave2 /bin/bash
三个容器节点的root密码均为123456
提前准备好几个包
推荐去阿里云下载,比官网快一点
clickhouse-tgz-stable安装包下载_开源镜像站-阿里云
clickhouse-client-21.9.4.35.tgz
clickhouse-common-static-21.9.4.35.tgz
clickhouse-common-static-dbg-21.9.4.35.tgz
clickhouse-server-21.9.4.35.tgz
放在宿主机的/opt/下(模拟的自己准备,比赛时会提供)
ClickHouse单节点安装配置
环境搭建请看这篇文章大数据模块A环境搭建
本任务需要使用root用户完成相关配置,具体要求如下:
1、 从宿主机/opt目录下将clickhouse开头的相关文件复制到容器Master中的/opt/module/clickhouse路径中(若路径不存在,则需新建),将全部解压命令复制并粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;
从宿主机/opt目录下将clickhouse开头的相关文件复制到容器Master中的/opt/module/clickhouse路径中(若路径不存在,则需新建)
第一步:新建一个/opt/module/clickhouse(在master中执行)
[root@master ~]# mkdir -p /opt/module/clickhouse
第二步:把clickhouse包从宿主机中复制到容器的master
[root@Bigdata ~]# docker cp /opt/clickhouse-client-21.9.4.35.tgz master:/opt/module/clickhouse
[root@Bigdata ~]# docker cp /opt/clickhouse-common-static-21.9.4.35.tgz master:/opt/module/clickhouse
[root@Bigdata ~]# docker cp /opt/clickhouse-common-static-dbg-21.9.4.35.tgz master:/opt/module/clickhouse
[root@Bigdata ~]# docker cp /opt/clickhouse-server-21.9.4.35.tgz master:/opt/module/clickhouse
第三步:在容器master中全部解压
[root@master ~]# tar zxvf /opt/module/clickhouse/clickhouse-client-21.9.4.35.tgz -C /opt/module/clickhouse/
[root@master ~]# tar zxvf /opt/module/clickhouse/clickhouse-common-static-21.9.4.35.tgz -C /opt/module/clickhouse/
[root@master ~]# tar zxvf /opt/module/clickhouse/clickhouse-common-static-dbg-21.9.4.35.tgz -C /opt/module/clickhouse/
[root@master ~]# tar zxvf /opt/module/clickhouse/clickhouse-server-21.9.4.35.tgz -C /opt/module/clickhouse/
2、 执行启动各个相关脚本,将全部启动命令复制并将执行结果(截取结果最后倒数15行即可)截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;
第一步:执行启动各个相关脚本
/opt/module/clickhouse/clickhouse-common-static-21.9.4.35/install/doinst.sh
/opt/module/clickhouse/clickhouse-common-static-dbg-21.9.4.35/install/doinst.sh
/opt/module/clickhouse/clickhouse-client-21.9.4.35/install/doinst.sh
运行这三个命令是没有回显内容的
Server脚本会提示输入参数,第一个是默认密码,第二个是远程连接(选N 后面再自己配)
/opt/module/clickhouse/clickhouse-server-21.9.4.35/install/doinst.sh
3、 设置远程访问并移除默认监听文件(listen.xml),同时由于9000端口被Hadoop占用,需要将clickhouse的端口更改为9001,并启动clickhouse,启动后查看clickhouse运行状态,并将启动命令复制、查看运行状态命令复制并将执行结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下。
第一步:设置远程访问,同时由于9000端口被Hadoop占用,需要将clickhouse的端口更改为9001
1)、给配置文件赋权
chmod 777 /etc/clickhouse-server/config.xml
2)、修改配置
vi /etc/clickhouse-server/config.xml
找到图片这个
把它的注释打开,变成这样子就设置了远程访问了
再找到这个 tcp_port
改成将9000改成9001
保存退出,注意如果正常的wq退不出来可以加一个!强制保存退出 :wq!
第二步:移除默认监听文件(listen.xml)(安装完没找到,就不理它,有的话应该在/etc/clickhouse-server/路径下)看一下有没有,如果没有这个配置文件就跳过这步
rm -f /etc/clickhouse-server/config.d/listen.xml
第三步:启动clickhouse
systemctl start clickhouse-server
第四步:启动后查看clickhouse运行状态
systemctl status clickhouse-server
END
一键三连是我写文章的动力!
声明:此文章为个人学习笔记,如文章有问题欢迎留言探讨,也希望您的指正 !