使用Docker安装ClickHouse

简介: ClickHouse是一个由俄罗斯最大的搜索公司Yandex开源的列式数据库(DBMS),主要用于在线分析处理查询(OLAP),于2016年开源,采用C++开发。凭借优秀的性能,市场反应非常热烈。

什么是ClickHouse


相对行式数据库,像Mysql、Oracle、SqlServer等都是行式存储,是把同一行的数据放到相邻同一数据块种,而列式存储是把同一列的数据放到相邻同一数据块种,这样在进行计算类查询时,可以大大减少IO消耗,返回结果更快,采用列式存储后在进行数据记录写入的时候会麻烦一些。


列式数据库VS 行式数据库


1.png


列式存储的主要优点之一就是可以大幅降低系统的I/O,尤其是在海量数据查询时,I/O向来是系统的主要瓶颈之一。通过下面这张图,相信大家能够彻底明白这一点。


2.png

 

ClickHouse 很多大厂都在用,本篇主要使用Docker进行安装


安装配置


  • 创建目录并更改权限


mkdir-p/app/cloud/clickhouse/datamkdir-p/app/cloud/clickhouse/confmkdir-p/app/cloud/clickhouse/logchmod-R777/app/cloud/clickhouse/datachmod-R777/app/cloud/clickhouse/confchmod-R777/app/cloud/clickhouse/log


  • 拉取镜像


dockerpullyandex/clickhouse-server:20.3.5.21


查看 https://hub.docker.com/r/yandex/clickhouse-server/dockerfile 文件,EXPOSE  9000  8123  9009 了三个端口,而宿主机9000端口已被 MinIO 对象存储服务器占用,所以创建容器暴露该端口用9090替换


root@jazz-pc:~#dockerps--format"table {{.Names}} ------> {{.Ports}}"|grepminiominio------>0.0.0.0:9000->9000/tcp


  • 创建临时容器


dockerrun--rm-d--name=clickhouse-server\--ulimitnofile=262144:262144\-p8123:8123-p9009:9009-p9090:9000\yandex/clickhouse-server:20.3.5.21


  • 复制临时容器内配置文件到宿主机


dockercpclickhouse-server:/etc/clickhouse-server/config.xml/app/cloud/clickhouse/conf/config.xmldockercpclickhouse-server:/etc/clickhouse-server/users.xml/app/cloud/clickhouse/conf/users.xml


  • 停掉临时容器


dockerstopclickhouse-server


  • 创建default账号密码


PASSWORD=$(base64</dev/urandom|head-c8); echo"$PASSWORD"; echo-n"$PASSWORD"|sha256sum|tr-d'-'


会输出明码和SHA256密码 SEGByR98 211371f5bc54970907173acf6facb35f0acbc17913e1b71b814117667c01d96d


  • 创建root账号密码


PASSWORD=$(base64</dev/urandom|head-c8); echo"$PASSWORD"; echo-n"$PASSWORD"|sha256sum|tr-d'-'


会输出明码和SHA256密码 092j3AnV 35542ded44184b1b4b6cd621e052662578025b58b4187176a3ad2b9548c8356e


  • 修改 /app/cloud/clickhouse/conf/users.xml
    把default账号设为只读权限,并设置密码 yandex-->users-->default-->profile 节点设为 readonly 注释掉 yandex-->users-->default-->password 节点 新增  yandex-->users-->default-->password_sha256_hex 节点,填入生成的密码


  • 新增root账号


<root><password_sha256_hex>35542ded44184b1b4b6cd621e052662578025b58b4187176a3ad2b9548c8356e</password_sha256_hex><networksincl="networks"replace="replace"><ip>::/0</ip></networks><profile>default</profile><quota>default</quota></root>


  • 创建容器


dockerrun-d--name=clickhouse-server\-p8123:8123-p9009:9009-p9090:9000\--ulimitnofile=262144:262144\-v/app/cloud/clickhouse/data:/var/lib/clickhouse:rw\-v/app/cloud/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml\-v/app/cloud/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml\-v/app/cloud/clickhouse/log:/var/log/clickhouse-server:rw\yandex/clickhouse-server:20.3.5.21


  • 用 DataGrip 连接


3.png


  • 用 dbeaver 连接


4.png


目录
相关文章
|
2天前
|
关系型数据库 MySQL 数据库
docker高级篇(大厂进阶):安装mysql主从复制
docker高级篇(大厂进阶):安装mysql主从复制
41 24
|
3天前
|
NoSQL 算法 Redis
docker高级篇(大厂进阶):安装redis集群
docker高级篇(大厂进阶):安装redis集群
50 24
|
1天前
|
Ubuntu Linux Docker
Ubuntu22.04上Docker的安装
通过以上详细的安装步骤和命令,您可以在Ubuntu 22.04系统上顺利安装
32 11
|
29天前
|
缓存 Linux Docker
【最新版正确姿势】Docker安装教程(简单几步即可完成)
之前的老版本Docker安装教程已经发生了变化,本文分享了Docker最新版安装教程,其他操作系统版本也可以参考官 方的其他安装版本文档。
995 2
【最新版正确姿势】Docker安装教程(简单几步即可完成)
|
1月前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
535 11
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
1月前
|
Prometheus 监控 Cloud Native
基于Docker安装Grafana和Prometheus
Grafana 是一款用 Go 语言开发的开源数据可视化工具,支持数据监控和统计,并具备告警功能。通过 Docker 部署 Grafana 和 Prometheus,可实现系统数据的采集、展示和告警。默认登录用户名和密码均为 admin。配置 Prometheus 数据源后,可导入主机监控模板(ID 8919)进行数据展示。
99 2
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
70 2
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
44 3
|
1月前
|
Docker 容器
【赵渝强老师】使用二进制包方式安装Docker
本文介绍了在企业生产环境中无法直接访问外网时,如何使用Docker官方提供的二进制包进行Docker的离线安装。文章详细列出了从安装wget、下载Docker安装包、解压、复制命令到启动Docker服务的具体步骤,并提供了相关命令和示例图片。最后,还介绍了如何设置Docker为开机自启模式。
|
1月前
|
缓存 Ubuntu Linux
如何安装Docker
如何安装Docker
153 0