使用docker搭建clickHouse集群

使用docker搭建clickHouse集群

下载Docker:yum -y install docker
启动命令:service docker start
如果需要用到 docker-compose 安装步骤如下(本文没用这种方式)

1、centos使用命令yum -y install python-pip安装pip
2、yum -y install python-pip docker-compose
查看安装的版本
docker-compose --version 
Docker-compose卸载
pip uninstall docker-compose
背景:用一台物理机来搭建一个有两台CK的集群

安装流程如下:

1、操作docker
1、首先起一个单机的CH
docker run -d \
--name clickhouse-server \
-p 9000:9000 \
-p 8123:8123 \
-p 9009:9009 \
--ulimit nofile=262144:262144 \
yandex/clickhouse-server

2、将上面单机的CH中的配置文件复制到宿主机的目录中。没有/home/allspark/目录的,请提前创建。
docker cp clickhouse-server:/etc/clickhouse-server/ /home/allspark/
3、停止单机CH、删除CH
docker stop clickhouse-server
docker rm clickhouse-server

4、起一个CK,这里是将配置、日志、以及数据映射到宿主机
(三个路径依次是:数据存储目录、配置文件目录、日志存放目录)
docker run --restart always \
-d \
--name clickhouse-server \
--ulimit nofile=262144:262144 \
--volume=/home/allspark/clickhouse/:/var/lib/clickhouse/ \
--volume=/home/allspark/clickhouse-server/:/etc/clickhouse-server/ \
--volume=/home/allspark/log/clickhouse-server/:/var/log/clickhouse-server/  \
-p 9000:9000 \
-p 8123:8123 \
-p 9009:9009 \
yandex/clickhouse-server

5、转到以下目录:cd /home/allspark/

6、复制配置文件一份,因为一台机器上面需要起两个节点
cp -R clickhouse-server/ clickhouse-server2/
注意:需要更改配置文件,修改metrcs.xml里面 分片、副本名

7、启动两个CK的docker container:这里名字,日志、数据、配置都在不同的目录,端口也加1

docker run --restart always \
-d \
--name clickhouse-server \
--ulimit nofile=262144:262144 \
--volume=/home/allspark/clickhouse/:/var/lib/clickhouse/ \
--volume=/home/allspark/clickhouse-server/:/etc/clickhouse-server/ \
--volume=/home/allspark/log/clickhouse-server/:/var/log/clickhouse-server/  \
-p 9000:9000 \
-p 8123:8123 \
-p 9009:9009 \
yandex/clickhouse-server

docker run --restart always \
-d \
--name clickhouse-server2 \
--ulimit nofile=262144:262144 \
--volume=/home/allspark/clickhouse2/:/var/lib/clickhouse/ \
--volume=/home/allspark/clickhouse-server2/:/etc/clickhouse-server/ \
--volume=/home/allspark/log/clickhouse-server2/:/var/log/clickhouse-server/  \
-p 9001:9000 \
-p 8124:8123 \
-p 9010:9009 \
yandex/clickhouse-server

8、起一个zookeeper,CH的集群分布式依赖与zookeeper(docker会自动拉取镜像文件)

docker run --restart=always \
--name zookeeper -p 2181:2181 \
-v /home/allspark/zookeeper/conf/:/apache-zookeeper-3.5.6-bin/conf/ \
-v /home/allspark/zookeeper/data/:/data \
-v /home/allspark/zookeeper/datalog/:/datalog -v /home/allspark/zookeeper/logs/:/logs -d zookeeper

9、起一个ZKUI,便于查看zookeeper中的数据情况。
docker run --name zkui -p 9090:9090 --link zookeeper:zookeeper -e ZK_SERVER="zookeeper:2181" -d registry.cn-hangzhou.aliyuncs.com/wkaca7114/zkui
2、修改CH配置
1、修改users.xml,用于修改CH的账号密码

1、找到users节点,找到下面的default节点,找到下面的password节点,这里就是密码

2、添加修改账号明就是将default节点完整复制一个或者在其基础修改,为别的名字。例如将default节点名字改为admin,下面的password节点改为admin。就等于有了一个admin/admin的账号。

在users.xml中默认情况在default下的密码为空

2、修改config.xml

1、找到interserver_http_host节点,修改为本机IP 或者 0.0.0.0 ,不要使用127.0.0.1
2、listen_host修改为本机IP,修改为本机IP 或者 0.0.0.0 ,不要使用127.0.0.1
3、在该文件的最后的前面一行添加

<include_from>/etc/clickhouse-server/metrika.xml</include_from>

4、在下面添加,解决时区问题

<timezone>Asia/Shanghai</timezone> 
3、创建文件metrika.xml

在/home/allspark/clickhouse-server和/home/allspark/clickhouse-server2下分别创建文件metrika.xml文件,将下面的配置修改后复制到其中。路径就是第1步中的路径。
下面配置中有备注,请对应修改。

<yandex>
    <!--ck集群节点-->
    <clickhouse_remote_servers>
<clickhouse_cluster_name>
<!--分片1-->
<shard>
    <internal_replication>true</internal_replication>
    <replica>
        <!--这里写节点1的IP4地址-->
        <host>192.168.1.xx1</host> 
        <!--这里写节点1的tcp端口-->
        <port>9000</port>
        <!--这里写节点1的账号-->
        <user>default</user>
        <!--这里写节点1的账号对应的密码-->
        <password>default</password>
    </replica>
</shard>
<!--分片2-->
<shard>
    <internal_replication>true</internal_replication>
    <replica>
    	<!--这里写节点2的IP4地址-->
    	<!--这里的地址有点坑,它是docker容器的地址:查看命令:docker inspect 容器ID-->
        <host>192.168.1.xx2</host>
        <!--这里写节点2的tcp端口-->
        <port>9000</port>
        <!--这里写节点2的账号-->
        <user>default</user>
         <!--这里写节点2的账号对应的密码-->
        <password>default</password>
    </replica>
</shard>
</clickhouse_cluster_name>
    </clickhouse_remote_servers>


<!--zookeeper相关配置-->
<zookeeper-servers>
  <node index="1">
 <!--这里写Zookeeper的IP,如果用docker启动的: docker inspect 容器ID  查看docker容器的IPv4 -->
<host>192.168.1.1</host>
<!--这里写Zookeeper的端口-->
<port>2181</port>
  </node>
</zookeeper-servers>

<macros>
<layer>01</layer>
<shard>01</shard> <!--这个节点配置的分片号-->
<replica>cluster-01-1</replica> <!--当前分片为1,副本为1-->
</macros>

<networks>
<ip>::/0</ip>
</networks>

<!--压缩相关配置-->
<clickhouse_compression>
<case>
<min_part_size>10000000000</min_part_size>
<min_part_size_ratio>0.01</min_part_size_ratio>
<method>lz4</method> <!--压缩算法lz4压缩比zstd快, 更占磁盘-->
</case>
    </clickhouse_compression>
</yandex>
4、重启Docker,重新加载配置
docker restart $(docker ps -a) 
备注

用到的docker命令:

1、docker rm $(docker ps -a -q)  删除所有已经停止的容器:
2、docker容器ipv4的地址
docker inspect 9e171c52f3a2 查看docker容器的IPv4 
3、查看某个容器的日志:
docker logs -f -t --tail 100 574e7de199ac

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值