搭建StarRocks开发环境,指点迷津

发布于:2024-10-24 编辑:匿名 来源:网络

背景 最近在处理一个关于StarRocks中物化视图优化的问题。在此之前,我从未接触过像StarRocks这样主要处理数据分析的数据库。

忘记优化这一点。在解决问题之前,我先花了一两天的时间熟悉了StarRocks的一些概念和用法,然后花了一些时间搭建环境并复现问题。

之后我开始阅读源码,大致了解了相关代码的执行流程。然而,即使读了很多遍代码,我也找不到具体的问题。

于是我考虑在本地调试源码。经过半天的调试,终于解决了问题。

于是我做了相关修改并向社区提交了PR。目前仍处于推进过程中。

这里搭建环境比较麻烦的是如何在本地调试代码。根据官方架构图,StarRocks主要分为两部分: FE:也称为前端部分,主要负责元数据管理和构建执行计划。

BE:后端存储部分,执行查询计划并存储数据。其中FE是用Java编写的,存储的BE是用C++编写的。

这次我需要修改的是FE前端部分,所以本文主要讨论FE相关的内容。幸运的是,社区已经有关于如何编译和构建源代码的教程。

这里我列出一些要点。 FE首先需要安装以下工具: ThriftProtobufPython3JDK8+ 代码语言:bash copybrew install alberttwong/thrift/$ thrift -version Thrift version 0.13 .0brew install protobuf 以上默认安装过程是在Mac平台,所以最整个过程使用方便。

其他平台也是如此,只要安装了这些工具即可。下一步是编译 FE。

我们需要先下载源码,然后进入FE的目录: 代码语言:bash 复制 git clone femvn install -DskipTests 然后直接使用maven编译安装。这里需要注意??,因为编译过程中需要Python3来执行一些构建任务。

新版本的Mac内置了Python3,但如果是旧版本的Mac,则内置了Python2。这时候我们需要在构建任务中手动指定Python3命令:比如这里的Python3命令是python3。

我们需要修改fe/fe-core/pom.xml目录下的Python命令名:修改后,mvn install编译一次,如果顺利就可以编译成功。我搭建本地集群并启动FE的最终目的是在本地IDEA中启动FE,然后一起启动一个BE,这样就可以在IDEA中调试FE的源码了。

在启动FE之前,需要创建一些目录: 代码语言:bash copy cp -r conf fe/confcp -r bin fe/bincp -r webroot fe/webrootcd fe mkdir log mkdir meta 主要是在FE目录下创建配置文件、执行脚本、日志、元数据等目录。然后就可以打开com.starrocks.StarRocksFE类并在IDEA中运行它。

开始之前需要配置环境变量: 代码语言:bash copy # 修改为自己的目录 export PID_DIR=/Users/smith/Code/starrocks/fe /binexport STARROCKS_HOME=/Users/smith/Code/starrocks/feexport LOG_DIR =/Users/smith/Code/starrocks/fe/log 同时需要在fe.conf中配置priority_networks 网络配置:代码语言:conf 复制priority_networks = 10.10。 IP 10.0/24 必须是主机的 IP。

后面我们使用docker启动BE的时候也需要用到它。如果启动失败,可以在日志目录下查看日志: 代码语言:bash Copy 09-16 21:21:59.:00 ERROR (main|1) [NodeMgr.getCheckedSelfHostPort():] edit_log_port is already in use 。

会退出。如果遇到这个异常:提示端口被占用,可以尝试关闭代理再试。

启动成功后,我们就可以使用MySQL兼容的客户端进行连接了。这里我使用的是tableplus: 那么我们可以使用下面的sql来查询fe的节点状态: 代码语言: sql copy SHOW PROC '/frontends';看到类似的输出表明启动成功。

启动BE后,我们就可以使用Docker来启动BE了。我们之所以使用docker来启动BE,是因为BE是用C++编写的。

在Mac上运行比较麻烦。最好有一个Ubuntu22虚拟机。

如果我们不需要调试BE的话,直接使用docker来启动会更合适。代码语言: bash copy docker run -p :-p :-p :-p :-p :-itd --rm --name be -e "TZ=Asia/Shanghai" starrocks/be-ubuntu 我们需要 FE 需要连接BE的端口暴露。

启动成功后,镜像不会直接启动BE。我们需要进入容器来手动启动它。

代码语言:bash copy docker exec -it be bash 在开始之前,我们还需要修改be.conf中的priority_networks配置:修改为与fe.conf相同的配置。然后使用如下命令启动即可:代码语言:bash copy bin/start_be.sh --daemon启动日志我们可以在logs目录下查看。

绑定 FE 和 BE 最后一步是将 FE 和 BE 绑定在一起。我们在fe中执行以下sql: 代码语言:sql copy ALTER SYSTEM ADD BACKEND ".0.0.1:";手动添加一个节点,然后使用: 代码语言:sql copy SHOW PROC '/backends';可以查询BE节点状态:如果出现如下结果,则说明连接成功,接下来我们就可以创建数据库和表了。

总结一下,这部分(本地FE连接docker中的FE)官方文档并没有提及。踩了很多坑,请教了一些大佬之后,才全部调试成功。

另外需要注意的是:如果我们的网络环境发生变化,比如从家庭Wi-Fi切换到公司Wi-Fi,我们需要手动删除FE/meta下的所有文件并重新开始。 BE需要重启容器。

搭建StarRocks开发环境,指点迷津

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • 我给了智能学习灯,问了100个问题

    我给了智能学习灯,问了100个问题

    我完成了20个单词的听写,老师错了1个,对了19个;我算了一下,老师说有5道错题,并把所有错题都标记了。 研究结束后,老师说我做得很好,我关掉了老师的屏幕——你可能不相信,但我的老师是一盏灯。 灯光下我玩了一天小学生。 当我拿到有道智能学习灯时,我对它充满了不信任

    06-21

  • 帮助企业控制开支,德慈贝通完成3600万

    帮助企业控制开支,德慈贝通完成3600万

    B+轮融资 据投资界消息,3月10日,德慈贝通宣布完成1万B+轮融资。 本轮融资由Ribbit Capital、斯道资本、Glade Brook Capital领投,BitRock Capital及老股东IDG资本、宜信产业基金、华创资本等跟投。 Decibel成立于2007年,深耕企业费用管理领域四年。 相比市面上大多数通过优

    06-18

  • 人工智能入阵,阿里云创业学院企业奔赴“科技抗疫”前线

    人工智能入阵,阿里云创业学院企业奔赴“科技抗疫”前线

    疫情发生后,人工智能在抗击疫情、疫情排查方面的价值愈加凸显。 减少了医护人员和一线人员的数量。 对减少工作量、减少个体接触和交叉感染起到了重要作用。 近期,人工智能企业积极响应工信部“充分利用人工智能技术,更高效、安全地赋能各地防疫工作”的倡议,加入到抗击疫

    06-18

  • 鑫恒瑞获近亿元A轮融资,IDG资本

    鑫恒瑞获近亿元A轮融资,IDG资本

    投资圈(ID:pedaily)7月17日消息,据朗麦创投消息,上海鑫恒瑞医疗科技有限公司(简称:鑫恒瑞完成近亿元A轮融资,由IDG资本领投,慧歌资本、朗麦创投跟投。 本轮融资将主要用于首个产品OmniHeart经皮的临床注册。 鑫恒瑞于今年5月在上海闵行区成立,专注于创新医疗的研发和

    06-17

  • 润泽科技获平安创投战略融资

    润泽科技获平安创投战略融资

    据11月14日消息,近日,润泽科技发展有限公司(以下简称“润泽科技”)获得平安创投战略投资。 润泽科技是国内领先的专业从事现代互联网数据中心建设与运营的综合服务商。 公司致力于为客户提供稳定、安全、可靠的优质云存储和大数据信息基础设施服务,拥有高水平(T4)数据

    06-17

  • 迅实科技完成数亿元C轮融资,国寿大健康基金领投

    迅实科技完成数亿元C轮融资,国寿大健康基金领投

    据11月2日消息,浙江迅实科技股份有限公司宣布完成数亿元C轮融资融资。 本轮融资由国寿大健康基金领投,柯桥产业投资基金、昆仑万维、前海母基金、国药资本、中国科创之星跟投。 迅实科技是一家专注于3D打印设备及材料研发、提供各类3D打印机及周边设备、耗材以及医疗数字化

    06-17

  • 存储与计算融合,自动驾驶芯片新机遇

    存储与计算融合,自动驾驶芯片新机遇

    国产芯片发展面临两大机遇。 首先,核心短缺的困境下,国产化替代的呼声越来越大,这无疑为国产芯片创业者的发展提供了缓冲期。 对于2016年开始打造计算芯片业务的厚模智能创始人和首席执行官吴强来说,“在芯片发展的早期阶段,这种情况是中国独有的。 我不敢在美国开展芯片

    06-18

  • 西门子携手现代汽车、起亚公司,共同推动交通运输行业数字化转型

    西门子携手现代汽车、起亚公司,共同推动交通运输行业数字化转型

    ■ 西门子数字工业软件帮助现代汽车、起亚公司打造下一代工程环境和产品数据管理环境■ 西门子NX软件和Teamcenter软件为客户提供下一代西门子数据管理和设计环境的标准解决方案,近期与现代汽车公司和起亚公司(简称“现代起亚”)在技术层面展开合作,帮助客户加速数字化转型

    06-06

  • 服务中小企业的“小望科技”获近亿元B轮融资,由赛智伯乐投资集团

    服务中小企业的“小望科技”获近亿元B轮融资,由赛智伯乐投资集团

    投资圈(ID:pedaily)9月28日消息,近日, ,浙江小望科技完成近亿元B轮融资,由赛智伯乐投资集团领投。 今年3月,小望科技刚刚完成近亿元A轮融资。 本轮融资由新希望集团领投。 这是小望科技继年初获得新希望实业资本投资后,第二次获得金融和政府资本投资。 据悉,本次B轮

    06-18

  • 中易悦泰完成5000万A轮融资,将数据中心定位为智慧专家

    中易悦泰完成5000万A轮融资,将数据中心定位为智慧专家

    投资社区(ID:pedaily)据9月8日消息,近日,智能数据服务商北京中易悦泰科技有限公司,中亿粤泰股份有限公司(以下简称“中亿粤泰”)完成1万元A轮融资,本轮融资由常熟发展投资、同科晟华及上市公司共同投资,维度资本担任独家保荐人本轮融资将用于产品迭代研发和扩大生产

    06-18

  • 一条新规定震惊了VC-PE圈

    一条新规定震惊了VC-PE圈

    “相关同事已经在研究了。 ”在国内一家领先的风险投资机构中后台工作的Anna谈到了最新的新规则。 2月24日晚,中国证券投资基金业协会(以下简称“中国证券投资基金业协会”)正式颁布《私募投资基金登记备案办法》(简称《办法》)及配套指引,迅速引起轰动。 此次《办法》对

    06-18

  • “和光同耀”完成数千万元Pre-A轮融资,由经纬

    “和光同耀”完成数千万元Pre-A轮融资,由经纬

    投资圈领投(ID:pedaily)7月28日消息,据36氪报道,和光同耀智能科技有限公司和光通药股份有限公司(以下简称“和光通药”)完成数千万元Pre-A轮融资,本轮融资由经纬创投领投,老股东先锋长青跟投,微澜资本担任跟投公司长期独家资本顾问。 本轮融资将用于扩大研发投入,加

    06-18