Doris安装部署fe和be(单机)及用CLup快速创建MySQL数据库实例

一、概述

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/manualhttps://www.csudata.comclup/manual

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值