一、前言

本文基于CentOS虚拟机环境,手把手教大家搭建Apache Doris 2.1.6 三节点高可用集群,全程无冗余操作,适配企业开发测试环境。

本次部署采用 三节点FE+三节点BE 架构,保证集群高可用,适配大数据实时、离线分析场景。区别于普通部署文档,本文每一步操作都附带详细原理+作用解释,零基础也能看懂,所有步骤亲测可用,可直接复刻部署。

二、部署环境介绍

2.1 基础环境

  • 操作系统:CentOS 7.x

  • Doris版本:apache-doris-2.1.6-bin-x64(二进制免编译版)

  • 运行依赖:JDK8+(已提前安装配置,Doris FE依赖Java环境启动)

  • 防火墙:所有节点已关闭(避免端口拦截导致集群通信失败)

  • 文件分发工具:自定义myscp 脚本(支持一键批量分发文件,省去逐台机器操作)

2.2 集群节点规划

所有节点均部署 FE、BE 服务,实现FE高可用+BE多副本,避免单点故障

IP地址

主机名

部署服务

服务作用

192.168.119.11

hadoop11

FE、BE(Master主节点)

集群主管理节点,负责元数据管理、接收客户端请求、调度BE节点

192.168.119.12

hadoop12

FE、BE

FE备用节点、BE数据存储节点,主FE故障可自动切换

192.168.119.13

hadoop13

FE、BE

FE备用节点、BE数据存储节点,保障集群高可用与数据冗余

2.3 目录规划

  • 安装包存放/解压目录:/opt/installs(统一存放各类软件安装包,规范环境)

  • 软件安装目录:/opt/modules(统一部署运行中的大数据组件,方便统一管理)

  • 环境变量配置文件:/etc/profile(系统全局环境变量,所有用户生效)

三、前置系统配置(所有节点执行)

该步骤为Doris必做系统优化,Doris作为大数据组件,高并发读写对系统资源要求高,不配置会出现启动失败、闪退、连接数不足、内存溢出等问题。三台机器必须全部执行。

3.1 修改文件句柄限制

作用:Linux系统默认单个进程最大文件打开数、进程数较小,Doris高并发查询、数据读写会创建大量文件连接,超出限制会直接报错宕机,调大后保障高并发稳定运行。

vi /etc/security/limits.conf

文件末尾追加以下内容:

root soft nofile 65535
root hard nofile 65535
root soft nproc 65535
root hard nproc 65535

参数解释:soft为软限制、hard为硬限制,nofile为最大文件打开数,nproc为最大进程数,统一拉满至65535,适配大数据高并发场景。

3.2 修改内核内存参数

作用:vm.max_map_count是Linux内核虚拟内存映射参数,Doris BE节点底层依赖内存映射读写数据,默认值过小会导致BE启动失败、内存映射不足,该参数为Doris部署硬性要求。

vi /etc/sysctl.conf

追加参数:

vm.max_map_count=2000000

生效配置:

sysctl -p

正常输出vm.max_map_count = 2000000,无任何报错即为配置成功。

四、解压部署Doris(仅hadoop11执行)

操作说明:仅主节点hadoop11执行,后续通过myscp脚本分发到其他节点,减少重复操作,保证集群目录、版本完全一致。安装包已提前上传至 /opt/installs。

## 进入压缩包存放目录
# 作用:定位已上传的Doris压缩包
cd /opt/modules

# 解压Doris压缩包到安装目录
# 作用:直接解压至/opt/installs,该目录即为Doris最终运行目录
tar -zxvf apache-doris-2.1.6-bin-x64.tar.gz -C /opt/installs

# 进入解压目录,重命名为doris(规范目录名称,方便后续运维)
cd /opt/installs
mv apache-doris-2.1.6-bin-x64 doris

五、集群核心配置(仅hadoop11执行)

先配置主节点核心参数,分发后仅需修改其余节点IP,保证集群配置统一性,避免配置错乱。

5.1 配置FE节点参数

FE作用:Doris前端管理节点,负责元数据存储、SQL解析、集群管理、客户端连接交互,是集群的“大脑”。

vi /opt/installs/doris/fe/conf/fe.conf

修改核心绑定IP参数(其余参数默认即可):

priority_networks = 192.168.119.11/24

参数核心作用:服务器大多存在多网卡、多IP,该参数指定Doris集群通信使用的固定IP网段,不配置会导致集群节点乱绑定IP,节点无法上线、集群通信失败,是Doris集群最核心配置。

5.2 配置BE节点参数

BE作用:Doris后端数据存储节点,负责真实数据存储、数据分片、查询计算、数据读写落地。

vi /opt/installs/doris/be/conf/be.conf

修改核心绑定IP参数:

priority_networks = 192.168.119.11/24

参数作用:和FE一致,固定BE节点集群通信IP,保证FE可以正常发现、管理、调度当前BE节点。

5.3 配置全局环境变量

作用:配置全局环境变量后,任意目录下可直接使用Doris启停命令、客户端命令,无需输入绝对路径,简化运维操作。

vi /etc/profile

文件末尾追加Doris环境变量:

# Apache Doris Environment
# 指定Doris根目录
export DORIS_HOME=/opt/modules/doris
# 将FE、BE命令目录加入系统全局PATH
export PATH=$PATH:$DORIS_HOME/fe/bin:$DORIS_HOME/be/bin

生效环境变量:

source /etc/profile

执行作用:不重启服务器的情况下,立即加载新配置的环境变量,让命令全局生效。

六、分发配置文件至所有节点(hadoop11执行)

作用:利用自定义myscp分发脚本,一键同步主节点的Doris程序文件、环境变量配置,保证三台机器程序版本、目录结构、基础配置完全一致,杜绝集群配置不一致问题。

# 分发doris安装目录至hadoop12、hadoop13
# 作用:同步完整Doris程序,无需其余节点重复解压安装
myscp /opt/installs/doris


# 分发环境变量配置文件
# 作用:同步全局环境变量,保证所有节点命令通用
myscp /etc/profile 

七、修改其余节点IP配置(hadoop12、hadoop13分别执行)

原理:分发后的配置文件默认是hadoop11的IP,每台机器需要绑定自己的本机IP,否则多节点IP冲突,集群通信异常。

7.1 hadoop12 节点配置

# 修改FE集群通信本机IP
vi /opt/installs/doris/fe/conf/fe.conf
priority_networks = 192.168.119.12/24

# 修改BE集群通信本机IP
vi /opt/installs/doris/be/conf/be.conf
priority_networks = 192.168.119.12/24

# 生效分发的环境变量
source /etc/profile

7.2 hadoop13 节点配置

# 修改FE集群通信本机IP
vi /opt/installs/doris/fe/conf/fe.conf
priority_networks = 192.168.119.13/24

# 修改BE集群通信本机IP
vi /opt/installs/doris/be/conf/be.conf
priority_networks = 192.168.119.13/24

# 生效分发的环境变量
source /etc/profile

八、启动FE高可用集群

核心原则:严格遵循 先启动主FE、再添加从FE、最后启动从FE,顺序错误会导致从FE无法加入集群、选举失败。

8.1 启动主FE(hadoop11)

作用:启动集群第一个Master FE,初始化集群元数据、生成集群唯一标识,作为集群主管理节点。

/opt/installs/doris/fe/bin/start_fe.sh --daemon

8.2 登录FE,添加从FE节点

作用:主FE启动后,需要手动将其余FE节点加入集群,完成FE高可用集群注册,实现主从切换。

# 连接Doris原生客户端(默认root用户、无密码、9030端口)
mysql -h hadoop11 -P9030 -uroot

执行集群配置SQL:

-- 添加两台从FE节点,9010为FE集群内部通信端口
ALTER SYSTEM ADD FOLLOWER "hadoop12:9010";
ALTER SYSTEM ADD FOLLOWER "hadoop13:9010";

-- 查看FE集群全部状态,校验是否正常加入
SHOW FRONTENDS;

判断标准:所有节点IsMaster、Alive状态全部为true即为正常。

8.3 启动从FE节点

作用:节点信息已注册至主集群,此时启动从FE,可自动同步主FE元数据,实现FE集群高可用。

hadoop12、hadoop13分别执行:

/opt/installs/doris/fe/bin/start_fe.sh --daemon

九、启动BE集群并加入集群

BE负责数据存储,需要全部启动后统一注册至FE集群,完成集群完整搭建。

9.1 所有节点启动BE服务

作用:启动所有数据存储节点,监听集群调度、数据读写请求。

三台机器全部执行:

/opt/installs/doris/be/bin/start_be.sh --daemon

9.2 添加所有BE节点至集群(hadoop11执行)

作用:BE启动后为孤立节点,需要手动注册到FE集群,接受FE统一管理、数据分片与调度。9050为BE集群通信端口。

mysql -h hadoop11 -P9030 -uroot
-- 批量注册三台BE节点
ALTER SYSTEM ADD BACKEND "hadoop11:9050";
ALTER SYSTEM ADD BACKEND "hadoop12:9050";
ALTER SYSTEM ADD BACKEND "hadoop13:9050";

-- 查看BE集群存活状态
SHOW BACKENDS;

判断标准:所有节点 Alive、Status 全部为true,BE集群部署成功。

十、集群功能验证

10.1 网页控制台访问

访问地址:http://192.168.119.11:8030

登录账号:root,密码:无

作用:Doris自带Web管理控制台,可可视化查看集群节点状态、资源占用、数据库表信息,方便运维管理。

10.2 数据读写测试

作用:通过建库、建表、插入、查询数据,完整验证集群元数据管理、数据存储、查询计算功能是否正常。

-- 创建测试数据库
CREATE DATABASE test_db;
-- 创建测试数据表
CREATE TABLE test_db.test_table(id INT) DISTRIBUTED BY HASH(id) BUCKETS 1;
-- 写入测试数据
INSERT INTO test_db.test_table VALUES(1);
-- 查询验证数据
SELECT * FROM test_db.test_table;

数据正常查询,代表集群读写功能完全正常!

十一、Doris常用运维命令

11.1 启停服务

# FE 启停
start_fe.sh --daemon
stop_fe.sh

# BE 启停
start_be.sh --daemon
stop_be.sh

11.2 日志查看

作用:集群报错、启动失败时,通过实时日志排查问题根源,是核心运维手段。

# FE实时日志
tail -f /opt/installs/doris/fe/log/fe.log

# BE实时日志
tail -f /opt/installs/doris/be/log/be.log

十二、部署避坑总结(必看)

  • priority_networks必配:多网卡环境不配该参数,集群IP绑定错乱,直接节点离线、通信失败

  • 启动顺序严格固定:先主FE→注册从FE→启从FE→启所有BE→注册BE,顺序错误集群搭建失败

  • 系统参数必优化:文件句柄、vm内存参数不修改,BE启动闪退、高并发宕机

  • 环境变量必生效:分发profile后必须source,否则全局命令无法使用

  • 防火墙必关闭:端口未放行/防火墙开启,节点端口不通,无法互相发现

  • IP配置一一对应:每台节点只能绑定自己的本机IP,IP冲突直接集群瘫痪

十三、结尾

至此,Apache Doris 2.1.6 三节点高可用集群 部署完成。本文详细解释了每一步操作的底层作用与部署原理,不仅可以复刻搭建,还能帮助新手理解Doris集群运行机制,后续可基于该集群进行参数调优、业务建表、数据同步、权限配置等进阶操作。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐