StarRocks的FE是使用Java语言开发的,这里咱们使用IntelliJ IDEA在Windows下进行FE开发环境的搭建。以下演示过程中所用组件的版本信息如下:
| 工具名称 | 当前版本 | 版本要求 | 备注 |
| IntelliJ IDEA | IntelliJ IDEA 2020.3.4 | 不要过低 | 测试IntelliJ IDEA 2017.3.4无法正常运行代码 |
| JDK | Oracle JDK 1.8.0_201 | jdk 1.8+ | 也可以使用Open JDK 8 |
| Maven | apache-maven-3.8.2 | 无特别要求 | |
| SQLyog | SQLyog v12.5.1 | 无 | 新版兼容性会好一些,更推荐使用mysql-client |
1、环境准备
不同于一般的Maven类的项目,若我们直接从git中获取代码放入IDEA中是跑不起来的,我们需要先在StarRocks工程中手动运行maven命令生成一些Java代码来加入到FE工程中用于后续IDEA的编译。在Windows环境下,部分make命令和sh脚本可能无法执行,所以我们可以先在Docker镜像中进行StarRocks的编译,编译的过程中同样会生成那些我们需要用到的Java文件。
编译的详细操作见“第1.1章:StarRocks部署--编译”:
https://blog.csdn.net/ult_me/article/details/121455418https://blog.csdn.net/ult_me/article/details/121455418
为减少编译等待时间,在Docker中我们可以只进行FE的编译,单独编译FE的命令为:
[root@26aac0e921d3 starrocks-main]# sh build.sh --clean --fe
编译完成后,生成的我们需要用到的Java文件在fe/fe-core/target/generated-sources 中,我们将整个generated-sources目录拷贝出来备用。
接下来我们准备FE工程代码,首先,我们FE中需要用到的git中的代码有:
例如我们将项目放在本地C盘下的starRocks文件夹中,fe工程主目录结构如下:
在C:starRocksfefe-core中创建target文件夹,然后我们再将前面生成的generated-sources目录同路径拷贝过来:
2、调试工程
打开IntelliJ IDEA(IDEA已配置jdk和maven),选择Open打开项目,找到我们本地工程的路径:
点击:Trust Project信任项目:
等待项目加载完成,期间会下载依赖,可能需要等待一些时间:
加载完毕,确认没有依赖缺失后,我们找到FE的项目启动文件:
fe/fe-core/src/main/java/com/starrocks/StarRocksFE.java
这里还取个巧,我们先运行Main方法让工程开始build:
再进行工程环境的配置(这样就不用手动添加了):
在这里设置两个运行环境变量:
STARROCKS_HOME=C:starRocksfe
PID_DIR=C:starRocksfe
等待工程Bulid完成和启动,当我们看到日志中出现:
notify new FE type transfer: MASTER
即表明工程已启动成功。
3、访问FE
工程启动成功后,我们可以使用mysql客户端进行访问,这里还以SQLyog为例,使用用户root(默认空密码),端口默认为9030,习惯性的点“测试连接”时,发现有错误提示:
第三方客户端在“测试连接”时会发送查询请求,当前集群中也确实没有可执行查询的BE节点,所以有了上图的报错。通常我们不用在意,关闭错误提示窗口后直接点击“连接”即可。但若一直有这类提示导致进不到主界面,我们也可以更换使用兼容性最好的mysql-client进行访问。
进入SQLyog主界面,查看FE状态:
SHOW frontends;
Alive为true,可确定当前FE工程运行正常:
至此,FE开发环境搭建完成,后面我们就可以在IDEA中运行FE,在虚拟机CentOS中跑BE,组成完整的StarRocks集群,来进行下一步的代码学习和开发调试了。



