以示例讲解Clickhouse Docker集群部署以及配置

来讲一下“以示例讲解Clickhouse Docker集群部署以及配置”的完整攻略吧。

1. 安装Docker

首先需要安装Docker,可以根据自己的系统版本去下载并安装Docker。

2. 配置ClickHouse Docker镜像

使用以下命令从Docker Hub上拉取ClickHouse镜像:

docker pull yandex/clickhouse-server

3. 创建ClickHouse集群

使用Docker Compose创建一个三个节点的ClickHouse集群。首先在本地新建一个目录用于存放配置文件。在该目录下新建一个docker-compose.yml文件,输入以下内容:

version: '3'
services:
  clickhouse-node1:
    image: yandex/clickhouse-server
    container_name: clickhouse_node1
    environment:
      - CLICKHOUSE_CONFIG=/etc/clickhouse-server/config.xml
      - CLICKHOUSE_HTTP_PORT=8123
      - CLICKHOUSE_TCP_PORT=9000
    volumes:
      - ./config.xml:/etc/clickhouse-server/config.xml
    ports:
      - "8123:8123"
      - "9000:9000"
    networks:
      ch-network:
        ipv4_address: 192.168.100.101

  clickhouse-node2:
    image: yandex/clickhouse-server
    container_name: clickhouse_node2
    environment:
      - CLICKHOUSE_CONFIG=/etc/clickhouse-server/config.xml
      - CLICKHOUSE_HTTP_PORT=8123
      - CLICKHOUSE_TCP_PORT=9000
    volumes:
      - ./config.xml:/etc/clickhouse-server/config.xml
    ports:
      - "8124:8123"
      - "9001:9000"
    networks:
      ch-network:
        ipv4_address: 192.168.100.102

  clickhouse-node3:
    image: yandex/clickhouse-server
    container_name: clickhouse_node3
    environment:
      - CLICKHOUSE_CONFIG=/etc/clickhouse-server/config.xml
      - CLICKHOUSE_HTTP_PORT=8123
      - CLICKHOUSE_TCP_PORT=9000
    volumes:
      - ./config.xml:/etc/clickhouse-server/config.xml
    ports:
     - "8125:8123"
     - "9002:9000"
    networks:
      ch-network:
        ipv4_address: 192.168.100.103

networks:
  ch-network:
    driver: bridge
    ipam:
     config:
       - subnet: 192.168.100.0/24

4. ClickHouse配置文件

每个节点都需要相同的配置文件,在本地创建config.xml配置文件:

<yandex>
    <http_server>
        <listen_host>::</listen_host>
        <listen_port>8123</listen_port>
        <http_handler>
            <default_database>default</default_database>
            <listen_try_count>3</listen_try_count>
            <base_path>/</base_path>
            <keep_alive_timeout>5</keep_alive_timeout>
            <restrict_concurrency>true</restrict_concurrency>
            <max_concurrent_queries_for_user>0</max_concurrent_queries_for_user>
        </http_handler>
    </http_server>

    <tcp_port>9000</tcp_port>
    <listen_host>0.0.0.0</listen_host>
    <interserver_http_port>9009</interserver_http_port>
    <default_max_memory_usage_ratio>0.6</default_max_memory_usage_ratio>

    <zookeeper>
        <node>
            <host>192.168.100.101</host>
            <port>2181</port>
        </node>
        <node>
            <host>192.168.100.102</host>
            <port>2181</port>
        </node>
        <node>
            <host>192.168.100.103</host>
            <port>2181</port>
        </node>
        <base_path>/clickhouse/tables/</base_path>
    </zookeeper>
</yandex>

5. 启动ClickHouse集群

在新建的目录下运行以下命令启动ClickHouse集群:

docker-compose up -d

6. 测试ClickHouse集群

使用以下命令登录到其中一个节点:

docker exec -it clickhouse_node1 /bin/bash

使用以下命令连接集群并创建一个数据库 :

clickhouse-client --host=clickhouse-node1 --port=9000 -u default --password=
CREATE DATABASE test;

退出后使用以下命令杀死并删除容器:

docker-compose down

示例1:如何扩展集群

在docker-compose.yml文件中添加以下内容:

services:
  clickhouse-node4:
    image: yandex/clickhouse-server
    container_name: clickhouse_node4
    environment:
      - CLICKHOUSE_CONFIG=/etc/clickhouse-server/config.xml
      - CLICKHOUSE_HTTP_PORT=8123
      - CLICKHOUSE_TCP_PORT=9000
    volumes:
      - ./config.xml:/etc/clickhouse-server/config.xml
    ports:
      - "8126:8123"
      - "9003:9000"
    networks:
      ch-network:
        ipv4_address: 192.168.100.104

然后运行以下命令重新启动集群:

docker-compose up -d

使用以下命令登录到该节点:

docker exec -it clickhouse_node4 /bin/bash

使用以下命令连接到集群并创建一个数据库:

clickhouse-client --host=clickhouse-node1,clickhouse-node2,clickhouse-node3,clickhouse-node4 --port=9000 -u default --password=
CREATE DATABASE test;

示例2:如何修改配置文件

使用以下命令重启ClickHouse集群:

docker-compose down
docker-compose up -d

在本地修改config.xml文件后,可以通过以下命令将更改的配置文件覆盖到对应的容器中:

docker cp config.xml clickhouse_node1:/etc/clickhouse-server/config.xml
docker cp config.xml clickhouse_node2:/etc/clickhouse-server/config.xml
docker cp config.xml clickhouse_node3:/etc/clickhouse-server/config.xml

然后重启集群:

docker-compose down
docker-compose up -d

就是这样了,以上就是“以示例讲解ClickHouse Docker集群部署以及配置”的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:以示例讲解Clickhouse Docker集群部署以及配置 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • 影片自由,丝滑流畅,Docker容器基于WebDav协议通过Alist挂载(百度网盘/阿里云盘)Python3.10接入

    使用过NAS(Network Attached Storage)的朋友都知道,它可以通过局域网将本地硬盘转换为局域网内的“网盘”,简单理解就是搭建自己的“私有云”,但是硬件和网络成本都太高了,有点可望而不可及的意思。Alist开源库则可以满足我们,它能将公共网盘反过来变成一种联网的本地硬盘,使用Web页面来统一挂载和管理,网盘类型包含但不限于:百度网盘、阿里…

    2023年4月9日
    00
  • docker常用命令

    1.查询打包好的docker镜像 docker images | grep web 2.登录 docker login IP:端口 3.重命名 docker tag 镜像名称:镜像版本号 IP:端口/test/镜像名称:镜像版本号 4.上传 docker push IP:端口/test/名称:版本 5.删除(加”-f”表示强制执行) docker rmi -…

    Docker 2023年4月8日
    00
  • Linux 离线安装docker的过程(一键式安装)

    以下是 Linux 离线安装 Docker 的过程,这是一键式安装。 准备工作 在开始安装前,您需要确保已经做好以下准备工作: 离线下载 Docker CE 的二进制安装包。 上传安装包到 Linux 服务器。 确保 Linux 服务器已经安装 Docker 的必要依赖项。 步骤1:安装依赖项 首先,我们需要确保 Linux 服务器上已经安装了两个必要的依赖…

    Docker 2023年5月16日
    00
  • Centos7 使用Docker搭建Oracle测试环境

    1.更新yum yum update 2.安装Docker yum install docker 安装完成后查看Docker的版本: docker version 查看Docker的信息: docker info 3.安装完后启动Docker systemctl start docker.service 如果启动报错:could not change gro…

    Docker 2023年4月11日
    00
  • docker默认存储空间用完情况下,做迁移数据

    由于docker默认存放数据路径为/var/lib/docker,但运行了一段时间后,发现/var/lib/docker下的目录文件过大,导致此分区空间不够用。通过以下方法,解决该问题。   如何避免: 最好是在docker安装完后,第一时间修改docker默认存储位置为其他大目录或者磁盘中。规避迁移数据过程中造成的风险。     直接移出数据,并修改doc…

    Docker 2023年4月12日
    00
  • 使用YUM 安装 docker的方法步骤

    下面是使用YUM安装Docker的方法步骤的完整攻略。 第一步:更新yum 在安装Docker之前,我们需要先更新yum。 sudo yum update 第二步:安装必要的工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 这个命令将会安装三个必要的工具: yum-util…

    Docker 2023年5月16日
    00
  • docker compose基本语法有哪些

    今天小编给大家分享一下docker compose基本语法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。 先来看一份 docker-compose.yml 文件 version: ‘2’ services:   web:     imag…

    Docker 2023年4月10日
    00
  • Docker原理

    Docker原理 docker是什么:Docker 是完整的一套容器管理系统,所以想要搞懂 Docker 的概念,我们必须先从容器开始说起。 什么是容器? – [x] 容器是用来装东西的,Linux 里面的容器是用来装应用的; – [x] 容器就是将软件打包成标准化单元,以用于开发、交付和部署; – [x] 容器技术已经成为应用程序封装和交付的核心技术; 容…

    2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部