StarRocks FE 在 IDEA 上开发环境设置

这篇文章已经 Deprecated 了,请大家看 https://www.inlighting.org/archives/setup-perfect-starrocks-dev-env

最近在公司看 StarRocks 的 FE 源码,经过自己的摸索,终于能在 M1 MacBook 中直接使用 IDEA 运行和 DEBUG 程序,这能极大的提升生产力,故在本文中进行总结,为后人提供参考。

即使你不是用 MacBook,这篇文章也有很大的参考价值,毕竟 MacOS 上都能搞定了,你还怕 Linux 搞不定?Windows 除外。

环境准备

Thrift 0.13

直接用 brew 安装 Thrift 是没有 0.13 这个版本的,可以用如下命令:

brew tap-new $USER/local-tap
brew extract --version='0.13.0' thrift $USER/local-tap
brew install thrift@0.13.0

你可以使用如下命令检查 Thrift 是否安装成功:

$ thrift -version
Thrift version 0.13.0

Protobuf

直接用最新版 v3 的即可,因为最新版的 Protobuf 兼容 StarRocks 中 v2 版本的 Protobuf 协议。

brew install protobuf

Maven

brew install maven

Openjdk 1.8 or 11

brew install openjdk@11

Python3

MacOS 自带,无需安装。

设置 thirdparty 目录

先在 thirdparty 目录中创建 installed/bin。

mkdir -p thirdparty/installed/bin

然后将 Thrift 和 Protobuf 软连接过来。

ln -s /opt/homebrew/Cellar/thrift@0.13.0/0.13.0/bin/thrift thirdparty/installed/bin/thrift
ln -s /opt/homebrew/Cellar/protobuf/3.19.4/bin/protoc thirdparty/installed/bin/protoc

每个人 Thrift 和 Protobuf 的安装目录可能不同,你可以使用 brew list 命令查看:

brew list thrift@0.13.0
brew list protobuf

设置环境变量

export JAVA_HOME="/opt/homebrew/Cellar/openjdk@11/11.0.15"
export PYTHON="/usr/bin/python3"
export STARROCKS_THIRDPARTY=/Users/smith/Code/starrocks/thirdparty

生成相关源文件

FE 中很多源文件需要自己手动生成,否则 IDEA 会因文件缺失报错。

执行如下命令即可自动生成:

cd gensrc
make clean
make

编译 FE

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

cd fe
mvn install -DskipTests

执行 StarRocksFE

使用 IDEA 打开 fe 目录(注意是 fe 目录,不是 StarRocks 的目录)。

如果直接执行 StarRocksFE.java 中的 Main 函数,是会报错的,这里只需要做一些简单的设置即可顺利运行。

StarRocksFE.javafe/fe-core/src/main/java/com/starrocks 目录下。

从这后面开始就仁者见仁,智者见智了。我这里给的办法只是一个参考,你也可以自己开脑洞。

  1. 将 StarRocks 目录下的 conf,bin 和 webroot 目录复制到 fe 目录下:
cp -r conf fe/conf
cp -r bin fe/bin
cp -r webroot fe/webroot
  1. 进入 fe 目录,在 fe 目录下创建日志和元信息文件夹:
cd fe
mkdir log
mkdir meta
  1. 在 IDEA 中设置启动 Main 函数的环境变量,如下图所示:
StarRocks FE 在 IDEA 上开发环境设置
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,避免 StarRocks 启动时自动使用当前电脑的局域网 IP,然后导致端口无法绑定。
  2. 自此你就能成功运行 StarRocks 的 FE 了,用浏览器访问 WEB UI 界面 http://127.0.0.1:8030,默认用户名为 root,密码为空。

代码风格设定

为统一编码风格,IDEA 可以导入 fe/starrocks_intellij_style.xml 代码风格文件。

StarRocks FE 在 IDEA 上开发环境设置
2 条回复 A文章作者 M管理员
  1. 感谢大佬,已经顺利在Mac搭建了FE的环境。
    一个小建议,建议“执行 StarRocksFE”中第3步和第4步互换顺序,否则第3步出错后,可能忽略第4部的解决方案。

搜索