docker for windonws之Windows 10 家庭中文版安裝clickhouse 22.3版本及配置過程
1. 拉取鏡像
docker pull clickhouse/clickhouse-server:22.3.11.12-alpine
2. clickhouse單機(jī)版
2.1. 配置容器
因為如下原因,需要將clickhouse的配置文件及數(shù)據(jù)目錄復(fù)制到宿主機(jī)
- 修改配置文件
- 避免容器重啟時,丟失數(shù)據(jù)文件
#啟動容器 docker run -d --name ch-server --ulimit nofile=262144:262144 clickhouse/clickhouse-server:22.3.11.12-alpine # 復(fù)制文件到宿主機(jī) 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,密碼為空,則可以正常連接。

3 clickhouse集群版
3.1. 修改集群配置
- 將配置、日志放在ch01目錄下
- 修改 D:\docker\ch\ch01\etc\clickhouse-server下的config.xml中,刪除 <remote_servers>節(jié)點并添加如下信息
<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引擎表的數(shù)據(jù)壓縮設(shè)置,在metrika.xml-->
<compression incl="clickhouse_compression"></compression>
- 新增metrika01.xml文件,內(nèi)容如下:
- 考慮到一臺筆記本的資源比較有限,所以就安裝單個節(jié)點的zk, clickhouse的集群也是2分片1副本的。
<?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>
節(jié)點ch02的配置:復(fù)制ch01目錄,產(chǎn)生ch02目錄
修改metrika01.xml,將macros內(nèi)容調(diào)整,其它配置與上面一致。
<macros>
<layer>01</layer>
<shard>02</shard>
<replica>ch02</replica>
</macros>3.2. 編輯docker-compose.yml
采用卷標(biāo)的方式掛載數(shù)據(jù)
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集群
docker-compose up -d
3.4. 測試
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的數(shù)據(jù)目錄放在宿主機(jī)時,在插入數(shù)據(jù)時報如下錯誤,但如果不放在宿主機(jī),則數(shù)據(jù)會丟失。
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)
- 采用將宿主機(jī) 路徑直接掛載到本地,比較直觀,但需要管理本地的路徑,但這種方式在clickhouse寫數(shù)據(jù)時,會報:Permission denied
- 使用卷標(biāo)的方式,比較簡潔,但你不知道數(shù)據(jù)存在本地什么位置,但這種方式在clickhouse寫數(shù)據(jù)時是正常的
目前不清楚具體的原因,如果你知道,煩請告知。 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協(xié)議
netsh interface ipv4 show excludedportrange protocol=tcp
將docker啟動命令中的宿主機(jī)端口改成禁用之外的就可以了

到此這篇關(guān)于docker for windonws之Windows 10 家庭中文版安裝clickhouse 22.3版本及配置的文章就介紹到這了,更多相關(guān)Windows 10安裝clickhouse內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker之蘋果Mac安裝Docker的兩種方式小結(jié)
這篇文章主要介紹了Docker之蘋果Mac安裝Docker的兩種方式小結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04
Docker mongoDB 4.2.1 安裝并收集springboot日志的步驟詳解
這篇文章主要介紹了Docker mongoDB 4.2.1 安裝并收集springboot日志,本文分步驟通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12
半小時實現(xiàn)基于ChatGPT搭建微信機(jī)器人
這篇文章主要為大家介紹了基于ChatGPT搭建微信機(jī)器人過程示例詳解,半小時就能完成,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Docker安裝ClickHouse并初始化數(shù)據(jù)測試
clickhouse作為現(xiàn)在流行的數(shù)據(jù)分析數(shù)據(jù)庫,非常熱門,docker如何安裝ClickHouse,很多朋友并不是很明白,今天小編抽空給大家分享一篇教程關(guān)于Docker安裝ClickHouse并初始化數(shù)據(jù)測試的問題,一起看看吧2021-06-06
淺談Docker consul的容器服務(wù)更新與發(fā)現(xiàn)
本文主要介紹了淺談Docker consul的容器服務(wù)更新與發(fā)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
完美解決Windows10下無法對docker容器進(jìn)行端口訪問的操作
這篇文章主要介紹了完美解決Windows10下無法對docker容器進(jìn)行端口訪問的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11

