容器化安装clickhouse和使用

本文详细介绍了如何在Docker中安装ClickHouse,包括拉取镜像、创建数据卷、配置容器、使用DockerCompose以及基本操作,为读者提供了一个在本地环境中快速搭建ClickHouse的指南。
摘要由CSDN通过智能技术生成
1. 安装Docker

确保您的机器上已经安装了Docker。如果尚未安装,请参阅Docker官网提供的相应操作系统教程进行安装。

2. 拉取ClickHouse镜像

从Docker Hub获取官方或社区维护的ClickHouse镜像。

docker pull yandex/clickhouse-server:latest

这里的 latest 表示最新的稳定版,您也可以指定具体的版本号。

3. 创建数据卷持久化数据

为了避免容器重启时数据丢失,通常会映射宿主机的一个目录作为ClickHouse的数据存储位置。

下面的路径替换为自己真实的存放路径即可

mkdir -p /path/to/clickhouse/data
mkdir -p /path/to/clickhouse/config
mkdir -p /path/to/clickhouse/logs
4. 运行ClickHouse容器

使用以下命令启动ClickHouse容器,同时映射端口和挂载数据卷:

docker run -d \
  --name clickhouse-server \
  -p 8123:8123 \
  -p 9000:9000 \
  -v /path/to/clickhouse/data:/var/lib/clickhouse/ \
  -v /path/to/clickhouse/config:/etc/clickhouse-server/ \
  -v /path/to/clickhouse/logs:/var/log/clickhouse-server/ \
  --ulimit nofile=262144:262144 \
  yandex/clickhouse-server:latest

这里的 -d 参数表示后台运行容器,-p 参数用于映射端口,-v 参数用于挂载数据卷,--ulimit 参数设置打开文件数限制。

使用Docker Compose安装步骤如下:

  • 安装Docker和Docker Compose。
  • 编写docker-compose.yml配置文件,指定ClickHouse镜像和服务配置。
  • 运行docker-compose up启动ClickHouse服务。
version: '3'
services:
  clickhouse:
    image: yandex/clickhouse-server:latest
    # 可以指定特定版本,如 '21.3.20.1'
    hostname: clickhouse
    container_name: clickhouse
    expose:
      - "9000"
    ports:
      - "8123:8123"
      - "9000:9000"
    volumes:
      - /home/clickhouse/data/:/var/lib/clickhouse/
      - /home/clickhouse/log/:/var/log/clickhouse-server/
      - /home/clickhouse/etc/clickhouse-server/:/etc/clickhouse-server/
    environment:
      - TZ=Asia/Shanghai
    ulimits:
      nofile:
        soft: 262144
        hard: 262144
5. 配置ClickHouse(可选)

若需要对ClickHouse进行自定义配置,可以编辑宿主机上的配置文件,然后它们会被容器内的ClickHouse服务器加载。

6. 检查ClickHouse是否运行正常

可以通过浏览器访问Web控制台(如果启用了http接口)或者通过命令行客户端连接到ClickHouse服务器。

docker exec -it clickhouse-server clickhouse-client

基本使用

进入ClickHouse客户端后,可以开始执行基本操作:

  • 创建数据库:
1CREATE DATABASE mydatabase;
  • 切换到已创建的数据库:
1USE mydatabase;
  • 创建表:
1CREATE TABLE example_table (
2    id Int32,
3    name String,
4    timestamp DateTime
5) ENGINE = MergeTree()
6ORDER BY (id, timestamp);
  • 插入数据:
1INSERT INTO example_table (id, name, timestamp) VALUES (1, 'example', now());
  • 执行查询:
1SELECT * FROM example_table;

至此,您已经在Docker中成功安装并初步使用了ClickHouse。记得根据实际需求调整配置文件和容器运行参数以满足生产环境的需求。

       

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沉默的八哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值