跳到主要内容
版本: 最新版本-3.5

在 IDEA 上配置 StarRocks FE 开发环境

本教程基于 macOS,并在 Apple Chip(M1, M2) 上进行了测试。 即使您未使用 macOS,也可以参考本教程。

要求

Thrift 0.13

官方 brew 仓库中没有 0.13 版本的 Thrift; 我们的一位提交者在其仓库中创建了一个版本进行安装。

brew install alberttwong/thrift/thrift@0.13

成功安装 Thrift 后,您可以通过执行以下命令进行检查

$ thrift -version
Thrift version 0.13.0

Protobuf

只需使用最新的 v3 版本,因为最新版本的 Protobuf 与 StarRocks 中使用的 Protobuf v2 版本兼容。

brew install protobuf

Maven

brew install maven

Openjdk 1.8 或 11

brew install openjdk@11

Python3

MacOS 默认已安装。

每个人的 Thrift 和 Protobuf 安装目录可能不同,您可以使用 brew list 命令进行检查

brew list thrift@0.13.0
brew list protobuf

配置 StarRocks

下载 StarRocks

git clone https://github.com/StarRocks/starrocks.git

设置 thirdparty 目录

thirdparty 中创建 installed/bin 目录。

cd starrocks && mkdir -p thirdparty/installed/bin

然后分别为 Thrift 和 Protobuf 创建软链接。

ln -s /opt/homebrew/bin/thrift thirdparty/installed/bin/thrift
ln -s /opt/homebrew/bin/protoc thirdparty/installed/bin/protoc

设置环境变量

export JAVA_HOME="/opt/homebrew/Cellar/openjdk@11/11.0.15" # Caution: The jdk version may be different in you desktop
export PYTHON=/usr/bin/python3
export STARROCKS_THIRDPARTY=$(pwd)/thirdparty # Caution: Make sure you are in the starrocks directory

生成源代码

FE 中的许多源文件需要手动生成,否则 IDEA 会因缺少文件而报告错误。 执行以下命令自动生成

cd gensrc
make clean
make

编译 FE

进入 fe 目录并使用 Maven 进行编译

cd fe
mvn install -DskipTests

在 IDEA 中打开 StarRocks

  1. 在 IDEA 中打开 StarRocks 目录。

  2. 添加代码风格设置 为了规范编码风格,您应该在 IDEA 中导入 fe/starrocks_intellij_style.xml 代码风格文件。 image-20220701193938856

在 MacOS 中运行 StarRocks FE

使用 IDEA 打开 fe 目录。

如果您直接在 StarRocksFE.java 中执行 Main 函数,则会报告一些错误。 您只需要做一些简单的设置就可以顺利运行它。

注意: StarRocksFE.java 位于 fe/fe-core/src/main/java/com/starrocks 目录中。

  1. 将 conf、bin 和 webroot 目录从 StarRocks 目录复制到 fe 目录
cp -r conf fe/conf
cp -r bin fe/bin
cp -r webroot fe/webroot
  1. 进入 fe 目录,并在 fe 目录下创建 log 和 meta 文件夹
cd fe
mkdir log
mkdir meta
  1. 设置环境变量,如下图所示

image-20220701193938856

export PID_DIR=/Users/smith/Code/starrocks/fe/bin
export STARROCKS_HOME=/Users/smith/Code/starrocks/fe
export LOG_DIR=/Users/smith/Code/starrocks/fe/log
  1. 修改 fe/conf/fe.conf 中的 priority_networks 为 127.0.0.1/24,以防止 FE 使用当前计算机的 LAN IP 并导致端口绑定失败。

  2. 然后您就成功运行了 StarRocks FE。

在 MacOS 中调试 StarRocks FE

如果您使用调试选项启动了 FE,则可以将 IDEA 调试器附加到 FE 进程。

./start_fe.sh --debug

请参阅 https://www.jetbrains.com/help/idea/attaching-to-local-process.html#attach-to-local