单服务器部署doris3.0
Debian 12 下一台服务器搞定!手把手教你部署 Doris 3.0(图文详解)
本文将详细介绍如何在 Debian 12 上部署 Apache Doris 3.0,包括下载、安装、配置及常见问题排查,适用于测试、学习与轻量生产环境。
🧩 一、安装所在环境
- 系统:Debian 12
- 内存:16GB
- Java:
java-17-openjdk-amd64 - Python:Python 3.12
📥 二、Doris 3.0 下载
官方下载地址:
👉 https://doris.apache.org/download/
下载并解压:
wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-3.0.6.2-bin-x64.tar.gz
tar -xvf apache-doris-3.0.6.2-bin-x64.tar.gz
目录结构如下:
apache-doris-3.0.6.2-bin-x64/
├── be
├── extensions
├── fe
├── ms
└── tools

⚙️ 三、配置 Doris FE(Frontend)
编辑 fe/conf/fe.conf:
priority_networks = 127.0.0.1/32
meta_dir = /data/doris/fe/meta
http_port = 8030
rpc_port = 9010
query_port = 9030
edit_log_port = 9010
📌 注意事项:
meta_dir可不配,默认存放在fe目录下doris-metapriority_networks应设置为本机所在网段- 其他四项默认都会配置,确认端口号不冲突,可忽略
创建元数据目录:
sudo mkdir -p /data/doris/fe/meta
sudo chown -R $USER:$USER /data/doris/fe
⚙️ 四、配置 Doris BE(Backend)
编辑 be/conf/be.conf:
storage_root_path = /data/doris/be/storage
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/
priority_networks = 192.168.1.100/24
heartbeat_service_port = 9050
webserver_port = 8040
brpc_port = 8060
📌 注意事项:
storage_root_path可不配,默认存放在be目录下storageJAVA_HOME这项最好配置了priority_networks应设置为本机所在网段- 其他四项默认都会配置,确认端口号不冲突,可忽略
创建存储路径:
sudo mkdir -p /data/doris/be/storage
sudo chown -R $USER:$USER /data/doris/be
🚀 五、启动 Doris 服务
启动 FE:
cd doris/fe
./bin/start_fe.sh --daemon
查看状态:
curl http://localhost:8030
或者在浏览器中输入http://<fe_ip>:<fe_port>,默认用户名是root,没有密码

启动 BE:
cd ../be
./bin/start_be.sh --daemon
🔧 六、注册 BE 到 FE
登录 FE Web 界面:
默认账户:
用户名: root
密码: (空)
添加 BE 节点:
ALTER SYSTEM ADD BACKEND "本机IP:9050";
验证:
SHOW BACKENDS;
🧪 七、测试表与查询
CREATE DATABASE test;
USE test;
CREATE TABLE t1 (
id INT,
name STRING
) DISTRIBUTED BY HASH(id) BUCKETS 1
PROPERTIES("replication_num" = "1");
INSERT INTO t1 VALUES (1, 'Doris'), (2, 'StarRocks');
SELECT * FROM t1;
🛠️ 八、常见问题排查(增强版)
1. FE 启动后无法访问 Web UI(8030 端口)
可能原因:
- FE 没有成功启动
- 端口 8030 被占用
解决:
- 查看日志:
fe/log/fe.out - 检查端口:
lsof -i:8030 - 若被占用,修改
fe.conf中的http_port
2. BE 启动时报 brpc 端口冲突
解决:
修改 be.conf 中的 brpc_port,避免端口冲突,例如:
brpc_port = 8061
3. 启动be报错:Set kernel parameter ‘vm.max_map_count’ to a value greater than 2000000
原因:系统内核参数 vm.max_map_count 设定得太低了,Doris BE 运行需要它设置为大于 2000000
解决:
-
临时修改(重启后失效)
执行命令:sudo sysctl -w vm.max_map_count=2000000 -
永久生效
编辑 /etc/sysctl.conf,添加:vm.max_map_count=2000000然后执行:
sudo sysctl -p -
验证设置
sysctl vm.max_map_count输出应为:
vm.max_map_count = 2000000调整好后,重新启动 Doris BE 即可。
4. 建表时报错:replication num should be less than the number of available backends
原因:当前只有一个 BE 节点,replication_num 设置过大。
解决: 将建表语句中的副本数设置为 1。
5. BE 状态为 dead
可能原因:
priority_networks配置错误- 网络不通
- 防火墙拦截心跳端口
解决:
- 确保 IP 段匹配,配置如:
192.168.1.0/24 - 放通 9050/8040/8060 端口
- 检查 FE 日志是否提示
heartbeat timeout
6. FE 页面看不到 BE 节点
可能原因:
- BE 未正确注册
- 网络通信异常
解决:
-
使用 SQL 添加 BE:
ALTER SYSTEM ADD BACKEND "192.168.1.100:9050"; -
查看 FE 日志检查注册过程是否失败
7. Web 页面加载异常或空白
解决:
-
清除浏览器缓存或使用无痕模式
-
使用 curl 验证是否返回页面:
curl http://localhost:8030
8. 创建表时报语法错误
Doris 与 MySQL 存在语法差异,建表需指定:
- 分布策略:
DISTRIBUTED BY HASH(...) - 副本数:
PROPERTIES("replication_num" = "1")
9. 插入后查不到数据
排查:
- 当前数据库是否正确?
- 表是否创建成功?
解决:
USE test;
SHOW TABLES;
SELECT COUNT(*) FROM t1;
10. Doris 无法写日志或创建元数据目录
原因: 配置路径权限不足或路径不存在。
解决:
sudo chown -R $USER:$USER /data/doris
chmod -R 755 /data/doris
11. 无法判断 Doris 是否正常运行
推荐检查命令:
ps -ef | grep doris
netstat -tunlp | grep -E "8030|9030|9010|8040|9060|9050"
tail -f fe/log/fe.out
tail -f be/log/be.out
🧭 九、部署结构图
+-------------------------+
| User |
+-----------+------------+
|
v
+---------+----------+
| FE |
| Web UI (8030) |
| MySQL (9030) |
+---------+----------+
|
+-----------+------------+
| |
+-------+-------+ +-------+-------+
| BE | | (更多 BE) |
| RPC: 9060 | | |
| Web: 8040 | +---------------+
+---------------+
✅ 十、总结
- 本文基于 Debian 12 + Java 17 + Python 3.12,完整展示了 Doris 3.0 的单机部署流程
- 配置重点包括端口冲突、路径权限、网络段匹配
- 推荐用于本地测试或轻量生产场景
如需支持集群部署、高可用、Broker、数据导入导出等,请参考官方文档或后续进阶教程
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 龙儿之家!
评论
TwikooGitalk







