Apache Doris 部署实践分享
Apache Doris 是一款基于 MPP 架构的高性能、实时的分析型数据库,以其高并发、低延迟和易于使用的特性,在实时数据仓库和即席查询场景中得到了广泛应用。本文将介绍两种主流的部署方式:Docker 快速部署与手动标准部署,帮助开发者和运维人员根据自身需求选择合适的方案。
部署前准备:环境与系统配置
无论选择哪种部署方式,了解 Doris 的基本环境要求都是必要的。
- 操作系统:推荐使用 CentOS 7.x/8.x 或 Ubuntu 18.04+/20.04+ 等主流 Linux 发行版,内核版本不低于 3.10。
- Java 环境:
- Doris 2.x 及更早版本依赖 JDK 1.8。
- Doris 3.x 及之后版本则需升级至 JDK 17。
- 系统参数调优:为确保 Doris 稳定高效运行,避免“文件句柄不足”或“虚拟内存抖动”等问题,建议对以下 Linux 内核参数进行优化。
-
提升文件句柄数
Doris 运行时会打开大量文件,默认的 1024 个句柄通常不足。编辑/etc/security/limits.conf文件,添加如下配置:* soft nofile 655360 * hard nofile 655360修改后,可通过
ulimit -n 655360命令使配置临时生效。 -
调整虚拟内存策略
为避免 Linux 系统频繁使用 Swap 分区导致性能下降,应降低系统使用虚拟内存的倾向。编辑/etc/sysctl.conf文件,添加或修改以下行:vm.swappiness=10执行
sysctl -p命令使配置生效。 -
设置最大内存映射数
Doris 的 BE 节点启动时需要较大的内存映射空间。编辑/etc/sysctl.conf文件,确保以下参数值不小于 2000000:vm.max_map_count = 2000000执行
sysctl -p命令使配置生效。
方式一:Docker Compose 快速部署
对于希望快速体验 Doris 功能、进行开发测试或搭建演示环境的用户,使用 Docker Compose 是最便捷的选择。此方法可以一键启动一个包含 Frontend (FE) 和 Backend (BE) 组件的单机集群。
-
创建
docker-compose.yml文件
创建一个docker-compose.yml文件,并填入以下内容。该配置适用于 Doris 3.x 版本,通过环境变量强制设置了单副本,以适应单节点测试场景。注意:配置文件中的 IP 地址为 Docker 网络内部地址,请勿修改。
version: '3' services: doris-fe: image: apache/doris:fe-3.1.4 container_name: doris-fe hostname: doris-fe environment: - FE_SERVERS=fe1:172.25.80.2:9010 - FE_ID=1 # 关键配置:设置默认副本数为1,适用于单节点测试 - CONFIG_default_replication_num=1 ports: - "8030:8030" - "9030:9030" volumes: - ./doris/fe/doris-meta:/opt/apache-doris/fe/doris-meta - ./doris/fe/log:/opt/apache-doris/fe/log networks: doris-net: ipv4_address: 172.25.80.2 doris-be: image: apache/doris:be-3.1.4 container_name: doris-be hostname: doris-be depends_on: - doris-fe environment: - FE_SERVERS=fe1:172.25.80.2:9010 - BE_ADDR=172.25.80.3:9050 ports: - "8040:8040" volumes: - ./doris/be/storage:/opt/apache-doris/be/storage - ./doris/be/log:/opt/apache-doris/be/log networks: doris-net: ipv4_address: 172.25.80.3 networks: doris-net: driver: bridge ipam: config: - subnet: 172.25.80.0/24 -
启动集群
在docker-compose.yml所在目录下,执行以下命令启动服务:docker-compose up -d -
验证部署
- Web UI 访问:在浏览器中访问
http://127.0.0.1:8030,即可进入 Doris 管理界面。默认用户名为root,无密码。 - MySQL 客户端连接:使用 MySQL 客户端工具连接 Doris,进行 SQL 操作。
mysql -uroot -P9030 -h127.0.0.1
- Web UI 访问:在浏览器中访问
方式二:手动标准部署
手动部署是生产环境的标准实践,提供了更高的灵活性和可控性,适用于构建高可用、可扩展的 Doris 集群。
-
下载安装包
从 Apache Doris 官方网站下载最新稳定版的二进制安装包。# 以 2.1.6 版本为例 wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-2.1.6-bin-x64.tar.gz -
解压与配置
- 解压安装包
tar -zxvf apache-doris-2.1.6-bin-x64.tar.gz cd apache-doris-2.1.6-bin-x64 - 配置 FE (Frontend)
编辑fe/conf/fe.conf文件。如果服务器存在多个网段,必须配置priority_networks参数,以指定 FE 监听的 IP 网段,例如priority_networks = 192.168.0.0/24。同时,确保JAVA_HOME环境变量已正确指向 JDK 安装路径。 - 配置 BE (Backend)
编辑be/conf/be.conf文件。同样,根据服务器网络情况配置priority_networks和JAVA_HOME。
- 解压安装包
-
启动服务并组建集群
- 启动 FE 服务
./fe/bin/start_fe.sh --daemon - 启动 BE 服务
./be/bin/start_be.sh --daemon - 注册 BE 节点
使用 MySQL 客户端连接 FE,将 BE 节点加入集群。# 连接 FE,默认查询端口为 9030 mysql -uroot -P9030 -h<fe_ip_address> # 在 MySQL 命令行中执行,将 <be_ip_address> 替换为实际的 BE 服务器 IP ALTER SYSTEM ADD BACKEND "<be_ip_address>:9050"; # 查看 BE 节点状态,确认注册成功 SHOW BACKENDS;
- 启动 FE 服务
-
验证部署
与 Docker 部署类似,通过访问http://<fe_ip_address>:8030或使用 MySQL 客户端连接,确认集群状态正常。
附录:核心端口说明
在部署过程中,确保防火墙已开放 Doris 所需的核心端口
| 组件 | 端口 | 用途 |
|---|---|---|
| FE | 9030 | MySQL 客户端连接端口 |
| FE | 8030 | Web UI 与 HTTP API 端口 |
| BE | 9060 | BE 服务端口,接收 FE 请求 |
| BE | 8040 | BE Web UI 端口 |
| BE | 9050 | BE 心跳服务端口 |
欢迎大家指教