一、概述
Apache Doris 是一款基于 **MPP(大规模并行处理)** 架构的高性能、实时分析型数据库,支持亚秒级响应的海量数据查询,适用于报表分析、即席查询、数据湖加速等场景。其核心组件包括 FE(Frontend)和BE(Backend):
-
FE(Frontend):负责元数据管理、查询解析与调度,是集群的“大脑”。
-
BE(Backend):负责数据存储、计算和查询执行,是集群的“肌肉”。
二、安装
部署前的准备
-
在 2.1(含)版本之前,请使用 Java 8,推荐版本:openjdk-8u352-b08-linux-x64
-
从 3.0(含)版本之后,请使用 Java 17,推荐版本:jdk-17.0.10_linux-x64_bin.tar.gz
这里我们使用clup来给我们创建MySQL数据库实例,Doris 单机部署过程中不需要依赖外部MySQL服务,但需要使用MySQL客户端工具(如 mysql 命令行)连接 Doris 的 FE 节点进行管理操作。核心原因在于Doris 完全兼容 MySQL 协议用户使用的 mysql 命令仅作为客户端工具,连接的是 Doris 的 FE 进程,而非外部 MySQL 服务
CLup创建MySQL实例:CLup的使用:创建MySQL数据库实例-CSDN博客,看看我的这篇文章有完整的MySQL创建数据实例的操作,这个平台CLup我比较推荐大家去使用的,链接最后给到大家安装教程会在里面
创建好数据库实例,我们进入到主机里面进行部署doris(这个主机是已有数据库MySQL的,而且可以看到已经启动)

这里我是用winterm登录主机来操作(哪个软件都行,自己的虚拟机终端也行)
好的现在来安装部署doris,先在 Linux 系统下的前置环境初始化
部署前的准备
,1、创建Doris专用用户组和用户
# 1. 创建用户组
groupadd -g 901 doris
# 2. 创建用户
useradd -g 901 -u 901 -m -d /home/doris -s /bin/bash doris
2、一键设置doris用户密码
echo doris | passwd --stdin doris
3、配置系统资源限制放开
Linux 默认限制了进程、文件、内存等资源,Doris 高并发需要解除限制,修改两个配置文件:
echo '
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
* soft core -1
* hard core -1
* soft memlock -1
* hard memlock -1
' >> /etc/security/limits.conf
echo '
* hard nproc 131072
* soft nproc 131072
' >> /etc/security/limits.d/20-nproc.conf
20-nproc.conf优先级高于全局配置,单独配置进程数,防止被系统默认配置覆盖
4、优化Linux内核参数
通过以下命令可以永久修改虚拟内存区域至少为 2000000,并立即生效
echo 'vm.max_map_count = 2000000
vm.overcommit_memory=1' >>/etc/sysctl.conf
让内核参数立即生效
sysctl -p
5、禁用Swap交换分区
swapoff -a
echo 'swapoff -a' >>/etc/rc.local
永久关闭,使用 Linux root 账户,注释掉 /etc/fstab 中的 swap 分区,重启即可彻底关闭 swap 分区。

6、关闭系统透明大页
echo madvise > /sys/kernel/mm/transparent_hugepage/enabled
echo madvise > /sys/kernel/mm/transparent_hugepage/defrag
如果需要永久关闭透明大页,可以使用以下命令,在下一次宿主机重启后生效:
cat >> /etc/rc.d/rc.local << EOF
echo madvise > /sys/kernel/mm/transparent_hugepage/enabled
echo madvise > /sys/kernel/mm/transparent_hugepage/defrag
EOF
chmod +x /etc/rc.d/rc.local
7、禁用CPU省电模式
在部署 Doris 时检修关闭 CPU 的省电模式,以确保 Doris 在高负载时提供稳定的高性能
echo 'performance' | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
8、网络连接溢出时自动重置新连接
通过以下命令可以永久设置系统自动重置新链接,并立即生效:
cat >> /etc/sysctl.conf << EOF
net.ipv4.tcp_abort_on_overflow=1
EOF
# 立即生效
sysctl -p
9、增加系统的最大文件句柄数
通过以下命令可以调整最大文件句柄数。在调整后,需要重启会话以生效配置
vi /etc/security/limits.conf
* soft nofile 1000000
* hard nofile 1000000
10、安装并配置 NTP 服务
通常情况下,可以通过配置 NTP 服务保证各节点时钟同步。
sudo systemctl start ntpd.service
sudo systemctl enable ntpd.service
部署前还需要java的环境,上面也说了,2.1版本之前用1.8.0的版本Java
正式部署
可以先查看java的版本
java -version
如果没有或者不是这个版本,则需要安装1.8.0
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
然后把默认java换成1.8.0的版本,执行下面命令之后会让你选择java版本对应的序列号,选择1.8.0版本对应的序号就行
update-alternatives --config java
安装doris
在/opt目录下创建/soft/other/目录,并安装2.1.9版本(适配jre1.8.0)
mkdir -p /opt/soft/other/ && cd /opt/soft/other
wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-2.1.9-bin-x64.tar.gz
解压并且将其命名成功apache-doris
tar xvf apache-doris-2.1.9-bin-x64.tar.gz
mv apache-doris-2.1.9-bin-x64 apache-doris
给这个文件赋予doris用户权限
chown -R doris. /opt/soft/other/apache-doris
配置目录及权限
mkdir -p /data/other/doris/{meta,storage}
chown -R doris. /data/other/doris/
进入doris用户:su - doris
配置java环境变量
vim ~/.bashrc
# 添加下面内容
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0
export PATH=$PATH:$JAVA_HOME/bin
# mysql
export PATH=$PATH:/usr/local/mysql-8.0.43/bin
# 是环境变量生效
source ~/.bashrc
# 查看版本
java -version
三、配置FE
1、配置fe配置文件fe.conf
vim /opt/soft/other/apache-doris/fe/conf/fe.conf
修改添加以下内容
JAVA_HOME=/usr/lib/jvm/jre-1.8.0
priority_networks = 10.197.167.147
meta_dir = /data/other/doris/meta
这个我改成-Xms2048m了,测试我就弄小一点

修改之后启动FE(后面都是进入doris用户启动,不要用root用户)
# 启动
. /opt/soft/other/apache-doris/fe/bin/start_fe.sh --daemon
# 关闭
. /opt/soft/other/apache-doris/fe/bin/stop_fe.sh --daemon
启动之后可以查看端口和进程,看是否启动成功
netstat -anlp | grep 8030
ps -ef|grep 'doris_be\|fe/log/fe.gc.log'|grep -v grep
2、web访问(root/密码为空)
http://10.197.167.147:8030

3、连接FE
进入mysql客户端
mysql -uroot -P9030 -h127.0.0.1
查看FE(IsMaster: true表示为Master节点)
mysql> show frontends\G;
*************************** 1. row ***************************
Name: fe_ef80eb6d_e34e_46c1_8422_34e5f23714f2
Host: 10.197.167.147
EditLogPort: 9010
HttpPort: 8030
QueryPort: 9030
RpcPort: 9020
ArrowFlightSqlPort: -1
Role: FOLLOWER
IsMaster: true
ClusterId: 99402805
Join: true
Alive: true
ReplayedJournalId: 141
LastStartTime: 2026-05-14 16:34:13
LastHeartbeat: 2026-05-14 16:45:19
IsHelper: true
ErrMsg:
Version: doris-2.1.9-rc02-3390475e02
CurrentConnected: Yes
1 row in set (20.12 sec)
启动FE之后先别关,我们来配置BE
四、配置BE
1、配置BE的be.conf配置文件
vim /opt/soft/other/apache-doris/be/conf/be.conf
添加以下内容
JAVA_HOME=/usr/lib/jvm/jre-1.8.0
priority_networks = 10.197.167.147/20
storage_root_path = /data/other/doris/storage
在启动 BE 节点前,需要先在 FE 中注册该节点,先进入mysql客户端,注册节点
mysql -uroot -P9030 -h127.0.0.1
ALTER SYSTEM ADD BACKEND "10.197.167.147:9050";
2、启动BE
# 启动
. /opt/soft/other/apache-doris/be/bin/start_be.sh --daemon
# 关闭
. /opt/soft/other/apache-doris/be/bin/stop_be.sh --daemon
启动之后可以查看进程和日志看看是否成功
ps -ef|grep 'doris_be\|fe/log/fe.gc.log'|grep -v grep
cat /opt/soft/other/apache-doris/be/log/be.INFO | grep heartbeat
#如果日志打印以下内容,则说明该 BE 节点启动成功:
I20260514 16:53:22.786908 55536 heartbeat_server.cpp:97] get first heartbeat. update cluster id
I20260514 16:53:22.807099 55536 heartbeat_server.cpp:102] record cluster id. host: 10.197.167.147. port: 9020. cluster id: 99402805. frontend_infos: TFrontendInfo(coordinator_address=TNetworkAddress(hostname=10.197.167.147, port=9020), process_uuid=1778747653024)
I20260514 16:53:22.807157 55536 heartbeat_server.cpp:178] master change. new master host: 10.197.167.147. port: 9020. epoch: 1
I20260514 16:53:22.807175 55536 heartbeat_server.cpp:201] get token. token: e6a0d144-09cc-4247-9425-957b51a8630f
I20260514 16:53:22.807230 55536 heartbeat_server.cpp:230] Master FE is changed or restarted. report tablet and disk info immediately
其他命令:
删除BE:ALTER SYSTEM DECOMMISSION BACKEND "10.197.167.147:9050";
doris修改用户密码
修改当前用户: set password = password ('root'); -- 推荐
修改指定用户:SET PASSWORD FOR 'root'@'%' = PASSWORD('root')
#配置环境变量 方便登录
alias lgsr="mysql -uroot -P9030 -h 10.197.165.201 -p'root'"
source ~/.bashrc
五、Systemctl管理脚本启停服务(设置开机自启)
写入doris-fe.service文件
FE:
cat << EOF >/usr/lib/systemd/system/doris-fe.service
[Unit]
Description=Doris FE
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
User=doris
Group=doris
LimitCORE=infinity
LimitNOFILE=200000
Restart=on-failure
RestartSec=30
StartLimitInterval=120
StartLimitBurst=3
KillMode=none
ExecStart=/opt/soft/other/apache-doris/fe/bin/start_fe.sh --daemon
ExecStop=/opt/soft/other/apache-doris/fe/bin/stop_fe.sh
[Install]
WantedBy=multi-user.target
EOF
FE操作
# 启动
systemctl start doris-fe.service
# 设置开机自启
systemctl enable doris-fe.service
# 查看状态
systemctl status doris-fe.service
# 关闭
systemctl stop doris-fe.service
BE:
cat << EOF >/usr/lib/systemd/system/doris-be.service
[Unit]
Description=Doris BE
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
User=doris
Group=doris
LimitCORE=infinity
LimitNOFILE=200000
Restart=on-failure
RestartSec=30
StartLimitInterval=120
StartLimitBurst=3
KillMode=none
ExecStart=/opt/soft/other/apache-doris/fe/bin/start_fe.sh --daemon
ExecStop=/opt/soft/other/apache-doris/fe/bin/stop_fe.sh
[Install]
WantedBy=multi-user.target
EOF
BE操作:
# 启动
systemctl start doris-be.service
# 设置开机自启
systemctl enable doris-be.service
# 查看状态
systemctl status doris-be.service
# 关闭
systemctl stop doris-be.service
关闭的时候先关闭BE后关闭FE,好了单机部署已经结束了,想要更多了解CLup使用参考:
https://www.csudata.comclup/manual
https://www.csudata.comclup/manual
1115

被折叠的 条评论
为什么被折叠?



