Apache Doris 2.1.5 超详细安装部署教程(单机伪集群,生产可用)

一、教程说明

本教程适配 CentOS 7/8、Ubuntu 18.04/20.04 主流Linux系统,采用单机伪集群部署(1FE+1BE,开发/测试/小型生产环境通用),全程无编译、直接使用官方二进制包,零基础可一键复刻。

本次安装版本:Apache Doris 2.1.5(LTS稳定版)

部署架构:单节点 FE(前端管理节点)+ 单节点 BE(后端存储计算节点)

包含内容:环境初始化、依赖安装、参数优化、服务配置、启停服务、集群初始化、连接测试、开机自启、常见报错排查

二、前置环境要求(必做)

2.1 基础硬件要求

  • 服务器:最低2核4G,生产建议4核8G及以上

  • 磁盘:普通机械盘/SSD均可,建议单独数据盘,避免系统盘占满

  • 网络:关闭防火墙或开放Doris端口,服务器固定内网IP(禁止动态IP)

2.2 软件依赖要求

  • 操作系统:Linux(不支持Windows、Mac生产部署)

  • JDK版本:OpenJDK 8u300及以上(仅支持JDK8,不支持JDK11/17)

  • 系统工具:wget、tar、vim、mysql-client(必备)

2.3 系统参数优化(生产必配置)

Doris对文件句柄、内存交换有严格要求,需提前修改系统参数,否则会启动失败或运行卡顿。

1. 关闭Swap分区

临时生效(重启失效):

swapoff -a

永久生效(重启依旧有效):

sed -i 's/^\/.*swap/#&/g' /etc/fstab
2. 调高文件句柄数

编辑系统限制配置文件:

vim /etc/security/limits.conf

文件末尾添加以下内容:

* soft nofile 655350
* hard nofile 655350
* soft nproc 655350
* hard nproc 655350

退出重新登录服务器,执行 ulimit -n 验证,返回655350即为成功。

3. 修改内核参数

编辑内核配置:

vim /etc/sysctl.conf

添加以下参数:

vm.max_map_count=2000000
net.ipv4.tcp_tw_reuse=1

生效配置:

sysctl -p

2.4 关闭防火墙&SELinux

CentOS 7/8
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

# 关闭SELinux
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
Ubuntu
ufw stop
ufw disable

三、安装依赖环境

3.1 安装JDK8

优先安装OpenJDK8(免费无版权问题):

# CentOS
yum install -y java-1.8.0-openjdk-devel

# Ubuntu
apt update && apt install -y openjdk-8-jdk

验证版本(必须为JDK8):

java -version

3.2 安装MySQL客户端

Doris通过MySQL协议连接,必须安装客户端:

# CentOS
yum install -y mysql

# Ubuntu
apt install -y mysql-client

3.3 创建专用用户(禁止root运行)

官方禁止root用户启动Doris,需新建普通用户:

# 创建doris用户
useradd doris
# 设置密码(自定义)
passwd doris
# 赋予目录权限
chmod -R 755 /home/doris
# 切换doris用户(后续所有操作均用该用户)
su - doris

四、下载并解压Doris安装包

4.1 下载官方二进制包

切换到doris用户根目录,下载2.1.5稳定版:

cd /home/doris
wget https://archive.apache.org/dist/doris/2.1.5/apache-doris-2.1.5-bin-x86_64.tar.gz

4.2 解压文件

tar -zxvf apache-doris-2.1.5-bin-x86_64.tar.gz
# 重命名简化目录
mv apache-doris-2.1.5-bin-x86_64 doris-2.1.5

4.3 创建数据、元数据、日志目录

cd /home/doris/doris-2.1.5
# FE元数据目录
mkdir -p doris-meta
# BE数据存储目录
mkdir -p be/storage
# 统一日志目录
mkdir -p fe/log be/log

五、FE节点配置与启动

5.1 修改FE配置文件

配置文件路径:/home/doris/doris-2.1.5/fe/conf/fe.conf

vim fe/conf/fe.conf

修改/新增以下核心配置(注释原有默认配置,粘贴以下内容):

# 服务器内网IP(必须填写本机真实IP,禁止127.0.0.1)
priority_networks=你的服务器内网IP/24
# FE元数据存储目录
meta_dir=/home/doris/doris-2.1.5/doris-meta
# 最大连接数
qe_max_connection=1000
# JVM内存配置(4G服务器设2G,8G设4G,按需调整)
JAVA_OPTS="-Xms2048m -Xmx2048m -XX:+UseG1GC"

重点说明:priority_networks必须配置,多网卡服务器可避免IP识别错误,是启动成功的关键。

5.2 启动FE节点

cd /home/doris/doris-2.1.5
sh fe/bin/start_fe.sh --daemon

--daemon 代表后台守护进程启动,关闭终端不停止服务。

5.3 检查FE启动状态

# 查看进程
jps | grep FE
# 查看启动日志(报错排查)
tail -f fe/log/fe.log

出现 Frontend startup success 即为启动成功。

六、BE节点配置、启动与集群绑定

6.1 修改BE配置文件

配置文件路径:/home/doris/doris-2.1.5/be/conf/be.conf

vim be/conf/be.conf

修改核心配置:

# 本机内网IP
priority_networks=你的服务器内网IP/24
# BE数据存储目录
storage_root_path=/home/doris/doris-2.1.5/be/storage
# JVM内存配置
JAVA_OPTS="-Xms2048m -Xmx2048m"

6.2 启动BE节点

cd /home/doris/doris-2.1.5
sh be/bin/start_be.sh --daemon

6.3 将BE节点加入Doris集群(核心步骤)

BE启动后未加入集群,无法使用,需通过MySQL客户端绑定。

1. 连接Doris FE
mysql -h你的服务器内网IP -P9030 -uroot

默认账号:root,默认密码:无,直接回车登录。

2. 添加BE节点到集群
ALTER SYSTEM ADD BACKEND "你的服务器内网IP:9050";
3. 查看集群状态
# 查看BE节点状态
show backends;
# 查看FE节点状态
show frontends;

状态为 Alive: true 即为集群部署成功。

七、基础初始化配置(必做)

7.1 修改root账号密码

默认无密码,存在安全风险,建议立即修改:

SET PASSWORD FOR 'root'@'%' = PASSWORD('自定义密码');

7.2 创建普通用户(业务使用)

CREATE USER 'doris_user'@'%' IDENTIFIED BY '自定义密码';
# 赋予所有权限
GRANT ALL PRIVILEGES ON *.* TO 'doris_user'@'%';
FLUSH PRIVILEGES;

7.3 测试建库建表(验证可用性)

# 创建测试库
CREATE DATABASE test_db;
USE test_db;

# 创建测试表
CREATE TABLE user_info (
    id INT,
    name VARCHAR(20),
    age INT
) DUPLICATE KEY(id)
DISTRIBUTED BY HASH(id) BUCKETS 1
PROPERTIES("replication_num" = "1");

# 插入测试数据
INSERT INTO user_info VALUES(1,'张三',22),(2,'李四',25);

# 查询数据
SELECT * FROM user_info;

正常查询出数据,代表Doris完全安装可用。

八、服务启停命令

8.1 启动服务

# 启动FE
sh /home/doris/doris-2.1.5/fe/bin/start_fe.sh --daemon
# 启动BE
sh /home/doris/doris-2.1.5/be/bin/start_be.sh --daemon

8.2 停止服务

# 停止FE
sh /home/doris/doris-2.1.5/fe/bin/stop_fe.sh
# 停止BE
sh /home/doris/doris-2.1.5/be/bin/stop_be.sh

九、设置开机自启(生产推荐)

通过systemd配置开机自启,服务器重启自动拉起Doris服务。

9.1 FE开机自启

vim /etc/systemd/system/doris-fe.service

写入以下内容:

[Unit]
Description=Apache Doris FE
After=network.target

[Service]
Type=forking
User=doris
ExecStart=/home/doris/doris-2.1.5/fe/bin/start_fe.sh --daemon
ExecStop=/home/doris/doris-2.1.5/fe/bin/stop_fe.sh
Restart=always

[Install]
WantedBy=multi-user.target

9.2 BE开机自启

vim /etc/systemd/system/doris-be.service

写入以下内容:

[Unit]
Description=Apache Doris BE
After=network.target

[Service]
Type=forking
User=doris
ExecStart=/home/doris/doris-2.1.5/be/bin/start_be.sh --daemon
ExecStop=/home/doris/doris-2.1.5/be/bin/stop_be.sh
Restart=always

[Install]
WantedBy=multi-user.target

9.3 生效自启配置

# 刷新配置
systemctl daemon-reload
# 设置开机自启
systemctl enable doris-fe
systemctl enable doris-be
# 启动服务
systemctl start doris-fe
systemctl start doris-be

十、核心端口说明(防火墙放行必备)

端口服务作用
9030FEMySQL客户端连接端口(核心)
8040FEWeb管理页面端口
9010FE集群内部通信端口
9050BE集群内部通信端口
8060BEBE监控端口

十一、常见报错与排查方案

1. FE启动失败,日志报IP错误

原因:priority_networks配置错误,使用127.0.0.1或公网IP

解决:修改为服务器真实内网IP,重启FE

2. BE状态为Dead

原因:端口占用、目录权限不足、swap未关闭

解决:关闭swap、检查doris用户目录权限、重启BE后重新添加节点

3. 连接Doris提示拒绝连接

原因:防火墙未关闭、FE未启动、端口未放行

解决:关闭防火墙,查看FE进程是否存在,放行9030端口

4. 文件句柄不足报错

原因:limits.conf未生效

解决:重新登录服务器,执行ulimit -n验证,确保数值为655350

十二、Web管理页面访问

浏览器访问:http://服务器IP:8040

登录账号:root,密码为你自定义的密码,可可视化查看集群节点、数据库、表、任务状态。

(注:部分内容可能由 AI 生成)

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐