在 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
-
在 IDEA 中打开
StarRocks
目录。 -
添加代码风格设置 为了规范编码风格,您应该在 IDEA 中导入
fe/starrocks_intellij_style.xml
代码风格文件。
在 MacOS 中运行 StarRocks FE
使用 IDEA 打开 fe
目录。
如果您直接在 StarRocksFE.java
中执行 Main 函数,则会报告一些错误。 您只需要做一些简单的设置就可以顺利运行它。
注意: StarRocksFE.java
位于 fe/fe-core/src/main/java/com/starrocks
目录中。
- 将 conf、bin 和 webroot 目录从 StarRocks 目录复制到
fe
目录
cp -r conf fe/conf
cp -r bin fe/bin
cp -r webroot fe/webroot
- 进入
fe
目录,并在fe
目录下创建 log 和 meta 文件夹
cd fe
mkdir log
mkdir meta
- 设置环境变量,如下图所示
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
-
修改
fe/conf/fe.conf
中的 priority_networks 为127.0.0.1/24
,以防止 FE 使用当前计算机的 LAN IP 并导致端口绑定失败。 -
然后您就成功运行了 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。