跳到主要内容

Doris 存算分离模式部署准备

1. 概述

本文档介绍了 Apache Doris 存算分离模式的部署准备工作。存算分离架构旨在提高系统的可扩展性和性能,适用于大规模数据处理场景。

2. 架构组件

Doris 存算分离架构包含三个主要模块:

  1. Frontend (FE):处理用户请求和管理元数据。
  2. Backend (BE):无状态计算节点,执行查询任务。
  3. Meta Service (MS):管理元数据操作和数据回收。

3. 系统要求

3.1 硬件要求

  • 最小配置:3 台服务器
  • 推荐配置:5 台或更多服务器

3.2 软件依赖

  • FoundationDB (FDB) 7.1.38 或更高版本
  • OpenJDK 17

4. 部署规划

4.1 测试环境部署

单机部署所有模块,不适用于生产环境。

4.2 生产部署

  • 3 台或更多机器部署 FDB
  • 3 台或更多机器部署 FE 和 Meta Service
  • 3 台或更多机器部署 BE

机器配置高时,可以考虑 FDB、FE 和 Meta Service 混布,但是磁盘不要混用。

5. 安装步骤

5.1. 安装 FoundationDB

本节提供了脚本 fdb_vars.shfdb_ctl.sh 配置、部署和启动 FDB(FoundationDB)服务的分步指南。您可以下载 doris tools 并从 fdb 目录获取 fdb_vars.shfdb_ctl.sh

5.1.1 机器要求

通常,至少需要 3 台配备 SSD 的机器来形成具有双数据副本并允许单机故障的 FoundationDB 集群。

提示

如果仅用于开发/测试目的,单台机器就足够了。

5.1.2 fdb_vars.sh 配置

必需的自定义设置
参数描述类型示例注意事项
DATA_DIRS指定 FoundationDB 存储的数据目录以逗号分隔的绝对路径列表/mnt/foundationdb/data1,/mnt/foundationdb/data2,/mnt/foundationdb/data3- 运行脚本前确保目录已创建
- 生产环境建议使用 SSD 和独立目录
FDB_CLUSTER_IPS定义集群 IP字符串(以逗号分隔的 IP 地址)172.200.0.2,172.200.0.3,172.200.0.4- 生产集群至少应有 3 个 IP 地址
- 第一个 IP 地址将用作协调器
- 为高可用性,将机器放置在不同机架上
FDB_HOME定义 FoundationDB 主目录绝对路径/fdbhome- 默认路径为 /fdbhome
- 确保此路径是绝对路径
FDB_CLUSTER_ID定义集群 ID字符串SAQESzbh- 每个集群的 ID 必须唯一
- 可使用 mktemp -u XXXXXXXX 生成
FDB_CLUSTER_DESC定义 FDB 集群的描述字符串dorisfdb- 建议更改为对部署有意义的内容
可选的自定义设置
参数描述类型示例注意事项
MEMORY_LIMIT_GB定义 FDB 进程的内存限制,单位为 GB整数MEMORY_LIMIT_GB=16根据可用内存资源和 FDB 进程的要求调整此值
CPU_CORES_LIMIT定义 FDB 进程的 CPU 核心限制整数CPU_CORES_LIMIT=8根据可用的 CPU 核心数量和 FDB 进程的要求设置此值

5.1.3 部署 FDB 集群

使用 fdb_vars.sh 配置环境后,您可以在每个节点上使用 fdb_ctl.sh 脚本部署 FDB 集群。

./fdb_ctl.sh deploy

此命令启动 FDB 集群的部署过程。

5.1.4 启动 FDB 服务

FDB 集群部署完成后,您可以使用 fdb_ctl.sh 脚本启动 FDB 服务。

./fdb_ctl.sh start

此命令启动 FDB 服务,使集群工作并获取 FDB 集群连接字符串,后续可以用于配置 MetaService。

5.2 安装 OpenJDK 17

  1. 下载 OpenJDK 17
  2. 解压并设置环境变量 JAVA_HOME.

5.3 安装 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 # 在较老版本中,该配置为 MINIO_ACCESS_KEY=minio
    export MINIO_ROOT_PASSWORD=minioadmin # 在较老版本中,该配置为 MINIO_SECRET_KEY=minioadmin
    nohup ./minio server /mnt/data 2>&1 &
  3. 配置 MinIO Client
    # 如果你使用的是安装包安装的客户端,那么客户端名为 mcli,直接下载客户端二进制包,则其名为 mc
    ./mc config host add myminio http://127.0.0.1:9000 minio minioadmin
  4. 创建一个桶
    ./mc mb myminio/doris
  5. 验证是否正常工作
    # 上传一个文件
    ./mc mv test_file myminio/doris
    # 查看这个文件
    ./mc ls myminio/doris

6. 后续步骤

完成上述准备工作后,请参考以下文档继续部署:

  1. 部署
  2. 管理 Compute Group
  3. 管理 Storage Vault

7. 注意事项

  • 确保所有节点的时间同步
  • 定期备份 FoundationDB 数据
  • 根据实际负载调整 FoundationDB 和 Doris 的配置参数

8. 参考资料