docker for windonws之Windows 10 家庭中文版安装clickhouse 22.3版本及配置过程

1. 拉取镜像

?
1
docker pull clickhouse/clickhouse-server:22.3.11.12-alpine

2. clickhouse单机版

2.1. 配置容器

因为如下原因,需要将clickhouse的配置文件及数据目录复制到宿主机

修改配置文件 避免容器重启时,丢失数据文件
?
1
2
3
4
5
6
7
8
9
#启动容器
docker run -d –name ch-server –ulimit nofile=262144:262144 clickhouse/clickhouse-server:22.3.11.12-alpine
# 复制文件到宿主机
docker cp ch-server:/etc/clickhouse-server D:/docker/ch/etc/clickhouse-server
docker cp ch-server:/var/lib/clickhouse D:/docker/ch/data
#停止容器
docker stop ch-server
# 再次启动容器
docker run -d –name=single-ch-server -p 8123:8123 -p 9000:9000 -p 9009:9009 –ulimit nofile=262144:262144 -v D:/docker/ch/data:/var/lib/clickhouse:rw -v D:/docker/ch/etc/clickhouse-server:/etc/clickhouse-server:rw clickhouse/clickhouse-server:22.3.11.12-alpine

2.2. 测试jdbc连接

启动成功后,使用DBeaver测试,用户名default,密码为空,则可以正常连接。

%docker for windonws之Windows 10 家庭中文版安装clickhouse 22.3版本及配置过程-猿站网-插图

3 clickhouse集群版

3.1. 修改集群配置

将配置、日志放在ch01目录下 修改 D:\docker\ch\ch01\etc\clickhouse-server下的config.xml中,删除 <remote_servers>节点并添加如下信息
?
1
2
3
4
5
6
<include_from>/etc/clickhouse-server/metrika01.xml</include_from>
<remote_servers incl=”clickhouse_remote_servers” optional=”true”/>
<zookeeper incl=”zookeeper_servers” optional=”true”/>
<macros incl=”macros” optional=”true”/>
<!–MergeTree引擎表的数据压缩设置,在metrika.xml–>
<compression incl=”clickhouse_compression”></compression>
新增metrika01.xml文件,内容如下: 考虑到一台笔记本的资源比较有限,所以就安装单个节点的zk, clickhouse的集群也是2分片1副本的。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?xml version=”1.0″?>
<yandex>
<clickhouse_remote_servers>
<cluster01>
<shard>
<internal_replication>true</internal_replication>
<weight>1</weight>
<replica>
<host>ch01</host>
<port>9000</port>
<user>default</user>
<password></password>
</replica>
</shard>
<shard>
<internal_replication>true</internal_replication>
<weight>1</weight>
<replica>
<host>ch02</host>
<port>9000</port>
<user>default</user>
<password></password>
</replica>
</shard>
</cluster01>
</clickhouse_remote_servers>
<macros>
<layer>01</layer>
<shard>01</shard>
<replica>ch01</replica>
</macros>
<zookeeper_servers>
<node index=”1″>
<host>zk01</host>
<port>2181</port>
</node>
</zookeeper_servers>
<networks>
<ip>::/0</ip>
</networks>
<clickhouse_compression>
<case>
<min_part_size>1073741824</min_part_size>
<min_part_size_ratio>0.01</min_part_size_ratio>
<method>lz4</method>
</case>
</clickhouse_compression>
</yandex>

节点ch02的配置:复制ch01目录,产生ch02目录

修改metrika01.xml,将macros内容调整,其它配置与上面一致。

?
1
2
3
4
5
<macros>
<layer>01</layer>
<shard>02</shard>
<replica>ch02</replica>
</macros>

3.2. 编辑docker-compose.yml

采用卷标的方式挂载数据

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
version: 3.1
services:
zookeeper:
image: zookeeper:3.4.14
ports:
– “8181:2181”
– “8182:2182”
hostname: zk01
ch01:
image: clickhouse/clickhouse-server:22.3.11.12-alpine
restart: on-failure
container_name: ch01
ports:
– 9000:9000
– 8123:8123
– 9009:9009
volumes:
– ch1-data:/var/lib/clickhouse
– D:/docker/ch/ch01/etc/clickhouse-server:/etc/clickhouse-server:rw
– D:/docker/ch/ch01/log:/var/log/clickhouse-server:rw
hostname: ch01
ulimits:
nofile:
soft: 262144
hard: 262144
depends_on:
– “zookeeper”
ch02:
image: clickhouse/clickhouse-server:22.3.11.12-alpine
restart: on-failure
container_name: ch02
ports:
– 9800:9000
– 8823:8123
– 9809:9009
volumes:
– ch2-data:/var/lib/clickhouse
– D:/docker/ch/ch02/etc/clickhouse-server:/etc/clickhouse-server:rw
– D:/docker/ch/ch02/log:/var/log/clickhouse-server:rw
hostname: ch02
ulimits:
nofile:
soft: 262144
hard: 262144
depends_on:
– “zookeeper”
volumes:
ch1-data:
ch2-data:

3.3. 启动CH集群

?
1
docker-compose up -d

3.4. 测试

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
create database test on cluster cluster01;
use test;
create table events_local on cluster cluster01 (
ID String,
EventType UInt8,
URL String,
EventTime DateTime
) ENGINE = MergeTree()
PARTITION BY toStartOfDay(EventTime)
ORDER BY (EventTime,EventType)
SETTINGS index_granularity = 8192;
create table events on cluster cluster01 as test.events_local ENGINE = Distributed(cluster01, test, events_local, rand());
insert into events(ID,EventType,URL,EventTime) values (11,1,http://www.baidu.com,2021-12-20 12:00:00);
insert into events(ID,EventType,URL,EventTime) values (12,1,http://www.baidu.com,2021-12-20 12:00:00);
insert into events(ID,EventType,URL,EventTime) values (13,1,http://www.baidu.com,2021-12-20 12:00:00);
insert into events(ID,EventType,URL,EventTime) values (14,1,http://www.baidu.com,2021-12-20 12:00:00);
insert into events(ID,EventType,URL,EventTime) values (15,1,http://www.baidu.com,2021-12-20 12:00:00);
insert into events(ID,EventType,URL,EventTime) values (16,1,http://www.baidu.com,2021-12-20 12:00:00);

4. 存在的解决问题

4.1. Permission denied

将Clickhouse的数据目录放在宿主机时,在插入数据时报如下错误,但如果不放在宿主机,则数据会丢失。

?
1
2
Received exception from server (version 22.3.11):
Code: 1001. DB::Exception: Received from localhost:9000. DB::Exception: std::__1::__fs::filesystem::filesystem_error: filesystem error: in rename: Permission denied [/var/lib/clickhouse/store/0d4/0d4a6f52-b3a6-4496-8174-e03ae9503321/tmp_insert_1639958400_1_1_0/] [/var/lib/clickhouse/store/0d4/0d4a6f52-b3a6-4496-8174-e03ae9503321/1639958400_1_1_0/]. (STD_EXCEPTION)
采用将宿主机 路径直接挂载到本地,比较直观,但需要管理本地的路径,但这种方式在clickhouse写数据时,会报:Permission denied 使用卷标的方式,比较简洁,但你不知道数据存在本地什么位置,但这种方式在clickhouse写数据时是正常的

目前不清楚具体的原因,如果你知道,烦请告知。 4.2. Ports are not available

报错信息:Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:8848 -> 0.0.0.0:0: listen tcp 0.0.0.0:8848: bind: An attempt was made to access a socket in a way forbidden by its access permissions.

通过cmd命令查看哪些端口被禁用TCP协议

?
1
netsh interface ipv4 show excludedportrange protocol=tcp

将docker启动命令中的宿主机端口改成禁用之外的就可以了

%docker for windonws之Windows 10 家庭中文版安装clickhouse 22.3版本及配置过程-1猿站网-插图

到此这篇关于docker for windonws之Windows 10 家庭中文版安装clickhouse 22.3版本及配置的文章就介绍到这了,更多相关Windows 10安装clickhouse内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/penriver/article/details/126458447

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:代理服务器是什么

2023-3-3 16:04:27

建站知识

小知识:M2M 是什么意思?应用在哪些领域?

2023-3-3 16:09:53

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索