这篇文章已经 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.java
在 fe/fe-core/src/main/java/com/starrocks
目录下。
从这后面开始就仁者见仁,智者见智了。我这里给的办法只是一个参考,你也可以自己开脑洞。
- 将 StarRocks 目录下的 conf,bin 和 webroot 目录复制到
fe
目录下:
cp -r conf fe/conf
cp -r bin fe/bin
cp -r webroot fe/webroot
- 进入
fe
目录,在fe
目录下创建日志和元信息文件夹:
cd fe
mkdir log
mkdir meta
- 在 IDEA 中设置启动 Main 函数的环境变量,如下图所示:
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
,避免 StarRocks 启动时自动使用当前电脑的局域网 IP,然后导致端口无法绑定。 - 自此你就能成功运行 StarRocks 的 FE 了,用浏览器访问 WEB UI 界面
http://127.0.0.1:8030
,默认用户名为 root,密码为空。
代码风格设定
为统一编码风格,IDEA 可以导入 fe/starrocks_intellij_style.xml
代码风格文件。
原创文章,作者:Smith,如若转载,请注明出处:https://www.inlighting.org/archives/setup-starrocks-fe-on-idea
评论列表(2条)
感谢大佬,已经顺利在Mac搭建了FE的环境。
一个小建议,建议“执行 StarRocksFE”中第3步和第4步互换顺序,否则第3步出错后,可能忽略第4部的解决方案。
@ivanfan:好吧,这篇文章已经不维护了,都看 https://www.inlighting.org/archives/setup-perfect-starrocks-dev-env 这个了。