一、概述
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 doris2、一键设置doris用户密码
echo doris | passwd --stdin doris3、配置系统资源限制放开
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.conf20-nproc.conf优先级高于全局配置,单独配置进程数,防止被系统默认配置覆盖
4、优化Linux内核参数
echo 'vm.max_map_count = 2000000 vm.overcommit_memory=1' >>/etc/sysctl.conf让内核参数立即生效
sysctl -p5、禁用Swap交换分区
swapoff -a echo 'swapoff -a' >>/etc/rc.local部署前还需要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 grep2、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
关闭的时候先关闭BE后关闭FE,好了单机部署已经结束了,想要更多了解CLup使用参考:
https://www.csudata.comclup/manualhttps://www.csudata.comclup/manual