Docker快速部署clickhouse
Clickhouse特點
- 完備的DBMS:不僅是個數據庫,也是個數據庫系統
- 列存儲和數據壓縮:典型的olap數據庫特性
- 向量化並行:利用CPU的SIMD(Single INstruction MUltiple Data),單條指令操作多條數據
- 多線程並行:向量化並行利用硬件采取數據並行(缺陷:不適應較多分支的判斷),多線程級並行提高並發
- 關系模型:有數據庫、表、視圖和函數。更好清晰的描述實體間的關系
- SQL:極高的群眾基礎
- 多樣化表引擎:合並樹、內存、文件、接口等20多種表引擎
- 多主架構:天然避免單點故障,服務端對客戶端都是“孿生兄弟”
- 分布式:分區、分片
Docker快速部署
-
創建目錄
cd /var/data/test_clickhouse-server mkdir {conf,database,log}
-
拷貝默認配置文件
# 因我們無默認配置文件,那么就先運行一個臨時容器,然后再將容器內的臨時文件拷貝出來,如果你本身就有配置文件可以省略直接上傳到conf目錄下即可 docker run --rm --name tmp --ulimit nofile=262144:262144 yandex/clickhouse-server docker cp tmp:/etc/clickhouse-server/users.xml /var/data/clickhouse/conf/users.xml docker cp tmp:/etc/clickhouse-server/config.xml /var/data/clickhouse/conf/config.xml
-
生成密碼
# 這一步如果你不需要密碼就跳過,需要操作一下 # 我們生成一個double_shal 加密密碼,密碼是 123 echo "123"; echo -n "123" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-' ## 明文 123 ## 密文 23ae809ddacaf96af0fd78ed04b6a265e05aa257
-
修改
users.xml
配置同理,不需要配置密碼的就省略這一步吧。
看圖
-
運行容器
docker run -itd --name test_clickhouse-server --ulimit nofile=262144:262144 -p 28123:8123 -p 29000:9000 -p 29009:9009 -v /var/data/test_clickhouse/database:/var/lib/clickhouse:rw -v /var/data/test_clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml -v /var/data/test_clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml -v /var/data/test_clickhouse/log:/var/log/clickhouse-server:rw yandex/clickhouse-server:19.17.5.18
- 測試
# 進入容器
docker exec -it test_clickhouse-server bash
# 連接clickhouse
clickhouse-client --password "123"
# 查看庫
show databases;
## 或者在其他其他上通過http接口測試是否能連通
echo 'show databases' | curl 'http://127.0.0.1:28123/?user=default&password=123' -d @-
## 如果本地可以通,其他主機連不通的話則看一下防火牆是否打開端口了,沒有的開放一下
firewall-cmd --zone=public --add-port=28123/tcp --permanent
firewall-cmd --zone=public --add-port=29000/tcp --permanent
firewall-cmd --zone=public --add-port=29009/tcp --permanent
注意:ClickHouse默認的用戶是default,密碼則是你設置的密碼