Docker中安装ClickHouse

下文使用CH代替ClickHouse的称呼。

单机版本

docker run -d \

--name clickhouse-server \

-p 9000:9000 \

-p 8123:8123 \

-p 9009:9009 \

--ulimit nofile=262144:262144 \

yandex/clickhouse-server

分布式集群版本

分布式集群结构图

说明:

节点1和节点3为备份数据

节点2和节点4为备份数据

节点1和节点3为分片1

节点2和节点4为分片2

分片1和分片2为分布式

1、操作docker

每一台电脑都有两个节点,我这边只演示了一台机器的,请自行增加机器。

# 首先起一个单机的CH

docker run -d \

--name clickhouse-server \

-p 9000:9000 \

-p 8123:8123 \

-p 9009:9009 \

--ulimit nofile=262144:262144 \

yandex/clickhouse-server

# 将上面单机的CH中的配置文件复制到宿主机的目录中。没有/home/allspark/目录的,请提前创建。

docker cp clickhouse-server:/etc/clickhouse-server/ /home/allspark/

# 停止单机CH

docker stop clickhouse-server

# 删除单机CH

docker rm clickhouse-server

# 起一个CH,这里是将配置、日志、以及数据映射到宿主机

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

# 转到以下目录

cd /home/allspark/

# 复制配置文件一份,因为一台机器上面需要起两个节点

cp -R clickhouse-server/ clickhouse-server2/

# 这里名字,日志、数据、配置都在不同的目录,端口也加1

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

# 起一个zookeeper,CH的集群分布式依赖与zookeeper

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

# 起一个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的账号。

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

2、修改config.xml

1、找到interserver_http_host节点,修改为本机IP,不要使用127.0.0.1

2、listen_host修改为本机IP,不要使用127.0.0.1

3、在该文件的最后的前面一行添加

/etc/clickhouse-server/metrika.xml

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

Asia/Shanghai

3、创建文件metrika.xml

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

下面配置中有备注,请对应修改。

true

192.168.1.1

9000

default

default

192.168.1.2

9000

default

default

true

192.168.1.1

9001

default

default

192.168.1.2

9001

default

default

192.168.1.1

2181

01

01

192.168.1.1

::/0

10000000000

0.01

lz4

4、重启Docker,重新加载配置

docker restart $(docker ps -a)

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐