window环境搭建StarRocksFE节点

StarRocks部署–源码编译

前言

​ 注意:本文借用了一些其他文章的一些截图,同时自己做了具体的编译步骤,添加了一些新的内容

​ 目标: 编译StarRocks2.5.13版本FE节点代码,在本地window环境运行,可以访问到8030界面。

​ StarRocks的FE是使用Java语言开发的,这里咱们使用IntelliJ IDEA在Windows下进行FE开发环境的搭建。以下演示过程中所用组件的版本信息如下:

工具名称当前版本版本要求备注
linux服务器centos7
IntelliJ IDEAIntelliJ IDEA 2021.03不要过低
JDKOracle JDK 1.8.0_201jdk 1.8+
Mavenapache-maven-3.6.3无特别要求
DBeaver20.2无特别要求

前置说明

不同于一般的Maven类的项目,若我们直接从git中获取代码放入IDEA中是跑不起来的,我们需要先在StarRocks工程中手动运行maven命令生成一些Java代码来加入到FE工程中用于后续IDEA的编译。在Windows环境下,部分make命令和sh脚本可能无法执行,所以我们可以先在Docker镜像中进行StarRocks的编译,编译的过程中同样会生成那些我们需要用到的Java文件。

docker编译FE代码

一、安装Docker并下载编译镜像

为方便演示,我们使用虚拟机下的CentOS 7.6执行编译,虚拟机的配置建议在2核4G以上,内存过小编译过程中可能会出错,CPU核数过少则可能会导致编译时间较长。同时,编译过程中还务必保持网络畅通。

1.1安装Docker

在root用户下使用yum安装Docker:

[root@localhost ~]# yum -y install docker
1.2 启动Docker并设置开机自启
[root@localhost ~]# systemctl start docker[root@localhost ~]# systemctl enable dockerCreated symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
1.3 测试是否安装成功
[root@localhost ~]# docker run hello-worldUnable to find image 'hello-world:latest' locallyTrying to pull repository docker.io/library/hello-world ...latest: Pulling from docker.io/library/hello-world2db29710123e: Pull completeDigest: sha256:cc15c5b292d8525effc0f89cb299f1804f3a725c8d05e158653a563f15e4f685Status: Downloaded newer image for docker.io/hello-world:latestHello from Docker!This message shows that your installation appears to be working correctly.………………
1.4 配置Docker加速

由于网络原因,下载一个Docker官方镜像可能会需要很长的时间,甚至下载失败。为此,阿里云容器镜像服务ACR提供了官方的镜像站点,从而加速官方镜像的下载。具体配置方法参考阿里云文档:

https://help.aliyun.com/zh/acr/user-guide/accelerate-the-pulls-of-docker-official-images
1.5 拉取StarRocks编译镜像

我们等待拉取完成:

docker拉取2.5.13版本命令

docker pull starrocks/dev-env-centos7:2.5-latest

这里注意,我们编译的时候要选择和StarRocks大版本匹配的Docker镜像,例如:

starrocks branchimage tag
mainstarrocks/dev-env:main
branch-1.19starrocks/dev-env:branch-1.19
branch-2.0starrocks/dev-env:branch-2.0
branch-2.1starrocks/dev-env:branch-2.1

我们这里使用的是2.5.13下的代码,所以直接pull main对应的镜像:

[root@localhost ~]# docker pull starrocks/dev-env-centos7:2.5-latest19884eca2d12: Pull complete463267783751: Pull completeDigest: sha256:ab44decbdc2eaaa98cdc4647380a492299b175a35b165d50e30f183495090123Status: Downloaded newer image for docker.io/starrocks/dev-env-centos7:2.5-latest
1.6 查看镜像
[root@localhost ~]# docker imagesREPOSITORY                    TAG       IMAGE ID         CREATED            SIZEdocker.io/starrocks/dev-env-centos7:2.5-latest   2.5-latest      76d14ca637fc     5 weeks ago        8.65 GBdocker.io/hello-world         latest    feb5d9fea6a5     8 weeks ago        13.3 kB

二、获取StarRocks源码,编译产生source文件

2.1 使用git命令获取代码(或者参考2.2上传代码到服务器上)

[root@localhost ~]# git clone https://github.com/StarRocks/starrocks.gitCloning into 'starrocks'...

2.2 上传代码包

以通过浏览器访问github,然后从main分支下下载的最新代码为例,我们下载后得到源码包starrocks-2.5.13.zip,将其上传至CentOS中,文件路径为/root/starrocks-2.5.13.zip:

[root@localhost ~]# lsstarrocks-2.5.13.zip
执行解压:[root@localhost ~]# unzip starrocks-2.5.13.zip
得到:/root/starrocks-2.5.13[root@localhost ~]# lsstarrocks-2.5.13  starrocks-2.5.13.zip

2.3 挂载本地盘启动镜像

[root@localhost ~]# docker run -it -v /root/.m2:/root/.m2 -v /root/starrocks-2.5.13:/root/starrocks-2.5.13 --name starrocks-image --privileged=true -d starrocks/dev-env-centos7:2.5-latest6ebc6a124fdf9d2c28b6eb2543e570775b2f3eabb7716120a3cefe8506ee9d2f

2.4 查看正在运行的容器

[root@localhost ~]# docker ps

2.5 登入容器

[root@localhost ~]# docker exec -it starrocks-image /bin/bash[root@ed39d436e75c local]# [这里注意看主机名,确认已进入容器]

2.6 进入源码目录

[root@ed39d436e75c local]# cd /root/starrocks-2.5.13[root@ed39d436e75c starrocks-2.5.13]#

2.7 编译FE和BE

[root@ed39d436e75c starrocks-2.5.13]# sh build.sh --clean --fe

这一步会下载较多依赖并执行编译,会非常耗时。运行容器时我们挂载本地.m2目录即是为了首次编译下载的依赖后面再编译时可以复用。这一步只要不报错,我们慢慢等待即可。编译完成后,产出文件在output/目录中:

在这里插入图片描述

[root@docker starrocks-2.5.13]# cd output/[root@docker output]# lltotal 1992drwxr-xr-x 6 root root      51 Nov  2 00:20 bedrwxr-xr-x 7 root root      72 Nov  2 00:20 -rw-r--r-- 1 root root    3858 Nov  1 11:20 LICENSE.txt-rw-r--r-- 1 root root 2032787 Nov  2 00:20 NOTICE.txtdrwxr-xr-x 4 root root      32 Nov  2 00:20 udf

在这里插入图片描述

需要把【/root/starrocks-2.5.13/fe/fe-core/target】目录下产生的generated-sources下载下来,后面会用到。

三、Idea里面配置

接下来我们准备FE工程代码,首先,我们FE中需要用到的git中的代码有:

在这里插入图片描述

例如我们将项目放在本地C盘下的starRocks文件夹中,fe工程主目录结构如下:

在这里插入图片描述

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

priority_networks = 192.168.1.40

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

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

在D:\soft\sourcecode\starrocks-2.5.13\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:

在这里插入图片描述

在这里设置两个运行环境变量,路径都设置为当前工程的主目录D:\soft\sourcecode\starrocks-2.5.13\fe:

STARROCKS_HOME=D:/soft/sourcecode/starrocks-2.5.13/fe;PID_DIR=D:/soft/sourcecode/starrocks-2.5.13/fe;LOG_DIR=D:/soft/sourcecode/starrocks-2.5.13/fe

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

notify new FE type transfer: MASTER

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

在这里插入图片描述

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

3、访问FE

地址:

http://localhost:8030/

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/173865.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UIkit-UIAlertContent

简单Demo //注意!!!必须放在viewController的viewDidAppear里面,viewDidLoad里面不行 - (void)viewDidAppear:(BOOL)animated {// 创建 UIAlertControllerUIAlertController *alertController [UIAlertController alertControll…

YOLO的网络结构组成

YOLOv5的CSP结构是 将原输入分成两个分支,分别进行卷积操作使得通道数减半, 然后一个分支进行Bottleneck * N操作,然后concat两个分支,使得BottlenneckCSP的输入与输出是一样的大小,这样是为了让模型学习到更多的特征。…

为什么你的团队不需要使用拉取请求 | IDCF

作者:Kief Morris 译者:冬哥 原文:https://infrastructure-as-code.com/book/2021/01/02/pull-requests.html 前 言 Github 引入了Pull Request拉取请求(简称PR)实践和相关的支持功能,使运行开源项目的人…

NX二次开发UF_CURVE_create_arc_point_tangent_point 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_create_arc_point_tangent_point Defined in: uf_curve.h int UF_CURVE_create_arc_point_tangent_point(tag_t point1, tag_t tangent_object, tag_t point2, UF_CURVE_he…

Temu要求提交RSL Report 铅镉或RSL-Phthalate邻苯报告如何办理

Temu要求提交RSL Report 铅镉或RSL-Phthalate邻苯报告如何办理 Temu要求提交RSL Report 铅镉或RSL-Phthalate邻苯报告如何办理 RSL Report是欧盟REACH法规要求的一种资质报告,旨在确保产品不含对人体有害的化学物质。在珠宝首饰行业中,RSL Report认证是…

SpringCloudAlibaba微服务 【实用篇】| Nacos注册中心

目录 一:Nacos注册中心 1. 认识和安装Nacos 2. Nacos快速入门 3. Nacos服务分级存储模型 ①Nacos服务分级存储模型 ②NacosRule负载均衡 ③根据权重负载均衡 4. Nacos环境隔离 二:Nacos和Eureka的对比 tips:前些天突然发现了一个巨…

Linux:docker容器操作(4)

docker的基础操作 Linux:docker基础操作(3)-CSDN博客https://blog.csdn.net/w14768855/article/details/134616198?spm1001.2014.3001.5501 我这里准备了两个镜像 镜像加载到容器 docker create [选项] 镜像 运行的程序 -i 让容器的标准输…

外汇天眼:嘿!他们说这个比赛有手就能赢,你敢不敢来试试?

在外汇市场的波涛汹涌中,一场引人注目的模拟交易比赛正在悄然展开,参与者们纷纷聚焦,听所有获奖的参赛投资者们说:这个比赛有手就能赢,你敢不敢来试试? 比赛规则简单而富有挑战性。你只需在外汇天眼APP开通…

安卓手机如何使用JuiceSSH连接内网的Linux虚拟机并实现远程访问?

文章目录 1. 安装openSSH2. 安装cpolar3. 远程SFTP连接配置4. 远程SFTP访问4. 配置固定远程连接地址 SFTP(SSH File Transfer Protocol)是一种基于SSH(Secure Shell)安全协议的文件传输协议。与FTP协议相比,SFTP使用了…

期刊Neurocomputing为什么简称IJON?

在数据库dplp的引用bib页面,Neurocomputing被简写为ijon,以dblp中的最新一篇文章为例: article{DBLP:journals/ijon/LiYFZH24,author {Mingchen Li andHuiqun Yu andGuisheng Fan andZiyi Zhou andZijie Huang},title {Enhan…

“文件批量改名专家:轻松自定义重命名并智能导出文件信息“

在日常工作中,处理大量文件时,往往需要一款得力的文件批量改名工具来协助我们高效、有序地进行文件管理。今天,我要向大家介绍一款强大的文件批量改名工具,它不仅支持统一自定义重命名,还能将相关信息导出到表格中&…

借助arthas 性能调优全过程

使用 arthas 的trace 命令分析方法耗时瓶颈: 可以看出 bindReloadZoneTimeLimite 耗时最久, 通过分析Bind 底层,将业务粒度进行拆分,加入并发执行 再次使用arthas 追踪单个方法耗时时间: 核心耗时方法&#xff0c…

Drupal Core 8 PECL YAML 反序列化任意代码执行漏洞(CVE-2017-6920)

漏洞描述 影响软件:Drupal方式:反序列化参考链接:CVE-2017-6920:Drupal远程代码执行漏洞分析及POC构造效果:任意代码执行 漏洞环境及利用 搭建docker环境 环境启动后,访问 将会看到drupal的安装页面,一路…

vue 表格虚拟滚动

1.使用vxetable实现 官网 问题&#xff1a; 实现了表格的虚拟滚动&#xff0c;但是单元格数据不自动换行了 &#xff0c;如下显示的... 然后在官网看到是这样的&#xff0c;那我不是白写。。。 解决&#xff1a; 1.包一层div2.再写个换行样式 <vxe-column field"s…

个微协议开发/微信个人号二次开发/ipad协议/api接口

E云管家&#xff0c;是完整的第三方服务平台&#xff0c;并基于IPAD协议8.0.37开发出的最新个微API服务框架。 你可以 通过API 实现 个性化微信功能 &#xff08;例云发单助手、社群小助手、客服系统、机器人等&#xff09;&#xff0c;用来自动管理微信消息。用户仅可一次对接…

如何更好的设计测试用例,看完就懂了。。。

引言 测试用例设计的最基本要求&#xff1a;覆盖住所要测试的功能。这是再基本不过的要求了&#xff0c;但别看只是简单的一句话&#xff0c;要能够达到切实覆盖全面&#xff0c;需要对被测试产品功能的全面了解、明确测试范围(特别是要明确哪些是不需要测试的)、具备基本的测…

EasyExcel生成多sheet页的excel

一、controller层 ApiOperation(value "明细查询导出") PostMapping(value "/SummaryDetailExport") public void summaryDetailExport(RequestBody SearchDTO dto, HttpServletResponse response) throws IOException {reportService.deptPackagingSum…

北邮22级信通院数电:Verilog-FPGA(11)第十一周实验(1)用JK触发器实现8421码十进制计数器

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章&#xff0c;请访问专栏&#xff1a; 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 目录 一.代码部分 1.1 JK_8421.v 1.2 JK_ff.v …

2023亚马逊云科技re:Invent,与全球合作伙伴探索更多发展可能

一年一度的全球云计算、科技圈的狂欢“Party”又双叒叕要来了&#xff01;2023年11月27日&#xff0c;2023亚马逊云科技re:Invent正式向全球云计算从业者、合作伙伴发出邀请&#xff0c;相聚拉斯维加斯&#xff0c;共同开启一场创新探索之旅&#xff01; 全球合作伙伴相约拉斯维…

OpenSSH(CVE-2023-38408)OpenSsh9.5一键升级修复

yum install -y git cd /root git clone https://gitee.com/qqmiller/openssh-9.5p1-.x86_64.git cd openssh-9.5p1-.x86_64/ bash openssh_update.sh重启sshd&#xff1a; systemctl restart sshd 查看sshd状态&#xff1a; systemctl status sshd