网站单页模板,亚瑟中文 在线,自己做网站可以上传软件下载,高端网站建设公司价格StarRocks部署–源码编译
前言
注意:本文借用了一些其他文章的一些截图#xff0c;同时自己做了具体的编译步骤#xff0c;添加了一些新的内容
目标#xff1a; 编译StarRocks2.5.13版本FE节点代码#xff0c;在本地window环境运行#xff0c;可以访问到8030界面…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.8Mavenapache-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
[rootlocalhost ~]# yum -y install docker1.2 启动Docker并设置开机自启
[rootlocalhost ~]# systemctl start docker[rootlocalhost ~]# systemctl enable dockerCreated symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.1.3 测试是否安装成功
[rootlocalhost ~]# 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-images1.5 拉取StarRocks编译镜像
我们等待拉取完成
docker拉取2.5.13版本命令
docker pull starrocks/dev-env-centos7:2.5-latest这里注意我们编译的时候要选择和StarRocks大版本匹配的Docker镜像例如
starrocks branchimage tagmainstarrocks/dev-env:mainbranch-1.19starrocks/dev-env:branch-1.19branch-2.0starrocks/dev-env:branch-2.0branch-2.1starrocks/dev-env:branch-2.1
我们这里使用的是2.5.13下的代码所以直接pull main对应的镜像
[rootlocalhost ~]# 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-latest1.6 查看镜像
[rootlocalhost ~]# 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上传代码到服务器上)
[rootlocalhost ~]# 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
[rootlocalhost ~]# lsstarrocks-2.5.13.zip
执行解压[rootlocalhost ~]# unzip starrocks-2.5.13.zip
得到/root/starrocks-2.5.13[rootlocalhost ~]# lsstarrocks-2.5.13 starrocks-2.5.13.zip2.3 挂载本地盘启动镜像
[rootlocalhost ~]# docker run -it -v /root/.m2:/root/.m2 -v /root/starrocks-2.5.13:/root/starrocks-2.5.13 --name starrocks-image --privilegedtrue -d starrocks/dev-env-centos7:2.5-latest6ebc6a124fdf9d2c28b6eb2543e570775b2f3eabb7716120a3cefe8506ee9d2f2.4 查看正在运行的容器
[rootlocalhost ~]# docker ps2.5 登入容器
[rootlocalhost ~]# docker exec -it starrocks-image /bin/bash[rooted39d436e75c local]# [这里注意看主机名确认已进入容器]2.6 进入源码目录
[rooted39d436e75c local]# cd /root/starrocks-2.5.13[rooted39d436e75c starrocks-2.5.13]#2.7 编译FE和BE
[rooted39d436e75c starrocks-2.5.13]# sh build.sh --clean --fe这一步会下载较多依赖并执行编译会非常耗时。运行容器时我们挂载本地.m2目录即是为了首次编译下载的依赖后面再编译时可以复用。这一步只要不报错我们慢慢等待即可。编译完成后产出文件在output/目录中 [rootdocker starrocks-2.5.13]# cd output/[rootdocker 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 IDEAIDEA已配置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_HOMED:/soft/sourcecode/starrocks-2.5.13/fe;PID_DIRD:/soft/sourcecode/starrocks-2.5.13/fe;LOG_DIRD:/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/