使用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


目录
相关文章
|
6天前
|
Docker 容器
Docker安装及镜像源修改
本文介绍了Docker的安装过程和如何修改Docker镜像源以加速下载。包括更新系统包、安装所需软件包、设置yum源、安装Docker以及验证安装是否成功。接着,提供了修改Docker镜像源的步骤,包括创建配置文件、编辑配置文件以设置镜像加速地址,并提供了几个常用的国内镜像源地址。最后,通过重启Docker服务和检查配置是否生效来完成镜像源的修改。
Docker安装及镜像源修改
|
7天前
|
Docker 容器
centos7.3之安装docker
centos7.3之安装docker
|
1月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
1月前
|
Ubuntu Linux Docker
Ubuntu 18.04 安装Docker实战案例
关于如何在Ubuntu 18.04系统上安装Docker的实战案例,包括安装步骤、配置镜像加速以及下载和运行Docker镜像的过程。
157 3
Ubuntu 18.04 安装Docker实战案例
|
1月前
|
存储 Linux Docker
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
关于如何在CentOS 7.6上安装Docker、介绍Docker存储引擎以及服务进程关系的实战案例。
93 3
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
|
18天前
|
Prometheus 监控 Cloud Native
docker安装prometheus+Granfan并监控容器
【9月更文挑战第14天】本文介绍了在Docker中安装Prometheus与Grafana并监控容器的步骤,包括创建配置文件、运行Prometheus与Grafana容器,以及在Grafana中配置数据源和创建监控仪表盘,展示了如何通过Prometheus抓取数据并利用Grafana展示容器的CPU使用率等关键指标。
|
2月前
|
Ubuntu Docker 索引
2024年最新版 Ubuntu 20+ 上安装 Docker
这篇文章提供了在Ubuntu 20+版本上安装Docker的详细步骤,包括更新软件包索引、安装依赖包、添加Docker官方GPG密钥、设置Docker稳定版仓库、安装Docker CE以及验证安装是否成功,并指导如何将用户添加到docker组以非root用户身份运行Docker。
|
2月前
|
NoSQL Redis 数据安全/隐私保护
深入探索利用Docker安装Redis
【8月更文挑战第27天】
91 2
|
1月前
|
Docker 容器
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
|
2月前
|
jenkins Java 持续交付
jenkins学习笔记之十九:Docker安装jenkins master及动、静态配置slave
jenkins学习笔记之十九:Docker安装jenkins master及动、静态配置slave
下一篇
无影云桌面