1. 环境准备

安装Java环境

可以安装开源版本也可以去oracle官网下载bin包

Doris 3.0+ 不再支持 Java 8,必须使用 Java 17

wget https://mirrors.tuna.tsinghua.edu.cn/Adoptium/17/jdk/x64/linux/OpenJDK17U-jdk_x64_linux_hotspot_17.0.17_10.tar.gz

# 验证Java安装
java -version

2. 下载Doris

# 下载Doris 3.0.8
wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-3.0.8-bin-x64.tar.gz

# 解压
tar -zxvf apache-doris-3.0.8-bin-x64.tar.gz
cd apache-doris-3.0.8-bin-x64

3. 配置FE(Frontend)

修改FE配置文件

cd fe/conf

# 编辑配置文件
vi fe.conf

fe.conf中添加或修改以下配置:

JAVA_HOME=/home/phoenix/apps/jdk-17.0.17+10
# 元数据目录
meta_dir = /home/phoenix/data/doris/doris-meta

# 查询端口
query_port = 9030

# RPC端口
rpc_port = 9020

# HTTP端口
http_port = 9031

# 绑定地址(修改为你的服务器IP或0.0.0.0)
priority_networks = 192.168.1.160

role=MASTER

# 单机模式配置
enable_http_server_v2 = true
# 大小写不敏感
lower_case_table_names = 1

启动FE

/home/phoenix/apps/apache-doris-3.0.8-bin-x64/fe/bin/start_fe.sh --daemon

# 检查启动状态
curl http://127.0.0.1:9031/api/bootstrap

4. 配置BE(Backend)

修改BE配置文件

cd apache-doris-3.0.8-bin-x64/be/conf

# 编辑配置文件
vim be.conf

be.conf中添加或修改以下配置:

JAVA_HOME=/home/phoenix/apps/jdk-17.0.17+10
# 数据存储目录
storage_root_path = /home/phoenix/data/doris/storage

# 查询端口
be_port = 9060

# RPC端口
brpc_port = 9070

# HTTP端口
webserver_port = 9041

heartbeat_service_port = 9050

# 绑定地址(修改为你的服务器IP或0.0.0.0)
priority_networks = 192.168.1.160

修改系统配置:

# Apache Doris(尤其是 BE 节点)、Elasticsearch、Kafka 这类大数据 / 分布式组件,会频繁使用 mmap 处理大文件(如 Doris BE 的数据分片、索引文件),且单个进程可能同时映射数百甚至数千个文件。
sudo sysctl -w vm.max_map_count=2000000

# 修改单个用户(或用户组)在系统中可使用的资源上限(如最大进程数、文件句柄数、内存大小等) 
在/etc/security/limits.conf中添加:
* soft nofile 655350
* hard nofile 655350

# 执行:ulimit -n 655350 临时生效

启动BE

/home/phoenix/apps/apache-doris-3.0.8-bin-x64/be/bin/start_be.sh --daemon

# 检查启动状态
curl http://127.0.0.1:9041/api/health

5. 添加BE节点到FE

连接到Doris

cd /fe/bin
# doris可以使用mysql client直接连接,如果没有安装mysqlclient需要提前安装
mysql -h 127.0.0.1 -P 9030 -uroot

执行SQL添加BE节点

-- 添加BE节点(使用你的服务器IP)
ALTER SYSTEM ADD BACKEND "192.168.1.160:9050";

-- 检查BE节点状态
SHOW BACKENDS;

6. 验证安装

创建测试数据库和表

-- 创建数据库
CREATE DATABASE test_db;

-- 使用数据库
USE test_db;

-- 创建测试表
CREATE TABLE test_table (
    id INT,
    name VARCHAR(50),
    age INT
) DISTRIBUTED BY HASH(id) BUCKETS 1
PROPERTIES("replication_num" = "1");

-- 插入测试数据
INSERT INTO test_table VALUES (1, 'Alice', 25), (2, 'Bob', 30);

-- 查询数据
SELECT * FROM test_table;

7. 管理命令

启动服务

# 启动FE
cd apache-doris-3.0.8-bin-x64/fe/bin
./start_fe.sh --daemon

# 启动BE
cd apache-doris-3.0.8-bin-x64/be/bin
./start_be.sh --daemon

停止服务

# 停止FE
cd apache-doris-3.0.8-bin-x64/fe/bin
./stop_fe.sh

# 停止BE
cd apache-doris-3.0.8-bin-x64/be/bin
./stop_be.sh

服务自启动:

cd /etc/systemd/system
sudo vim doris.service

[Unit]
Description=Doris FE and BE Service
After=network.target
Wants=network.target

[Service]
Type=forking
User=phoenix
Group=phoenix
WorkingDirectory=/home/phoenix/apps/apache-doris-3.0.8-bin-x64
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Environment=JAVA_HOME=/home/phoenix/apps/jdk-11.0.2

# 启动命令 - 先启动FE,等待后启动BE
ExecStart=/bin/bash -c '\
    echo "Starting Doris FE..." && \
    /home/phoenix/apps/apache-doris-3.0.8-bin-x64/fe/bin/start_fe.sh --daemon && \
    sleep 3 && \
    echo "Starting Doris BE..." && \
    /home/phoenix/apps/apache-doris-3.0.8-bin-x64/be/bin/start_be.sh --daemon'

# 停止命令 - 先停止BE,再停止FE
ExecStop=/bin/bash -c '\
    echo "Stopping Doris BE..." && \
    /home/phoenix/apps/apache-doris-3.0.8-bin-x64/be/bin/stop_be.sh && \
    sleep 3 && \
    echo "Stopping Doris FE..." && \
    /home/phoenix/apps/apache-doris-3.0.8-bin-x64/fe/bin/stop_fe.sh'

# 重启命令
ExecReload=/bin/bash -c '\
    echo "Restarting Doris services..." && \
    /home/phoenix/apps/apache-doris-3.0.8-bin-x64/be/bin/stop_be.sh && \
    sleep 3 && \
    /home/phoenix/apps/apache-doris-3.0.8-bin-x64/fe/bin/stop_fe.sh && \
    sleep 3 && \
    /home/phoenix/apps/apache-doris-3.0.8-bin-x64/fe/bin/start_fe.sh --daemon && \
    sleep 3 && \
    /home/phoenix/apps/apache-doris-3.0.8-bin-x64/be/bin/start_be.sh --daemon'

TimeoutStartSec=300
TimeoutStopSec=180
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

启动doris.service

sudo systemctl start doris.service

开机自启动

sudo systemctl enable doris.service

8. 防火墙配置(如果需要远程访问)

# 开放Doris端口
sudo ufw allow 8030/tcp  # FE HTTP端口
sudo ufw allow 9030/tcp  # FE MySQL端口
sudo ufw allow 8040/tcp  # BE HTTP端口

注意事项

  1. 内存要求:Doris需要足够的内存,建议至少4GB内存

  2. 磁盘空间:确保有足够的磁盘空间存储数据

  3. 网络配置:如果要从外部访问,需要修改priority_networks配置为:0.0.0.0

  4. 复制因子:单机模式下,表的replication_num必须设置为1

这样就完成了Doris 3.0.8单机版的安装。你可以通过MySQL客户端或Doris的Web界面(http://服务器IP:9031)来管理和使用Doris,Apache Doris FE 的 HTTP 页面(Web UI)默认账号为rootadmin,默认密码均为空。