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/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工程主目录结构如下:

为了避免本地多网卡(虚拟网卡)导致的IP识别错误问题,我们需要在fe.conf中提前配置需要用的本地ip,例如我本地当前可与局域网通信的ip为192.168.110.148,则配置如下:

# priority_networks = 10.10.10.0/24;192.168.0.0/16
priority_networks = 192.168.110.148

注意:在配置ip后,还建议将本机的ip配置为固定ip,避免因电脑重启或者其他原因引起本地ip改变,进而导致FE无法正常启动。

fe.conf中的其他配置通常默认即可,若需要修改,可以参考“集群部署”章节进行调整。

在C:\starRocks\fe\fe-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:

再进行工程环境的配置(这样就不用手动添加了):

在这里设置两个运行环境变量,路径都设置为当前工程的主目录C:\starRocks\fe:

STARROCKS_HOME=C:\starRocks\fe

PID_DIR=C:\starRocks\fe

配置完成后点击“Apply”,等待工程Bulid完成和启动,当我们看到日志中出现:

notify new FE type transfer: MASTER

即表明工程已启动成功(若提示没有STARROCKS_HOME等,可以重新执行方法)。

再次提示:FE启动后会将当前的ip信息写入本地文件中,若ip改变会无法正常启动,所以务必要将本机的ip配置为静态ip

3、访问FE

工程启动成功后,我们可以使用mysql客户端进行访问,这里还以SQLyog为例,使用用户root(默认空密码),端口默认为9030,当习惯性的点“测试连接”时,发现有错误提示:

这是因为第三方客户端在“测试连接”时会发送查询请求,由于当前集群中也确实没有可执行查询的BE节点,所以有了上图的报错。通常我们不用在意,关闭错误提示窗口后直接点击“连接”即可。但若一直有这类提示导致进不到主界面,我们也可以升级版本、更换工具或者直接使用兼容性最好的mysql-client进行访问。

进入SQLyog主界面,查看FE状态:

SHOW frontends;

Alive为true,可确定当前FE工程运行正常:

4、Web端访问

StarRocks社区版的FE和BE都有一个非常易用的Web界面,FE的http端口为8030,BE的http为8040,以咱们IDEA中启动的FE为例(前面的工程中需添加有Web相关的代码,不添加的话只有一个简单的页面),目前的ip为192.168.110.148,那我们就可以打开浏览器,访问:192.168.110.148:8030,在弹出框输入StarRocks当前的用户名密码(root 空),可以看到如下界面:

通过Web页面,我们可以方便的查看集群参数、查询profile、集群状态等等。

至此,FE开发环境搭建完成,后面我们就可以在IDEA中运行FE,在虚拟机CentOS中跑BE(注意需和FE在同一局域网内),组成完整的StarRocks架构,来进行下一步的代码学习和开发调试了。

第1.4章:FE开发环境搭建(拓展篇)相关推荐

  1. 【正点原子Linux连载】第三章 RV1126开发环境搭建 摘自【正点原子】ATK-DLRV1126系统开发手册

    1)实验平台:正点原子RV1126 Linux开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692176265749 3)全套实验源码+手册+视频 ...

  2. Golang开发环境搭建-Vim篇

    Golang开发环境搭建-Vim篇 转自:http://tonybai.com/2014/11/07/golang-development-environment-for-vim/ 虽说sublime ...

  3. [Java] Web开发环境搭建 - MyEclipse 篇

    Web开发环境搭建 - MyEclipse 篇 在前面,我们讲了使用 Eclipse Java EE 来搭建 Java Web 应用程序开发环境. 现在来说下比较流行的 MyEclipse 又是如何搭 ...

  4. 第二章 STC51开发环境搭建

     第二章 搭建开发环境 一.简介 本文介绍搭建开发环境 二.实验平台 单片机型号:STC12C5A60S2 编译软件:KEIL 硬件平台:达芬奇51开发版 三.版权声明 博主:文武先生 声明:喝水不忘 ...

  5. 《嵌入式系统 - RT-Thread开发笔记》 第三部分 RT-Thread 移植与设备驱动开发 - 第1章 RT-Thread 开发环境搭建 (Ubuntu)

    开发环境: Ubuntu:16.04 LTS 开发板:stm32f746-st-nucleo 开发板MCU:STM32F746ZG 1.1准备工作 1.1.1下载源码与安装环境 更新软件源: $ su ...

  6. 第一章 YUI3开发环境搭建

    基本环境搭建 作者是在Ubuntu的环境下开始学习YUI的,YUI3一般和NodeJs等环境整合在一起,开发时对网络的依赖较强烈.所以建议在网络环境良好,并可配置本地代理的机器上学习开发,避免因为依赖 ...

  7. 《Linux操作系统 - RK3288开发笔记》第2章 G-3288-02开发环境搭建

    2.1开发环境 Windows 下有很多虚拟机软件,目前市面上流行的有 VMware 和 VirtualBox. VMware 分为收费专业版 Workstation Pro 和非商用免费版 Work ...

  8. 《嵌入式系统 - RT-Thread开发笔记》 第三部分 RT-Thread 移植与设备驱动开发 - 第1章 RT-Thread 开发环境搭建(RT-Thread Studio)

    开发环境: RT-Thread版本:4.0.4 操作系统:Windows 10 RT-Thread Studio版本:2.1.4 开发板MCU:STM32F746ZG 1.1 RT-Thread St ...

  9. 【PHP】PHP开发环境搭建——windows篇(apache2.2.22+php5.3.29+mysql5.7)

    一直有学习php的想法,也稍微弄过一点点php,以前是用xmpp或者wamp来实现这会让很多初学者盲目,不知道是啥.现在来搭建一遍开发环境,并且说明下每一个的用途. 1.下载apache的http s ...

最新文章

  1. 【D3】transition API
  2. emwin读取sd图片_262.3MB/S读取速率,雷克沙1667X这回谁还敢吐槽
  3. MIME 类型(HttpContext.Response.ContentType)列表
  4. 【运维】Linux 系统 之 SSH
  5. 怎么用计算机发出音乐声,解决方案:计算机技巧-如何使显示器的内置扬声器发出声音...
  6. 配置DATAGUARD 时关于 LOG_FILE_NAME_CONVERT配置错误的解决
  7. fir.im Weekly - 2016 年 Android 最佳实践列表
  8. 【LeetCode】3月28日打卡-Day13
  9. C++ 模板template
  10. 微信公布10月朋友圈十大谣言 包括牙膏能杀灭幽门螺杆菌等
  11. Report_客制化报表输出Excel后去0问题(案例)
  12. 图片阴影怎么设置_HTML5 给图形绘制阴影
  13. [ANE for Android]Java接口部分引用第三方JAR的解决办法
  14. 关于防止sql注入的几种手段
  15. Android 源码结构简介
  16. php 获取客户端的浏览器信息
  17. Git patch的使用方法和场景
  18. 属于计算机网络硬件系统有哪些,下列不属于计算机硬件系统的是()
  19. 人脑是量子计算机科学实验,你的大脑可能是一台量子计算机
  20. 1.Hadoop入门

热门文章

  1. 【7】实战:爬取网易云音乐歌曲对应id并剔除无版权歌曲
  2. 【转载】BLE安全机制从入门到放弃
  3. php获取android版本,php-获取Android应用的类别-在服务器端
  4. Devops(二):CentOS7(在线)安装Docker
  5. 物联网平台常见问题与答案汇总
  6. checkstyle + gradle + git pre-commit 实现代码提交前对代码规范的检查
  7. 前端防错以及好用小tips指南总结
  8. reactjs前端数据导出
  9. NOIP2016提高A组模拟中秋节9.15总结
  10. 软通动力新员工转正考试-新员工转正考试题