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 1
cp -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 1
echo $(($((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 1
bin/start_be.sh --daemon
-
将
Backend
添加到集群:使用
MySQL
客户端连接到任意Frontend
,并执行:SQL 1
ALTER 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 1
SHOW 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
配置目标。