成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

StarRocks 開發環境搭建踩坑指北

開發 前端
如果我們網絡環境發生了變化,比如從家里的 Wi-Fi 切換到了公司的,需要手動刪除下 FE/meta 下的所有文件再次啟動,BE 則是需要重啟一下容器。

背景

最近這段時間在處理一個 StarRocks 的關于物化視圖優化的一個問題,在此之前其實我也沒有接觸過 StarRocks 這類主要處理數據分析的數據庫,就更別提在這上面做優化了。

在解決問題之前我先花了一兩天時間熟悉了一下 StarRocks 的一些概念和使用方法,然后又花了一些時間搭建環境然后復現了該問題。

之后便開始閱讀源碼,大概知道了相關代碼的執行流程,但即便是反復閱讀了多次代碼也沒有找到具體出現問題的地方。

所以便考慮在本地 Debug 源碼,最終調試半天之后知道了問題所以,也做了相關修改,給社區提交了 PR,目前還在推進過程中。

環境搭建

這里比較麻煩的是如何在本地 debug 代碼。

圖片圖片

根據官方的架構圖會發現 StarRocks 主要分為兩個部分:

  • FE:也就是常說的前端部分,主要負責元數據管理和構建執行計劃。
  • BE:后端存儲部分,執行查詢計劃并存儲數據。

其中 FE 是 Java 寫的,而存儲的 BE 則是 C++ 寫的,我這次需要修改的是 FE 前端的部分,所以本篇文章主要討論的是 FE 相關的內容。

好在社區已經有關于如何編譯和構建源碼的教程,這里我列舉一些重點,FE 首先需要安裝以下一些工具:

  • Thrift
  • Protobuf
  • Python3
  • JDK8+
brew install alberttwong/thrift/thrift@0.13
$ thrift -version  
Thrift version 0.13.0

brew install protobuf

以上默認是在  Mac 平臺上安裝的流程,所以全程使用 brew 最方便了,如果是其他平臺也是同理,只要安裝好這些工具即可。

緊接著便是編譯 FE,我們需要先下載源碼,然后進入 FE 的目錄:

git clone https://github.com/StarRocks/starrocks.git
cd fe
mvn 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 之前還需要創建一些目錄:

cp -r conf fe/conf
cp -r bin fe/bin
cp -r webroot fe/webroot

cd fe  
mkdir log  
mkdir meta

主要就是要在 FE 的目錄下創建配置文件、執行腳本、日志、元數據等目錄。

接著便可以打開 com.starrocks.StarRocksFE 類在 IDEA 中運行了,在啟動之前還需要配置一下環境變量:

# 修改為自己的目錄
export PID_DIR=/Users/smith/Code/starrocks/fe/bin
export STARROCKS_HOME=/Users/smith/Code/starrocks/fe
export LOG_DIR=/Users/smith/Code/starrocks/fe/log

同時需要配置下 fe.conf 中的 priority_networks 網絡配置:

priority_networks = 10.10.10.0/24

這個 IP 得是宿主機的 IP,后續我們使用 docker 啟動 BE 的時候也需要用到。

圖片圖片

如果啟動失敗,可以在日志目錄下查看日志:

2024-09-16 21:21:59.942+08:00 ERROR (main|1) [NodeMgr.getCheckedSelfHostPort():642] edit_log_port 9010 is already in use. will exit.

碰到這個異常:提示端口被占用,那可以嘗試關閉代理之后再試試。

啟動成功后我們便可以使用 MySQL 兼容的客戶端進行連接了,這里我使用的是 tableplus:

圖片圖片

然后我們使用以下 sql  可以查詢 fe 的節點狀態:

SHOW PROC '/frontends';

圖片圖片

看到類似的輸出則代表啟動成功了。

啟動 BE

之后我們便可以使用 Docker 來啟動 BE 了,之所以用 docker 啟動,是因為 BE 是 C++ 編寫的,想要在 Mac 上運行比較麻煩,最好是得有一臺 Ubuntu22 的虛擬機。

如果我們不需要調試 BE 的話,只使用 docker 啟動是再合適不過了。

docker run -p 9060:9060 -p 8040:8040 -p 9050:9050 -p 8060:8060 -p 9070:9070 -itd --rm --name be -e "TZ=Asia/Shanghai" starrocks/be-ubuntu

我們需要將 FE 需要連接 BE 的端口暴露出來,啟動成功后該鏡像并不會直接啟動 BE,我們需要進入容器手動啟動。

docker exec -it be bash

在啟動之前我們依然需要修改下 be.conf 中的 priority_networks 配置:

圖片圖片

修改為和 fe.conf 中相同的配置。

之后使用以下命令啟動 be:

bin/start_be.sh --daemon

啟動日志我們可以在 logs 目錄中查看。

綁定 FE 和 BE

接下來還有最后一步就是將 FE 和 BE 綁定在一起。

我們在 fe 中執行以下 sql:

ALTER SYSTEM ADD BACKEND "127.0.0.1:9050";

手動添加一個節點,之后再使用:

SHOW PROC '/backends';

可以查詢到 BE 的節點狀態:

圖片圖片

如果出現以下結果代表連接成功,這樣我們就可以創建數據庫和表了。

總結

這部分內容(本地 FE 聯結 docker 里的 FE)官方文檔并沒有提及,也是我踩了不少坑、同時還咨詢了一些大佬才全部調試成功。

還有一點需要注意的事:如果我們網絡環境發生了變化,比如從家里的 Wi-Fi 切換到了公司的,需要手動刪除下 FE/meta 下的所有文件再次啟動,BE 則是需要重啟一下容器。

參考鏈接:

  • https://docs.starrocks.io/zh/docs/developers/development-environment/IDEA/
  • https://docs.starrocks.io/zh/docs/deployment/deploy_manually/#%E7%AC%AC%E5%9B%9B%E6%AD%A5%E6%90%AD%E5%BB%BA%E9%9B%86%E7%BE%A4

責任編輯:武曉燕 來源: crossoverJie
相關推薦

2025-02-26 12:06:07

2021-06-09 08:21:14

Webpack環境變量前端

2024-04-01 08:05:27

Go開發Java

2018-12-18 14:13:30

SDKAndroid開發

2015-09-07 10:15:53

移動端開發

2023-01-18 23:20:25

編程開發

2020-09-15 08:46:26

Kubernetes探針服務端

2013-07-23 06:11:44

Android開發學習Android開發環境Java

2023-02-20 08:11:04

2024-03-26 15:19:36

鴻蒙應用開發開發工具

2022-06-28 10:50:21

ElectronHosts

2021-10-28 19:10:02

Go語言編碼

2017-05-05 08:12:51

Spark共享變量

2021-09-03 11:15:18

場景sql配置

2024-04-10 08:39:56

BigDecimal浮點數二進制

2011-07-08 16:02:24

iphone

2009-07-03 16:56:37

JSP開發環境

2017-03-02 15:33:24

Android Thi環境搭建

2011-08-02 17:37:01

IPhone開發 環境搭建

2017-09-11 14:35:34

編輯器開發環境React
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲97| 欧美亚洲另类丝袜综合网动图 | 国产在线精品一区二区 | 国产我和子的乱视频网站 | 久久久久久国产精品免费 | 极品国产视频 | 爱综合 | 午夜免费 | 美女一级毛片 | 91精品国产高清一区二区三区 | 精品国产乱码久久久久久闺蜜 | 亚洲综合区 | 亚欧洲精品在线视频免费观看 | 国产精品国产三级国产播12软件 | 亚洲国产精品久久久久婷婷老年 | 国产分类视频 | 91久久| 91视频大全 | 亚洲精品视频在线观看视频 | 女人牲交视频一级毛片 | 久久com | 精品少妇v888av | 综合色婷婷| 欧美日在线| www312aⅴ欧美在线看 | 日韩免费一级 | 波多野结衣一区二区三区 | 黄色在线免费播放 | 国产精品精品视频一区二区三区 | 国产精品久久精品 | 日韩精品一区二区三区视频播放 | 久草www| 夜夜夜操 | 成人三区四区 | 一区二区三区影院 | 国产日韩欧美一区二区 | 国产免费让你躁在线视频 | 精品中文字幕在线 | 狠狠亚洲 | 一区二区视频在线 | 久久久精彩视频 |