首页
/ Apache Doris 存储计算分离集群手动部署指南

Apache Doris 存储计算分离集群手动部署指南

2025-06-27 23:31:26作者:何举烈Damon

前言

Apache Doris 作为一款高性能的MPP分析型数据库,其存储计算分离架构能够有效提升资源利用率和系统扩展性。本文将详细介绍如何手动部署Apache Doris的存储计算分离集群,帮助用户构建高可用、高性能的分析平台。

部署前准备

在开始部署前,请确保已完成以下准备工作:

  1. 环境检查:确保所有节点满足系统要求
  2. 集群规划:确定FE、BE、Meta Service等组件的部署节点
  3. 操作系统检查:确认系统参数配置正确
  4. 网络规划:确保节点间网络连通性良好

部署流程概览

完整的部署流程包含以下8个关键步骤:

  1. 准备FoundationDB集群
  2. 部署S3或HDFS共享存储服务
  3. 部署Meta Service
  4. (可选)独立部署数据回收功能
  5. 启动FE Master节点
  6. 构建FE集群
  7. 添加BE节点
  8. 创建Storage Vault

下面我们将详细介绍每个步骤的具体实施方法。

步骤一:FoundationDB集群部署

1. 机器要求

生产环境建议至少3台配备SSD的机器组成FoundationDB集群,实现双副本数据存储,可容忍单机故障。测试环境可使用单机部署。

2. 配置fdb_vars.sh脚本

必须配置的关键参数:

参数名 描述 类型 示例值 注意事项
DATA_DIRS FoundationDB数据目录 绝对路径列表 /mnt/foundationdb/data1,/mnt/foundationdb/data2 生产环境建议使用SSD并分开目录
FDB_CLUSTER_IPS 集群节点IP列表 逗号分隔IP地址 172.200.0.2,172.200.0.3,172.200.0.4 第一个IP将作为协调节点
FDB_HOME FoundationDB家目录 绝对路径 /fdbhome 必须为绝对路径
FDB_CLUSTER_ID 集群唯一标识 字符串 SAQESzbh 可使用mktemp -u XXXXXXXX生成
FDB_CLUSTER_DESC 集群描述信息 字符串 dorisfdb 建议设置有意义的值

可选配置参数:

参数名 描述 类型 示例值 注意事项
MEMORY_LIMIT_GB FDB内存限制(GB) 整数 32 根据系统内存合理设置

3. 部署与启动

# 部署集群
./fdb_ctl.sh deploy

# 启动服务
./fdb_ctl.sh start

启动后将获取FDB集群连接字符串,用于后续Meta Service配置。

重要警告:生产环境严禁使用fdb_ctl.sh clean命令,否则会导致数据丢失!

步骤二:S3/HDFS服务部署(可选)

Apache Doris存储计算分离模式下,数据存储在S3或HDFS共享存储中。若已有现成服务可跳过此步骤。

MinIO快速部署指南

  1. 下载MinIO Server和Client二进制包

  2. 启动MinIO Server:

export MINIO_REGION_NAME=us-east-1
export MINIO_ROOT_USER=minio
export MINIO_ROOT_PASSWORD=minioadmin
nohup ./minio server /mnt/data 2>&1 &
  1. 配置MinIO Client:
./mc config host add myminio http://127.0.0.1:9000 minio minioadmin
  1. 创建Bucket:
./mc mb myminio/doris
  1. 验证功能:
# 上传测试文件
./mc mv test_file myminio/doris
# 查看文件列表
./mc ls myminio/doris

步骤三:Meta Service部署

1. 关键配置

修改./conf/doris_cloud.conf文件:

brpc_listen_port = 5000  # Meta Service监听端口
fdb_cluster = xxx:yyy@127.0.0.1:4500  # FoundationDB集群连接信息

注意fdb_cluster值应与FoundationDB部署机器上的/etc/foundationdb/fdb.cluster文件内容一致。

2. 启动与停止

确保已设置JAVA_HOME指向OpenJDK 17:

# 启动
export JAVA_HOME=${path_to_jdk_17}
bin/start.sh --daemon

# 停止
bin/stop.sh

生产环境建议部署至少3个Meta Service节点保证高可用。

步骤四:独立数据回收功能部署(可选)

Meta Service已内置元数据管理和回收功能,如需独立部署:

  1. 创建新工作目录并复制ms目录内容:
cp -r ms recycler
  1. 修改新目录中的配置参数

  2. 启动特定功能:

# 仅启动数据回收功能
bin/start.sh --recycler --daemon

# 仅启动元数据操作功能
bin/start.sh --meta-service --daemon

步骤五:启动FE Master节点

1. 关键配置

修改fe.conf文件:

deploy_mode = cloud  # 存储计算分离模式
cluster_id = 123456  # 集群唯一ID,不同集群必须不同
meta_service_endpoint = 127.0.0.1:5000  # Meta Service地址

注意cluster_id可使用echo $(($((RANDOM << 15)) | $RANDOM))生成随机值。

2. 启动Master节点

bin/start_fe.sh --daemon

启动后使用MySQL客户端连接FE,执行show frontends确认节点角色。

步骤六:构建FE集群

通过MySQL客户端连接到Master FE,添加其他FE节点:

-- 添加FOLLOWER节点
ALTER SYSTEM ADD FOLLOWER "host:port";

-- 添加OBSERVER节点
ALTER SYSTEM ADD OBSERVER "host:port";

生产环境建议:

  • FOLLOWER节点总数保持奇数(通常3个足够)
  • OBSERVER节点数量可任意

步骤七:添加BE节点

1. 关键配置

修改be.conf文件:

deploy_mode = cloud  # 存储计算分离模式
file_cache_path = [{"path":"/path/to/file_cache", "total_size":21474836480}]  # 文件缓存配置

2. 启动与添加

# 启动BE进程
bin/start_be.sh --daemon

# 通过MySQL客户端添加BE
ALTER SYSTEM ADD BACKEND "<ip>:<heartbeat_service_port>" [PROPERTIES properties];

3. 验证状态

-- 查看BE状态
SHOW BACKENDS;

步骤八:创建Storage Vault

Storage Vault是存储计算分离架构中的核心组件,代表共享存储层。

1. 创建HDFS Storage Vault

CREATE STORAGE VAULT IF_NOT_EXISTS hdfs_vault
    PROPERTIES (
    "type"="hdfs",
    "fs.defaultFS"="hdfs://127.0.0.1:8020"
);

2. 创建S3 Storage Vault

CREATE STORAGE VAULT IF_NOT_EXISTS s3_vault
    PROPERTIES (
    "type"="S3",
    "s3.endpoint"="s3.us-east-1.amazonaws.com",
    "s3.access_key" = "ak",
    "s3.secret_key" = "sk",
    "s3.region" = "us-east-1"
);

3. 设置默认Storage Vault

SET <storage_vault_name> AS DEFAULT STORAGE VAULT

注意事项

  1. 仅配置具有元数据操作功能的Meta Service作为FE和BE的meta_service_endpoint
  2. 数据回收功能进程不应配置为meta_service_endpoint
  3. 生产环境各组件都应部署多个实例保证高可用
  4. 定期检查各服务状态,确保集群健康运行

通过以上步骤,您已成功部署Apache Doris存储计算分离集群。后续可根据业务需求进行性能调优和容量扩展。

登录后查看全文
热门项目推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
176
261
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
860
511
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
182
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
259
300
kernelkernel
deepin linux kernel
C
22
5
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
595
57
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
398
371
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
332
1.08 K