以示例讲解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上传镜像到harbor镜像仓库

    1. 登陆docker服务器绑定hosts [root@docker ~]# vim /etc/hosts [root@docker ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost loc…

    Docker 2023年4月16日
    00
  • docker 介绍

    docker服务介绍: http://gitlab.qiyi.domain/docker/docker/blob/master/docs/userguide_ZH-CN/sample.mdhttp://gitlab.qiyi.domain/docker/docker/blob/master/docs/userguide_ZH-CN/04-usage.md d…

    Docker 2023年4月13日
    00
  • Docker镜像构建的两种方法解析

    下面是针对题目要求的详细讲解: Docker镜像构建的两种方法解析 Docker镜像的构建可以使用两种方法:Dockerfile和命令行。下面将分别对这两种方法进行详细说明。 Dockerfile 简介 Dockerfile是Docker中用于构建镜像的文件。在Dockerfile中可以指定运行环境、安装软件和设置配置等内容。使用Dockerfile可以实现…

    Docker 2023年5月16日
    00
  • Ubuntu20.04 Docker搭建远程xfce桌面以及ssh教程

    简介:本文主要介绍ubuntu20.04容器中搭建xfce远程桌面、C++、Go环境、容器内docker操作配置、   一、创建容器1、创建容器 docker pull ubuntu:20.04docker run -itd –privileged –name=my-desktop–ulimit memlock=-1:-1 –network=”net…

    Docker 2023年4月16日
    00
  • [RHEL8]安装Docker Problem: package docker-ce-3:19.03.6-3.el7.x86_64 requires containerd.io

    系统环境 # cat /etc/redhat-release Red Hat Enterprise Linux release 8.0 (Ootpa) 安装依赖 # yum install -y yum-utils device-mapper-persistent-data lvm2 Last metadata expiration check: 0:33:…

    Docker 2023年4月13日
    00
  • Docker Compose

    Docker compose Compose 简介 ​ Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。 Compose 使用的三个步骤: 使用 Dockerfile 定义应用程序的环境。 使用 …

    Docker 2023年4月8日
    00
  • 关闭或启动linux防火墙后,docker启动容器报错问题解决方式  关闭或启动linux防火墙后,docker启动容器报错问题解决方式

    解决办法:重建docker0网络恢复 1、按照进程名杀死docker进程 pkill docker 2、清空防火墙规则-清空nat表的所有链 iptables -t nat -F 3、查看定义规则的详细信息 iptables -L -n -v 4、关闭docker0接口 ifconfig docker0 down 5、删除docker0接口 brctl de…

    Docker 2023年4月13日
    00
  • 命令行获取docker远程仓库镜像列表

    获取思路 通过curl获取镜像tag的json串,解析后得到${image}:${tag}的格式 curl获取示例 # curl [:-s] ${API}/${image}/tags curl https://registry.hub.docker.com/v1/repositories/nginx/tags 获取脚本docker-search docker…

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