在存算分离模式下进行 Doris 编译与存算一体模式的编译相似,主要区别在于新增 Meta Service 模块的编译和部署。

编译

存算分离和存算一体模式下的编译方式相似,均使用代码库自带的 build.sh 脚本编译,新增的 Meta Service 模块使用参数--cloud 即可编出(二进制名为 doris_cloud)。

  1. sh build.sh --fe --be --cloud

不同于存算一体模式,存算分离模式编译后,可在 output 目录下发现一个 ms 目录。

  1. output
  2. ├── be
  3. ├── fe
  4. └── ms
  5. ├── bin
  6. ├── conf
  7. └── lib

ms目录作为编译产出,将同时服务于 Meta Service 和 Recycler。需要注意的是,尽管 Meta Service 和 Recycler 在本质上属于同一程序,但目前需要分别为它们准备独立的二进制文件。Meta Service 和 Recycler 两个目录完全一致,只是启动参数不同。

准备两份二进制文件,只需使用以下命令从ms目录中拷贝二进制文件至一个新的 Recycler 工作目录re,然后在msreconf子目录下,对端口号等参数按需进行必要修改即可。

  1. cp -r ms re

版本信息

可通过两种方式检查doris_cloud 的版本信息,若其中一种方式无法正确执行,可尝试另一方式,在ms或者re目录下:

  • bin/start.sh --version
  • lib/doris_cloud --version
  1. $ lib/doris_cloud --version
  2. version:{doris_cloud-0.0.0-debug} code_version:{commit=b9c1d057f07dd874ad32501ff43701247179adcb time=2024-03-24 20:44:50 +0800} build_info:{initiator=gavinchou@VM-10-7-centos build_at=2024-03-24 20:44:50 +0800 build_on=NAME="TencentOS Server" VERSION="3.1 (Final)" }

Meta Service 和 Recycler 部署

Meta Service 和 Recycler 是同一程序的不同进程,通过启动不同参数来分别运行。

这两个进程依赖 FoundationDB,关于 FoundationDB 的部署可参考“部署前准备”页的 FoundationDB 安装指引)。

Meta Service 配置

通常情况下,只需在./conf 目录下的默认配置文件 doris_cloud.conf中修改 brpc_listen_portfdb_cluster 两个参数。(Meta Service 配置只需一个配置文件。)

  1. brpc_listen_port = 5000
  2. fdb_cluster = xxx:yyy@127.0.0.1:4500

上述 brpc_listen_port = 5000 是 Meta Service 的默认端口。其中,fdb_cluster 是 FoundationDB 集群的连接信息,通常可从 FoundationDB 所部署机器上的 /etc/foundationdb/fdb.cluster 文件中获得。

示例

  1. cat /etc/foundationdb/fdb.cluster
  2. DO NOT EDIT!
  3. This file is auto-generated, it is not to be edited by hand.
  4. cloud_ssb:A83c8Y1S3ZbqHLL4P4HHNTTw0A83CuHj@127.0.0.1:4500

Recycler 配置

除了端口外,Recycler 的其他默认配置均与 Meta Service 相同。Recycler 的 bRPC 端口一般采用 5100。

通常情况下,只需在./conf 目录下的默认配置文件 doris_cloud.conf中修改 brpc_listen_portfdb_cluster 两个参数。(Recycler 配置只需一个配置文件。)

  1. brpc_listen_port = 5100
  2. fdb_cluster = xxx:yyy@127.0.0.1:4500

上述 brpc_listen_port = 5100 是 Recycler 的默认端口。其中,fdb_cluster 是 FoundationDB 集群的连接信息,通常可从 FoundationDB 所部署机器上的 /etc/foundationdb/fdb.cluster 文件中获得。

示例

  1. cat /etc/foundationdb/fdb.cluster
  2. DO NOT EDIT!
  3. This file is auto-generated, it is not to be edited by hand.
  4. cloud_ssb:A83c8Y1S3ZbqHLL4P4HHNTTw0A83CuHj@127.0.0.1:4500

模块启停

Meta Service 和 Recycler 依赖 JAVA 运行环境,并使用 OpenJDK 17。在启动前这两个服务前,请确保已正确设置 export JAVA_HOME 环境变量。

doris_cloud 部署的 bin 目录下提供了启停脚本,调用对应的启停脚本即可完成启停。

启停 Meta Service

ms 目录中:

  1. export JAVA_HOME=${path_to_jdk_17}
  2. bin/start.sh --meta-service --daemonized
  3. bin/stop.sh

启停 Recycler

re 目录中:

  1. export JAVA_HOME=${path_to_jdk_17}
  2. bin/start.sh --recycler --daemonized
  3. bin/stop.sh

在成功部署并启动 Meta Service 和 Recycler 之后,Doris 存算分离模式的底座便已完成搭建。

若 Meta Service 进程正常启动,将能在 doris_cloud.out 文件中观察到 meta-service started 的输出信息。同样地,Recycler 进程如果正常启动,则会在该文件中显示 recycler started 的输出信息。

  1. Tue Jun 18 00:46:37 CST 2024
  2. process working directory: "/mnt/disk1/gavinchou/debug/doris-cloud/ms"
  3. pid=2682786 written to file=./bin/doris_cloud.pid
  4. version:{doris_cloud-0.0.0-debug} code_version:{commit=4517faffbf79b48d34a94abb22ee090f2d6e2007 time=2024-06-18 00:40:29 +0800} build_info:{initiator=gavinchou@VM-10-7-centos build_at=2024-06-18 00:40:29 +0800 build_on=NAME="TencentOS Server" VERSION="3.1 (Final)" }
  5. meta-service started