以下是部署Doris三节点FE(Frontend)和三节点BE(Backend)的完整流程,整合了最佳实践和避坑指南。
📋 一、部署前准备
-
系统要求
- 硬件:
- FE节点:16核+ CPU、64GB+内存、SSD元数据盘(≥100GB)
- BE节点:16核+ CPU、64GB+内存、数据盘(总容量=原始数据×3副本×1.4预留)
- 软件:
- JDK 1.8(所有节点)
- 关闭防火墙 & Swap:
systemctl disable firewalld
+swapoff -a
(永久生效需注释/etc/fstab
中swap行) - 文件句柄数:
echo "* soft nofile 65536" >> /etc/security/limits.conf echo "* hard nofile 65536" >> /etc/security/limits.conf sysctl -w vm.max_map_count=2000000 # 防BE启动失败
- 硬件:
-
下载与解压
所有节点执行:wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-2.0.8-bin-x64-noavx2.tar.gz tar -zxvf apache-doris-2.0.8-bin-x64-noavx2.tar.gz mv apache-doris-2.0.8-bin-x64-noavx2 /opt/doris
⚙️ 二、配置FE集群(3节点)
以192.168.0.103为Master FE为例:
-
修改配置文件 (
fe/conf/fe.conf
)
所有FE节点配置:priority_networks = 192.168.0.0/24 # 绑定本机网段 meta_dir = /data/doris-meta # 必须SSD独立目录 JAVA_OPTS = "-Xmx16G" # 堆内存≥8GB
-
启动FE服务
- Master节点(103):
./bin/start_fe.sh --daemon
- Follower节点(104/105):
./bin/start_fe.sh --helper 192.168.0.103:9010 --daemon # 指向Master
- Master节点(103):
-
添加FE节点到集群
通过MySQL客户端连接Master FE:mysql -h 192.168.0.103 -P 9030 -uroot
执行:
ALTER SYSTEM ADD FOLLOWER "192.168.0.104:9010"; -- Follower角色 ALTER SYSTEM ADD OBSERVER "192.168.0.105:9010"; -- Observer角色
💡 提示:使用
SHOW PROC '/frontends';
检查所有FE的Alive
状态为true
。
🖥️ 三、配置BE集群(3节点)
所有BE节点配置:
-
修改配置文件 (
be/conf/be.conf
)priority_networks = 192.168.0.0/24 # 绑定本机IP storage_root_path = /data1/doris.HDD;/data2/doris.SSD # 多路径用分号隔开 be_port = 9060 # 通信端口 brpc_port = 8060 # 高性能RPC端口
-
启动BE服务
./bin/start_be.sh --daemon
-
添加BE节点到集群
在Master FE的MySQL客户端执行:ALTER SYSTEM ADD BACKEND "192.168.0.103:9050"; ALTER SYSTEM ADD BACKEND "192.168.0.104:9050"; ALTER SYSTEM ADD BACKEND "192.168.0.105:9050";
✅ 验证:
SHOW PROC '/backends';
需满足:Alive: true
AvailCapacity
显示实际磁盘容量(非1.00 B
)。
🧪 四、集群验证与测试
-
基础功能测试
CREATE DATABASE test; USE test; CREATE TABLE t1 (k1 INT, k2 VARCHAR(10)) ENGINE=OLAP DISTRIBUTED BY HASH(k1) BUCKETS 3 PROPERTIES("replication_num"="3"); -- 三副本 INSERT INTO t1 VALUES (1,'a'),(2,'b'); SELECT * FROM t1; -- 检查数据一致性
-
监控与高可用
- FE状态:
curl http://192.168.0.103:8030/api/bootstrap
返回{"status":"OK"}
- 模拟故障:停用一个FE/BE,观察查询是否自动切换。
- FE状态:
⚠️ 五、常见问题解决
-
FE节点无法加入集群
- 删除所有非Master节点的
meta_dir
目录,重新启动。 - 检查
edit_log_port
(默认9010)是否开放。
- 删除所有非Master节点的
-
BE显示
AvailCapacity=1.00 B
- 检查FE与BE的
cluster_id
是否一致(修改BE的storage/cluster_id
文件)。 - 确认BE存储路径权限(需doris用户可写)。
- 检查FE与BE的
-
BE启动失败
- 检查系统参数:
vm.max_map_count
和文件句柄数。 - 日志分析:
be/log/be.INFO
。
- 检查系统参数:
部署完成后,建议通过Grafana监控集群指标(如FE查询延迟、BE磁盘使用率)。