Apache Doris(全称 Apache Doris,原名 Palo)是一款面向 大规模并行处理(MPP) 的 实时分析型数据库。Doris 旨在为 实时大数据分析 场景提供 高性能、易运维、低成本 的解决方案,常被用于日志分析、广告投放监控、业务报表、BI 查询等需要快速响应的大数据业务。
下面给出从硬件/系统准备、二进制手动部署、Docker 部署、Kubernetes(Operator)部署三种常见方式的完整步骤。
1.前期规划与硬件要求
| 项目 | 推荐配置 | 说明 |
|---|---|---|
| CPU | 支持 AVX2 指令集,核心数 ≥ 8(生产环境建议 ≥ 16) | AVX2 能显著提升向量化计算性能 |
| 内存 | 1 CPU core ≈ 4 GB RAM(即 CPU 核数的 4 倍) | 保障查询并发与数据加载 |
| 磁盘 | SSD(NVMe 更佳),存储空间 ≥ 3 × 业务数据量(冷热分层可使用不同磁盘) | BE 负责数据存储,建议使用高速 SSD |
| 网络 | 万兆网卡(10 GbE)或以上,确保 FE↔BE、BE↔BE 低延迟 | 集群内部通信对网络要求较高 |
| 操作系统 | Linux(CentOS 7/8、Ubuntu 20.04+),关闭 swap,开启 NTP 同步时间 | 生产环境必须关闭 swap、同步时钟 |
| 其它 | 关闭 SELinux(或设为 permissive),调整文件句柄数 ulimit -n 65535,虚拟内存 vm.max_map_count=2000000(Docker 环境需在容器内设置) |
节点角色
- Frontend (FE):元数据管理、SQL 解析、查询调度。生产建议 3 节点(1 Leader + 2 Follower)实现 HA。
- Backend (BE):数据存储与计算。建议 ≥3 节点,根据业务规模横向扩容。
- Broker(可选):访问外部文件系统(HDFS、S3)时使用。每台机器部署 1 实例即可。
2.环境准备
1.创建统一目录(建议使用 /opt/doris 或 /data/doris)
mkdir -p /opt/doris/fe /opt/doris/be /opt/doris/broker
mkdir -p /data/doris/meta # FE 元数据目录
mkdir -p /data/doris/be_data # BE 存储目录
2.安装 JDK(OpenJDK 8/11/17,版本需与 Doris 二进制包匹配)
yum install -y java-1.8.0-openjdk # CentOS 示例
# 或者 apt install openjdk-17-jdk # Ubuntu 示例
3.关闭 swap、开启 NTP(确保时间一致)
swapoff -a
systemctl enable --now chronyd # 或 ntpd
4.设置系统参数(一次性生效或写入 /etc/sysctl.conf)
echo "vm.max_map_count=2000000" >> /etc/sysctl.conf
sysctl -p
ulimit -n 65535
3. 下载与解压二进制包
cd /opt/doris
wget https://downloads.apache.org/doris/apache-doris-2.1.0-bin-x64-noavx2.tar.gz # 以 2.1.0 为例
tar -xzf apache-doris-2.1.0-bin-x64-noavx2.tar.gz
mv apache-doris-2.1.0-bin-x64-noavx2/* .
注意:如果集群中所有机器均使用相同的二进制包,建议先在一台机器上解压后通过 scp 分发到其余节点,避免重复下载。
4. 配置 Frontend (fe.conf)
编辑 fe/conf/fe.conf(所有 FE 节点保持一致):
# 元数据存放路径(建议放在独立磁盘)
meta_dir = /data/doris/meta
# HTTP / RPC 端口
http_port = 8030
rpc_port = 9020
# FE 对外 IP(多网卡时指定子网)
priority_networks = 10.10.2.0/24 # 根据实际网段修改[[10]]
# FE 高可用配置(若部署 3 节点,保持相同的 edit_log_port)
edit_log_port = 9010
priority_networks 用于绑定 FE/BE 进程的网卡,必须在 fe.conf 与 be.conf 中保持一致。
5. 配置 Backend (be.conf)
编辑 be/conf/be.conf(所有 BE 节点保持相同的公共配置,个别路径可自行覆盖):
# 存储路径(建议使用 SSD,路径可多盘挂载)
storage_root_path = /data/doris/be_data
# 与 FE 通信的 IP/端口
frontend_ip = 10.10.2.101 # 任意一个 FE 的 IP
frontend_port = 9020
# BE 对外端口
be_port = 9060
heartbeat_service_port = 9050
# 网络绑定
priority_networks = 10.10.2.0/24 # 与 FE 保持一致[[12]]
# 内存限制(根据机器内存自行调节)
mem_limit = 64GB
若需要冷热分层,可在 storage_root_path 下再细分子目录并在 be.conf 中通过 storage_medium 参数指定。
6. 启动集群
6.1 启动 FE(在每个 FE 节点执行)
cd /opt/doris/fe
sh bin/start_fe.sh --daemon # 后台启动
# 检查日志
tail -f log/fe.log
首次启动时会自动选举 Leader,后续节点会作为 Follower 加入。
6.2 启动 BE(在每个 BE 节点执行)
cd /opt/doris/be
sh bin/start_be.sh --daemon
tail -f log/be.out
6.3 验证集群状态
使用 MySQL 客户端连接 FE(默认 8030 端口):
mysql -h 10.10.2.101 -P 8030 -u root
SHOW PROC '/frontends';
SHOW PROC '/backends';
若 FE/BE 均显示 Alive,则集群已正常运行。
7. Docker 方式快速部署(适用于开发/测试)
拉取官方镜像
docker pull apache/doris:2.1.0
准备本地配置目录(将 fe.conf、be.conf 放入 ./conf)
mkdir -p ./conf/fe ./conf/be
# 将前文的 fe.conf、be.conf 复制进去
启动单机集群(FE+BE)
docker run -d \
-p 8030:8030 -p 9030:9030 -p 9040:9040 \
-v $(pwd)/conf/fe:/opt/doris/fe/conf \
-v $(pwd)/conf/be:/opt/doris/be/conf \
--name doris \
apache/doris:2.1.0
多节点 Docker Compose(可参考官方 docker-compose.yaml,其中定义 3 FE、3 BE)。
8.Kubernetes(Operator)方式部署(生产推荐)
前置准备
已部署 Kubernetes 1.20+ 集群。
安装 Doris Operator(官方提供的 CRD):
kubectl apply -f https://raw.githubusercontent.com/apache/doris-operator/master/deploy/crds/doris_v1alpha1_doriscluster_crd.yaml
kubectl apply -f https://raw.githubusercontent.com/apache/doris-operator/master/deploy/operator.yaml
下载并自定义部署模板
curl -O https://raw.githubusercontent.com/apache/doris-operator/master/doc/examples/doriscluster-sample.yaml
编辑 doriscluster-sample.yaml,主要修改以下字段:
spec:
fe:
replicas: 3
resources:
requests:
cpu: "4"
memory: "8Gi"
config:
meta_dir: "/opt/doris/fe/meta"
be:
replicas: 3
resources:
requests:
cpu: "8"
memory: "32Gi"
config:
storage_root_path: "/opt/doris/be/data"
cn: # 若使用存算分离模式,可额外配置 Compute Node
replicas: 2
部署集群
kubectl apply -f doriscluster-sample.yaml
检查状态
kubectl get pods -n doris # 所有 FE/BE/CN 应为 Running
kubectl get dcr -n doris # 查看自定义资源状态[[19]]
访问方式
- 内部访问:在同一 namespace 内通过 Service doris-fe(端口 8030)访问。
- 外部访问:可使用 Ingress 或 NodePort 暴露 FE HTTP/SQL 端口。
存算分离模式(Compute‑Storage Decoupled)需要额外部署 Meta Service。
1万+

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



