8.3 编译部署¶
1 概述¶
本文档详细介绍了 Doris 存算分离模式下的编译和部署流程,重点说明了与存算一体模式的区别,特别是新增 Meta Service (MS) 模块的编译、配置和管理。
2 获取二进制¶
2.1 直接下载¶
已编译好的二进制文件(包含所有 Doris 模块)可从 Doris 下载页面获取(选择 3.0.2 或更高版本)。
2.2 编译产出 (可选)¶
使用代码库自带的 build.sh 脚本进行编译。新增的 MS 模块通过 --cloud 参数编译。
| Bash | |
|---|---|
1 | |
编译完成后,在 output 目录下会新增 ms 目录:
| Bash | |
|---|---|
1 2 3 4 5 6 7 | |
3 Meta Service 部署¶
3.1 配置¶
在 ./conf/doris_cloud.conf 文件中,主要需要修改以下两个参数:
-
brpc_listen_port:Meta Service的监听端口,默认为5000。 -
fdb_cluster:FoundationDB集群的连接信息,部署FoundationDB时可以获取。(如果使用Doris提供的fdb_ctl.sh部署的话,可在$FDB_HOME/conf/fdb.cluster文件里获取该值)。
示例配置:
| Bash | |
|---|---|
1 2 | |
注意: fdb_cluster 的值应与 FoundationDB 部署机器上的 /etc/foundationdb/fdb.cluster 文件内容一致(如果使用 Doris 提供的 fdb_ctl.sh 部署的话,可在 $FDB_HOME/conf/fdb.cluster 文件里获取该值)。
示例,文件的最后一行就是要填到 doris_cloud.conf 里 fdb_cluster 字段的值
| Bash | |
|---|---|
1 2 3 4 5 6 7 | |
3.2 启动与停止¶
3.2.1 环境要求¶
确保已正确设置 JAVA_HOME 环境变量,指向 OpenJDK 17 ,进入 ms 目录。
3.2.2 启动命令¶
| Bash | |
|---|---|
1 2 | |
3.2.3 停止命令¶
| Bash | |
|---|---|
1 | |
验证启动
检查 doris_cloud.out 文件中是否有 successfully started 的输出信息。
生产环境中请确保至少有 3 个 Meta Service 节点。
4 数据回收功能独立部署(可选)¶
Tip
Meta Service 本身具备了元数据管理和回收功能,这两个功能可以独立部署,如果你想独立部署,可以参考这一节。
4.1 准备工作¶
-
创建新的工作目录(如
recycler)。 -
复制
ms目录内容到新目录:Bash 1cp -r ms recycler
4.2 配置¶
在新目录的配置文件中修改 BRPC 监听端口 brpc_listen_port 和 fdb_cluster 的值。
4.3 启动数据回收功能¶
| Bash | |
|---|---|
1 2 | |
4.4 启动仅元数据操作功能¶
| Bash | |
|---|---|
1 2 | |
5 FE 和 BE 的启动流程¶
本节详细说明了在存算分离架构下启动 FE(Frontend) 和 BE(Backend) 的步骤。
5.1 启动顺序¶
-
以
MASTER角色启动实例的第一个FE -
向实例中添加其他
FE和BE -
添加第一个
Storage Vault
5.2 启动 MASTER 角色的 FE¶
5.2.1 配置 fe.conf¶
在 fe.conf 文件中,需要配置以下关键参数:
-
deploy_mode-
描述:指定
doris启动模式 -
格式:
cloud表示存算分离模式,其它存算一体模式 -
示例:
cloud
-
-
cluster_id-
描述:存算分离架构下集群的唯一标识符,不同的集群必须设置不同的
cluster_id -
格式:
int类型 -
示例:可以使用如下
shell脚本生成一个随机id使用。Bash 1echo $(($((RANDOM << 15)) | $RANDOM))Warning
不同的集群必须设置不同的
cluster_id
-
-
meta_service_endpoint-
描述:
Meta Service的地址和端口 -
格式:
IP地址:端口号 -
示例:
127.0.0.1:5000,可以用逗号分割配置多个meta service。
-
5.2.2 启动 FE¶
启动命令示例:
| Bash | |
|---|---|
1 | |
第一个 FE 进程初始化集群并以 FOLLOWER 角色工作。使用 mysql 客户端连接 FE 使用 show frontends 确认刚才启动的 FE 是 master 。
5.3 添加其他 FE 节点¶
其他节点同样根据上述步骤修改配置文件并启动,使用 mysql 客户端连接 Master 角色的 FE ,并用以下 SQL 命令添加额外的 FE 节点:
| SQL | |
|---|---|
1 | |
将 host:port 替换为 FE 节点的实际地址和编辑日志端口。更多信息请参见 ADD FOLLOWER 和 ADD OBSERVER 。
生产环境中请确保在 FOLLOWER 角色中的前端( FE )节点总数,包括第一个 FE ,保持为奇数。一般来说,三个 FOLLOWER 就足够了。 OBSERVER 角色的前端节点可以是任意数量。
5.4 添加 BE 节点¶
要向集群添加 Backend 节点,请对每个 Backend 执行以下步骤:
5.4.1 配置 be.conf¶
在 be.conf 文件中,需要配置以下关键参数:
-
deploy_mode-
描述:指定
doris启动模式 -
格式:
cloud表示存算分离模式,其它存算一体模式 -
示例:
cloud
-
-
file_cache_path-
描述:用于文件缓存的磁盘路径和其他参数,以数组形式表示,每个磁盘一项。
path指定磁盘路径,total_size限制缓存的大小;-1或0将使用整个磁盘空间。 -
格式:
[{"path":"/path/to/file_cache","total_size":21474836480},{"path":"/path/to/file_cache2","total_size":21474836480}] -
示例:
[{"path":"/path/to/file_cache","total_size":21474836480},{"path":"/path/to/file_cache2","total_size":21474836480}] -
默认:
[{"path":"${DORIS_HOME}/file_cache"}]
-
5.4.2 启动和添加 BE¶
-
启动
Backend:使用以下命令启动
Backend:Bash 1bin/start_be.sh --daemon -
将
Backend添加到集群:使用
MySQL客户端连接到任意Frontend,并执行:SQL 1ALTER SYSTEM ADD BACKEND "<ip>:<heartbeat_service_port>" [PROTERTIES propertires];将
<ip>替换为新Backend的IP地址,将<heartbeat_service_port>替换为其配置的心跳服务端口(默认为9050)。可以通过
PROPERTIES设置BE所在的计算组。更详细的用法请参考
ADD BACKEND和REMOVE BACKEND。 -
验证
Backend状态:检查
Backend日志文件(be.log)以确保它已成功启动并加入集群。您还可以使用以下
SQL命令检查Backend状态:SQL 1SHOW BACKENDS;这将显示集群中所有
Backend及其当前状态。
6 创建 Storage Vault¶
Storage Vault 是 Doris 存算分离架构中的重要组件。它们代表了存储数据的共享存储层。您可以使用 HDFS 或兼容 S3 的对象存储创建一个或多个 Storage Vault 。可以将一个 Storage Vault 设置为默认 Storage Vault ,系统表和未指定 Storage Vault 的表都将存储在这个默认 Storage Vault 中。默认 Storage Vault 不能被删除。以下是为您的 Doris 集群创建 Storage Vault 的方法:
6.1 创建 HDFS Storage Vault¶
要使用 SQL 创建 Storage Vault ,请使用 MySQL 客户端连接到您的 Doris 集群
| SQL | |
|---|---|
1 2 3 4 5 | |
6.2 创建 S3 Storage Vault¶
要使用兼容 S3 的对象存储创建 Storage Vault ,请按照以下步骤操作:
-
使用
MySQL客户端连接到您的Doris集群。 -
执行以下
SQL命令来创建S3 Storage Vault:
| SQL | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 | |
要在其他对象存储上创建 Storage Vault ,请参考创建 Storage Vault 。
6.3 设置默认 Storage Vault¶
使用如下 SQL 语句设置一个默认 Storage Vault 。
| SQL | |
|---|---|
1 | |
7 注意事项¶
-
仅元数据操作功能的
Meta Service进程应作为FE和BE的meta_service_endpoint配置目标。 -
数据回收功能进程不应作为
meta_service_endpoint配置目标。