Doris生产集群最低部署方案(2025年4月版)
一、节点规划与数量
1. FE节点(Frontend)
- 数量:至少 3个节点(1个Follower + 2个 Observer),确保高可用(HA)。
- 角色分配:
- Follower:参与元数据读写和Leader选举。
- Observer:仅提供元数据备份和查询负载均衡,不参与选举。
2. BE节点(Backend)
- 数量:至少 3个节点(每个物理机部署1个BE实例),支持 3副本数据存储,避免单机多实例导致数据分布不均。
二、硬件配置要求
组件 | CPU | 内存 | 磁盘 | 网络 | 实例数 | 来源 |
---|---|---|---|---|---|---|
FE | 16核+ | 64GB+ | SSD或RAID卡,100GB+ | 万兆网卡 | 3 | |
BE | 16核+ | 64GB+ | SSD/SATA,单盘≥1TB | 万兆网卡 | 3 |
详细说明:
- FE磁盘:元数据(
meta_dir
)需单独挂载 SSD,容量≥100GB,避免与日志混合存储。 - BE磁盘:总容量=原始数据量 × 3(副本数) × 1.4(预留40% Compaction空间)。
- 若混合存储介质(如SSD+HDD),需在
storage_root_path
中标记介质类型(如/data1.HDD;/data2.SSD
)。
- 若混合存储介质(如SSD+HDD),需在
三、操作系统与软件环境
1. 操作系统
- 版本:CentOS 7.1+ / Ubuntu 16.04+,推荐 CentOS 7.9(稳定性已验证)。
- 文件系统:ext4或xfs。
2. 系统优化
- 关闭Swap:
swapoff -a
并永久禁用。 - 文件句柄数:
echo "* soft nofile 65536" >> /etc/security/limits.conf echo "* hard nofile 65536" >> /etc/security/limits.conf
- 时钟同步:所有节点时间偏差≤5秒(使用NTP服务)。
- 内存参数:
vm.max_map_count=2000000
(防止BE启动失败)。
四、网络与端口配置
端口 | 默认值 | 用途 | 通信方向 | 来源 |
---|---|---|---|---|
FE query_port | 9030 | MySQL协议查询入口 | 用户→FE | |
FE http_port | 8030 | Web管理界面 | FE↔FE、用户→FE | |
BE be_port | 9060 | 接收FE的元数据操作请求 | FE→BE | |
BE brpc_port | 8060 | BE节点间数据传输(高性能RPC) | BE↔BE、FE→BE |
网络要求:
- 带宽:万兆网卡(10Gbps),降低节点间数据传输延迟。
- IP绑定:多网卡环境下需在
fe.conf
和be.conf
中指定priority_networks
(如10.193.0.0/24
)。
五、部署流程(精简版)
1. 环境准备
- 创建专用用户(如
doris
),分配/data/doris
目录权限。 - 安装Java 1.8(FE/BE依赖)和GCC 4.8.2+(编译工具链)。
2. FE部署
- 配置文件(
fe.conf
):meta_dir = /data/doris-meta # 独立SSD磁盘 priority_networks = 10.193.0.0/24 JAVA_OPTS = "-Xmx16G" # 堆内存≥8GB
- 启动命令:
bin/start_fe.sh --daemon
。
3. BE部署
- 配置文件(
be.conf
):storage_root_path = /data1/doris.HDD;/data2/doris.SSD
- 注册BE:通过MySQL客户端连接FE执行:
ALTER SYSTEM ADD BACKEND "BE_IP:9050"; # 依次添加所有BE节点
六、验证与监控
1. 健康检查
- FE状态:
curl http://FE_IP:8030/api/bootstrap
返回{"status":"OK"}
。 - BE状态:
SHOW BACKENDS\G
查看节点存活及磁盘使用率。
2. 监控工具
- Prometheus + Grafana:采集BE的
tablet_num
、FE的query_latency
等指标。
七、扩展与高可用建议
- FE扩展:新增Observer节点分担查询压力,不影响元数据写入。
- BE扩容:按数据增长线性增加BE节点,单集群建议10-100台。
- 混合部署:若FE与BE混部,需隔离元数据目录与数据目录至不同磁盘。