部署 Docker 集群
背景说明
本篇将简述如何通过 docker run 或 docker-compose up 命令快速构建一套完整的 Doris 测试集群。
适用场景
建议在 SIT 或者 DEV 环境中使用 Doris Docker 来简化部署的流程。
如在新版本中想测试某一个功能点,可以使用 Doris Docker 部署一个 Playground 环境。或者在调试的过程中要复现某个问题时,也可以使用 docker 环境来模拟。
在生产环境上,当前暂时尽量避免使用容器化的方案进行 Doris 部署。
软件环境
| 软件 | 版本 |
|---|---|
| Docker | 20.0 及以上 |
| docker-compose | 2.10 及以上 |
硬件环境
| 配置类型 | 硬件信息 | 最大运行集群规模 |
|---|---|---|
| 最低配置 | 2C 4G | 1FE 1BE |
| 推荐配置 | 4C 16G | 3FE 3BE |
前期环境准备
需在宿主机执行如下命令
1. sysctl -w vm.max_map_count=2000000
Docker Compose
不同平台需要使用不同 Image 镜像,本篇以 X86_64 平台为例。
网络模式说明
Doris Docker 适用的网络模式有两种。
- 适合跨多节点部署的 HOST 模式,这种模式适合每个节点部署 1FE 1BE。
- 适合单节点部署多 Doris 进程的子网网桥模式,这种模式适合单节点部署(推荐),若要多节点混部需要做更多组件部署(不推荐)。
为便于展示,本章节仅演示子网网桥模式编写的脚本。
接口说明
从 Apache Doris 1.2.1 Docker Image 版本起,各个进程镜像接口列表如下:
| 进程名 | 接口名 | 接口定义 | 接口示例 |
|---|---|---|---|
| FE | BE\ | BROKER | FE_SERVERS |
| FE | FE_ID | FE 节点 ID | 1 |
| BE | BE_ADDR | BE 节点主要信息 | 172.20.80.5:9050 |
| BE | NODE_ROLE | BE 节点类型 | computation |
| BROKER | BROKER_ADDR | BROKER 节点主要信息 | 172.20.80.6:8000 |
注意,以上接口必须填写信息,否则进程无法启动。
FE_SERVERS 接口规则为:
FE_NAME:FE_HOST:FE_EDIT_LOG_PORT[,FE_NAME:FE_HOST:FE_EDIT_LOG_PORT]FE_ID 接口规则为:
1-9的整数,其中1号 FE 为 Master 节点。BE_ADDR 接口规则为:
BE_HOST:BE_HEARTBEAT_SERVICE_PORTNODE_ROLE 接口规则为:
computation或为空,其中为空或为其他值时表示节点类型为mix类型BROKER_ADDR 接口规则为:
BROKER_HOST:BROKER_IPC_PORT
脚本模板
Docker Run 命令
创建子网网桥
1. docker network create --driver bridge --subnet=172.20.80.0/24 doris-network
1FE & 1BE 命令模板
1. docker run -itd \
2. --name=fe \
3. --env FE_SERVERS="fe1:172.20.80.2:9010" \
4. --env FE_ID=1 \
5. -p 8030:8030 \
6. -p 9030:9030 \
7. -v /data/fe/doris-meta:/opt/apache-doris/fe/doris-meta \
8. -v /data/fe/conf:/opt/apache-doris/fe/conf \
9. -v /data/fe/log:/opt/apache-doris/fe/log \
10. --network=doris-network \
11. --ip=172.20.80.2 \
12. apache/doris:1.2.1-fe-x86_64
14. docker run -itd \
15. --name=be \
16. --env FE_SERVERS="fe1:172.20.80.2:9010" \
17. --env BE_ADDR="172.20.80.3:9050" \
18. -p 8040:8040 \
19. -v /data/be/storage:/opt/apache-doris/be/storage \
20. -v /data/be/conf:/opt/apache-doris/be/conf \
21. -v /data/be/log:/opt/apache-doris/be/log \
22. --network=doris-network \
23. --ip=172.20.80.3 \
24. apache/doris:1.2.1-be-x86_64
3FE & 3BE Run 命令模板如有需要点击此处访问下载。
Docker Compose 脚本
1FE & 1BE 模板
1. version: '3'
2. services:
3. docker-fe:
4. image: "apache/doris:1.2.1-fe-x86_64"
5. container_name: "doris-fe"
6. hostname: "fe"
7. environment:
8. - FE_SERVERS=fe1:172.20.80.2:9010
9. - FE_ID=1
10. ports:
11. - 8030:8030
12. - 9030:9030
13. volumes:
14. - /data/fe/doris-meta:/opt/apache-doris/fe/doris-meta
15. - /data/fe/conf:/opt/apache-doris/fe/conf
16. - /data/fe/log:/opt/apache-doris/fe/log
17. networks:
18. doris_net:
19. ipv4_address: 172.20.80.2
20. docker-be:
21. image: "apache/doris:1.2.1-be-x86_64"
22. container_name: "doris-be"
23. hostname: "be"
24. depends_on:
25. - docker-fe
26. environment:
27. - FE_SERVERS=fe1:172.20.80.2:9010
28. - BE_ADDR=172.20.80.3:9050
29. ports:
30. - 8040:8040
31. volumes:
32. - /data/be/storage:/opt/apache-doris/be/storage
33. - /data/be/conf:/opt/apache-doris/be/conf
34. - /data/be/script:/docker-entrypoint-initdb.d
35. - /data/be/log:/opt/apache-doris/be/log
36. networks:
37. doris_net:
38. ipv4_address: 172.20.80.3
39. networks:
40. doris_net:
41. ipam:
42. config:
43. - subnet: 172.20.80.0/16
3FE & 3BE Docker Compose 脚本模板如有需要点击此处访问下载。
部署 Doris Docker
部署方式二选一即可:
- 执行
docker run命令创建集群 - 保存
docker-compose.yaml脚本,同目录下执行docker-compose up -d命令创建集群
特例说明
MacOS 由于内部实现容器的方式不同,在部署时宿主机直接修改 max_map_count 值可能无法成功,需要先创建以下容器:
1. docker run -it --privileged --pid=host --name=change_count debian nsenter -t 1 -m -u -n -i sh
容器创建成功执行以下命令:
1. sysctl -w vm.max_map_count=2000000
然后 exit 退出,创建 Doris Docker 集群。
未尽事项
- Compose Demo List
