Doris 是一款基于 MPP 架构的高性能、实时分析型数据库,部署主要涉及 Frontend (FE) 、Backend (BE) 两个核心组件,以及可选的 Broker(用于读取外部存储如 HDFS/S3 数据)。以下是 Doris 部署的详细步骤和注意事项:
一、部署前准备
1. 环境要求
- 操作系统:Linux 发行版(CentOS 7+/Ubuntu 16.04+,推荐 CentOS 7/8),64 位系统。
- 硬件配置 :
- FE:至少 4C8G 内存,元数据目录(meta_dir)建议 SSD 硬盘,磁盘空间 ≥ 100GB(生产环境建议 16C32G+)。
- BE:至少 8C16G 内存,数据目录(storage_root_path)建议 SSD 或 SATA 硬盘,磁盘空间 ≥ 500GB(生产环境建议 16C64G+,且 BE 节点数 ≥ 3)。
- 软件依赖 :
- FE:JDK 8(OpenJDK 或 Oracle JDK,推荐 OpenJDK 8u202+),需配置
JAVA_HOME环境变量。 - BE:依赖
libstdc++、zlib、snappy、lz4等库,可通过yum install -y libstdc++-devel zlib-devel snappy-devel lz4-devel安装。 - 所有节点:安装
mysql-client(用于连接 FE)、ntp(时间同步),关闭防火墙 / SELinux(或开放指定端口)。
- FE:JDK 8(OpenJDK 或 Oracle JDK,推荐 OpenJDK 8u202+),需配置
- 网络要求 :
- 所有节点之间网络互通(FE、BE、Broker 节点两两通信)。
- FE 需开放端口:
http_port(默认 8030)、rpc_port(默认 9020)、query_port(默认 9030)、edit_log_port(默认 9010)。 - BE 需开放端口:
be_port(默认 9060)、webserver_port(默认 8040)、heartbeat_service_port(默认 9050)、brpc_port(默认 8060)。 - Broker 需开放端口:
broker_ipc_port(默认 8000)。
2. 节点规划(示例)
| 节点 IP | 角色 | 说明 |
|---|---|---|
| 192.168.1.10 | FE (Leader) | 主 FE 节点(元数据管理) |
| 192.168.1.11 | FE (Follower) | 从 FE 节点(高可用) |
| 192.168.1.12 | BE | 数据存储与计算节点 |
| 192.168.1.13 | BE | 数据存储与计算节点 |
| 192.168.1.14 | BE | 数据存储与计算节点 |
| 192.168.1.15 | Broker | 外部存储访问代理(可选) |
生产环境中,FE 建议部署 3 节点(1 Leader + 2 Follower/Observer),BE 建议部署 3+ 节点,Broker 按需部署(如仅本地数据可不用)。
3. 系统优化(可选,生产环境建议)
-
关闭 swap :
swapoff -a,并修改/etc/fstab注释 swap 分区。 -
调整文件描述符限制 :在
/etc/security/limits.conf中添加:* soft nofile 65535 * hard nofile 65535 * soft nproc 65535 * hard nproc 65535 -
调整内核参数 :在
/etc/sysctl.conf中添加:vm.swappiness = 0 net.core.somaxconn = 65535 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_fin_timeout = 30执行
sysctl -p生效。
二、下载与解压安装包
-
从 Doris 官网(https://doris.apache.org/)或镜像站下载最新稳定版安装包(如
apache-doris-2.1.0-bin-x86_64.tar.gz)。 -
在所有节点解压安装包到指定目录(如
/opt/doris):运行
bashmkdir -p /opt/doris tar -zxvf apache-doris-2.1.0-bin-x86_64.tar.gz -C /opt/doris cd /opt/doris mv apache-doris-2.1.0-bin-x86_64/* . rm -rf apache-doris-2.1.0-bin-x86_64 -
为 Doris 目录设置权限(如指定
doris用户):运行
bashuseradd -m doris chown -R doris:doris /opt/doris
三、部署 Frontend (FE)
1. 配置 FE(所有 FE 节点)
编辑 FE 配置文件 conf/fe.conf,关键参数如下:
# 元数据存储目录(需提前创建,建议 SSD)
meta_dir = /data/doris/fe/meta
# FE 节点 IP(需填写本机内网 IP,不可用 127.0.0.1)
priority_networks = 192.168.1.0/24 # 或具体 IP 如 192.168.1.10/24
# JVM 内存配置(根据节点内存调整,FE 建议 4G+)
JAVA_OPTS="-Xms4g -Xmx4g -XX:+UseG1GC -XX:MaxGCPauseMillis=500"
# 端口配置(默认即可,若冲突需修改)
http_port = 8030
rpc_port = 9020
query_port = 9030
edit_log_port = 9010
priority_networks用于指定 FE 绑定的网卡网段,解决多网卡环境下的 IP 选择问题,必须配置。
-
创建元数据目录(所有 FE 节点):
运行
bashmkdir -p /data/doris/fe/meta chown -R doris:doris /data/doris/fe
2. 启动 FE Leader 节点
以 doris 用户在 Leader FE 节点执行:
运行
bash
cd /opt/doris
./bin/start_fe.sh --daemon # 后台启动
- 查看启动日志:
tail -f log/fe.log,若出现start frontend service success则启动成功。 - 访问 FE Web UI:
http://<FE_IP>:8030,默认用户名root,密码为空(首次登录建议修改密码)。
3. 加入 FE Follower/Observer 节点(高可用)
-
在 Follower/Observer 节点执行启动命令(需先完成配置):
运行
bash./bin/start_fe.sh --daemon --helper leader_fe_ip:edit_log_port示例:
./bin/start_fe.sh --daemon --helper 192.168.1.10:9010。 -
登录 FE 的 MySQL 客户端(Leader 节点),确认 FE 节点状态: 运行
bashmysql -h 192.168.1.10 -P 9030 -u root执行 SQL:
sqlSHOW FRONTENDS;若
Alive列为true,Role列为FOLLOWER/OBSERVER,则加入成功。
Observer 节点为只读节点,不参与投票选举,适合跨机房部署;Follower 节点参与投票,需部署奇数个(如 1 Leader + 2 Follower)。
四、部署 Backend (BE)
1. 配置 BE(所有 BE 节点)
编辑 BE 配置文件 conf/be.conf,关键参数如下:
# 数据存储目录(需提前创建,多个目录用逗号分隔,建议不同磁盘)
storage_root_path = /data/doris/be/data1,/data/doris/be/data2
# BE 节点 IP(同 FE,需配置网段)
priority_networks = 192.168.1.0/24
# 端口配置(默认即可,若冲突需修改)
be_port = 9060
webserver_port = 8040
heartbeat_service_port = 9050
brpc_port = 8060
# 内存配置(根据节点内存调整,BE 建议 8G+)
mem_limit = 16G # 总内存限制(包括系统内存和JVM内存)
-
创建数据存储目录(所有 BE 节点):
运行
bashmkdir -p /data/doris/be/data1 /data/doris/be/data2 chown -R doris:doris /data/doris/be
2. 向 FE 注册 BE 节点
登录 FE 的 MySQL 客户端,执行 SQL:
sql
ALTER SYSTEM ADD BACKEND "be_ip:heartbeat_service_port";
示例(添加 3 个 BE 节点):
sql
ALTER SYSTEM ADD BACKEND "192.168.1.12:9050";
ALTER SYSTEM ADD BACKEND "192.168.1.13:9050";
ALTER SYSTEM ADD BACKEND "192.168.1.14:9050";
3. 启动 BE 节点
以 doris 用户在所有 BE 节点执行:
运行
bash
cd /opt/doris
./bin/start_be.sh --daemon # 后台启动
-
查看启动日志:
tail -f log/be.log,若出现start backend service success则启动成功。 -
登录 FE 的 MySQL 客户端,确认 BE 节点状态:
sqlSHOW BACKENDS;若
Alive列为true,则 BE 节点加入成功(首次启动可能需要 1-2 分钟同步)。
五、部署 Broker(可选)
1. 配置 Broker(所有 Broker 节点)
编辑 Broker 配置文件 conf/broker.conf,关键参数:
# Broker 端口(默认 8000)
broker_ipc_port = 8000
# 网段配置(同 FE/BE)
priority_networks = 192.168.1.0/24
2. 向 FE 注册 Broker 节点
登录 FE 的 MySQL 客户端,执行 SQL:
sql
ALTER SYSTEM ADD BROKER broker_name "broker_ip:broker_ipc_port";
示例:
sql
ALTER SYSTEM ADD BROKER hdfs_broker "192.168.1.15:8000";
3. 启动 Broker 节点
以 doris 用户在 Broker 节点执行:
运行
bash
cd /opt/doris
./bin/start_broker.sh --daemon
-
查看启动日志:
tail -f log/broker.log,确认启动成功。 -
验证 Broker 状态:
sqlSHOW BROKERS;若
Alive列为true,则 Broker 加入成功。
六、部署验证
-
功能验证:登录 FE 的 MySQL 客户端,创建数据库和表,插入数据并查询:
sqlCREATE DATABASE test_db; USE test_db; CREATE TABLE test_tbl ( id INT, name STRING ) DISTRIBUTED BY HASH(id) BUCKETS 3; INSERT INTO test_tbl VALUES (1, 'doris'), (2, 'apache'); SELECT * FROM test_tbl;若查询结果正常,则 Doris 集群部署成功。
-
集群状态检查:
- FE Web UI:
http://<FE_IP>:8030,可查看集群拓扑、节点状态、负载等信息。 - 执行
SHOW PROC '/frontends'、SHOW PROC '/backends'查看节点详细信息。
- FE Web UI:
七、常见问题与注意事项
-
FE 启动失败:
- 检查
meta_dir权限是否为doris用户所有。 - 检查
priority_networks配置是否正确(网段 / IP 错误会导致节点无法通信)。 - 检查 JDK 版本是否为 8(FE 不支持 JDK 11+,部分版本可兼容但不推荐)。
- 检查
-
BE 节点
Alive为false:- 检查 FE 与 BE 之间的网络连通性(
ping+ 端口 telnet 测试)。 - 检查 BE 的
storage_root_path目录是否存在且权限正确。 - 查看 BE 日志
log/be.log,若出现heartbeat timeout,需检查网络或 FE 配置。
- 检查 FE 与 BE 之间的网络连通性(
-
端口冲突 :使用
netstat -tulnp | grep <端口号>检查端口是否被占用,若冲突需修改配置文件中的端口参数。 -
元数据备份 :FE 的
meta_dir存储集群元数据,需定期备份(可通过 FE Web UI 或cp命令备份)。 -
集群扩容:
- FE 扩容:新增 Follower/Observer 节点,执行
start_fe.sh --helper并注册。 - BE 扩容:新增 BE 节点,向 FE 注册后启动即可(数据会自动均衡)。
- FE 扩容:新增 Follower/Observer 节点,执行
八、停止集群(如需)
- 停止 FE :
./bin/stop_fe.sh - 停止 BE :
./bin/stop_be.sh - 停止 Broker :
./bin/stop_broker.sh
停止集群时建议先停 BE,再停 FE;启动时先启 FE,再启 BE。
以上为 Doris 单机 / 集群部署的标准流程,实际部署时需根据硬件资源和业务需求调整配置参数,生产环境建议参考官方文档(https://doris.apache.org/docs/)进行精细化配置和优化。