StarRocks 是一款新一代的極速全場景 MPP(Massively Parallel Processing)數據庫,通過向量化、MPP 架構、CBO、智能物化視圖、可實時更新的列式存儲引擎等技術實現的新一代大數據數據庫,同時它兼容 Mysql5.7 的協議,支持標準 SQL 語法,極大降低了使用成本。作為大數據數據庫,StarRocks 支持 Hive 作為外部 catalog 實現與 Hadoop 的直接對接,同時也支持將數據直接存儲用于高效計算。
眾所周知,當前 CPU 的主流系統架構分為 X86 架構和 ARM 架構。其中 X86 架構的所有權歸屬于 Intel 公司,而 ARM 架構則是開源的。
X86 架構的系統推出已經近 30 年,在這 30 年來互聯網領域發展飛快,X86 架構也伴隨著互聯網的騰飛經過了高速發展的黃金時期,用戶的應用、軟件配套、軟件開發等工具的配套和兼容都非常成熟,但由于 X86 架構的所有權問題,所有使用該架構的用戶都需向 Intel 公司付費方可使用。
而開源的 ARM 架構在近年來尤為受到關注,面對當前日益復雜的國際環境以及基于 ARM 架構本身在功耗上的優異表現,國內外大量企業自研基于 ARM 架構的服務器芯片,越來越多的應用和軟件配套也適配 ARM 架構。
StarRocks 部署需單獨部署 FE 節點和 BE 節點,其中 FE 節點是 StarRocks 的前端節點,負責管理元數據,管理客戶端連接,進行查詢規劃,查詢調度等;BE 節點是 StarRocks 的后端節點,負責數據存儲、SQL 執行等。
當前,由于 StarRocks 的 BE 節點部署強依賴 X86 架構下的 AVX2 指令集(StarRocks 向量化引擎強依賴),所以當前 StarRocks 官方針對 ARM 架構更多的是建議使用 Docker 部署或修改編譯腳本關閉 AVX2 指令集重新打包部署,并未提供官方的穩定版本。針對當前情況以及實際的業務發展需求,我們評估決定使用官方提供的 Docker 鏡像內的配置文件進行 ARM 架構下的部署。
本文的 StarRocks3 部署是基于已搭建完成 Hadoop3 集群條件下進行,若還未搭建 Hadoop 集群,請先搭建 Hadoop 集群再進行后續部署。
使用官方提供的 starrocks/artifacts-centos7:latest 鏡像內文件進行部署。
# 拉取鏡像docker pull starrocks/artifacts-centos7:latest# 啟動鏡像docker run -p 9030:9030 -p 8030:8030 -p 8040:8040 --privileged=true -itd --name starrocks-art starrocks/artifacts-centos7
鏡像內文件均在/release 目錄下
# 進入鏡像內docker exec -it starrocks-art shmkdir starRockscp -r be_artifacts/be starRocks/cp -r fe_artifacts/fe starRocks/cp -r broker_artifacts/apache_hdfs_broker starRocks/# 文件壓縮tar -zcvf starRocks.tar.gz starRocks/# 文件導出docker cp artifacts-art:/release/starRocks.tar.gz /usr/local/
部署需要 4 臺機器,1 臺機器部署 FE,3 臺機器部署 BE。接下去以 node01、node02、node03、node04 區分。
StarRocks 文件默認安裝路徑為 /opt/starRocks。
替換該目錄下的 hdfs-site.xml 文件。
cp /opt/hadoop3/etc/hadoop/hdfs-site.xml /opt/starRocks/apache_hdfs_borker/
在 node01 節點部署 FE,同時在該節點需搭建 Mysql 用于連接測試搭建完成后的 StarRocks。
1、復制 core-site.xml、hdfs-site.xml 和 hive-site.xml 至 /fe/conf 目錄下
cp /opt/hadoop3/etc/hadoop/core-site.xml /opt/starRocks/fe/conf/cp /opt/hadoop3/etc/hadoop/hdfs-site.xml /opt/starRocks/fe/conf/cp /opt/hive/conf/hive-site.xml /opt/starRocks/fe/conf/
2、 修改 fe.conf 文件
# 新建 meta 文件夾cd /opt/starRocks/femkdir metavim conf/fe.conf# 添加meta_dir=/opt/starRocks/fe/metapriority_networks=node01/24 enable_udf=true
3、start_fe.sh 腳本修改
由于 StarRocks3 版本強依賴 JAVA11 以上版本,但搭建的 Hadoop3 集群默認使用 JAVA8 的版本,所以需手動指定 StarRocks3 使用的 JAVA 版本,本文使用 zulu11.66.19-ca-jdk11.0.20.1-linux_aarch64 版本。
# 第一行添加 JAVA_HOMEexport JAVA_HOME=/{JAVA 安裝目錄}/zulu11.66.19-ca-jdk11.0.20.1-linux_aarch64# 第 108 行需手動修改 JAVA_VERSIONJAVA_VERSION=11
4、FE 節點啟動
cd /opt/starRocks/fe/bin./start_fe.sh --daemon
5、驗證 FE 啟動成功
# 使用 jps 檢查進程,如果沒有 StarRocksFE 進程,可在 /opt/starRocks/log 下查看 fe.logjpsJpsStarRocksFE
6、FE 節點日志自動清理
vim /usr/local/bin/auto-del-3-days-ago-log.sh #!/bin/shfind /opt/starRocks/fe/log/ -mtime +3 -name "fe.*" -exec rm -rf {} /;
7、FE 節點服務掛斷拉起腳本
vim /usr/local/bin/monitor_starrocks_fe.sh#!/bin/shpidFE=`ps aux | grep 'StarRocksFE' | grep -v 'grep' | awk '{print $2}'`if [[ !$pidFE ]];then sh /opt/starRocks/fe/bin/start_fe.sh --daemonfi
8、bash 賦權及定時任務設置
chmod +x /usr/local/bin/auto-del-3-days-ago-log.shchmod +x /usr/local/bin/monitor_starrocks_fe.sh10 0 * * * /bin/bash /usr/local/bin/auto-del-3-days-ago-log.sh >/dev/null 2>&1*/2 * * * * /bin/bash /usr/local/bin/monitor_starrocks_fe.sh >/dev/null 2>&1
1、替換 starrocks/allin1-ubuntu:latest 鏡像內導出文件的 be 目錄,使用 starrocks/artifacts-centos7:latest 鏡像導出的 be 文件。
2、復制 core-site.xml、hdfs-site.xml 和 hive-site.xml 至 /be/conf 目錄下。
cp /opt/hadoop3/etc/hadoop/core-site.xml /opt/starRocks/be/conf/cp /opt/hadoop3/etc/hadoop/hdfs-site.xml /opt/starRocks/fe/conf/cp /opt/hive/conf/hive-site.xml /opt/starRocks/be/conf/
3、修改 be.conf 文件
priority_networks 需修改為各 BE 節點的 ip 地址。
cd /opt/starRocks/bemkdir datavim conf/be.confpriority_networks=node02/24load_process_max_memory_limit_percent=50mem_limit=75%storage_root_path=/opt/starRocks/be/data
4、修改 start_be.sh 文件
cd /opt/starRocks/be/binvim start_be.shexport JAVA_HOME=/{JAVA 安裝目錄}/zulu11.66.19-ca-jdk11.0.20.1-linux_aarch64
5、BE 節點啟動
各個節點需單獨啟動
cd /opt/starRocks/be/bin./start_be.sh --daemon
6、驗證 BE 啟動成功
ps aux | grep starrocks_be # 會看到一個 starrocks_be 的進程,如果沒有可在 /opt/starRocks/be/log 下查看 be.INFO 日志
7、BE 節點日志自動清理
vim /usr/local/bin/auto-del-3-days-ago-log.sh #!/bin/shfind /opt/starRocks/be/log/ -mtime +3 -name "be.*" -exec rm -rf {} /;
8、BE 節點服務掛斷拉起腳本
vim /usr/local/bin/monitor_be.sh#!/bin/shpidBE=`ps aux | grep 'starrocks_be' | grep -v 'grep' | awk '{print $2}'`if [[ !$pidBE ]];then sh /opt/starRocks/be/bin/start_be.sh --daemonfi
9、bash 賦權及定時任務設置
chmod +x /usr/local/bin/auto-del-3-days-ago-log.shchmod +x /usr/local/bin/monitor_starrocks_be.sh10 0 * * * /bin/bash /usr/local/bin/auto-del-3-days-ago-log.sh >/dev/null 2>&1*/2 * * * * /bin/bash /usr/local/bin/monitor_starrocks_be.sh >/dev/null 2
FE 和 BE 節點均部署完成并啟動完成后,在 FE 節點通過 Mysql 客戶端進行部署驗證及相關設置。
1、驗證 FE 可用
# FE 節點地址,初始無密碼,非 3306 端口需指定地址 127.0.0.1mysql -h 127.0.0.1 -P9030 -uroot -p
2、添加 BE 節點
以下操作均已完成第一步,成功連接 FE。
# 添加 BE,所有 BE 都添加ALTER SYSTEM ADD BACKEND "node02:9050";ALTER SYSTEM ADD BACKEND "node03:9050";ALTER SYSTEM ADD BACKEND "node04:9050";# 檢查 BE, 所有 Alive: true,否則 BE 有問題SHOW PROC '/backends'/G# 檢查 FE show proc '/frontends'/G# 設置密碼SET PASSWORD for root = PASSWORD('密碼');# 按需選擇是否創建初始數據庫,僅用作示例新建 ads 庫create database ads;# 按需選擇是否創建 Hive 外部 catalogCREATE EXTERNAL CATALOG hivePROPERTIES ("type" = "hive","hive.metastore.uris"="thrift://{hivemetastore}");# 檢查 catalogshow catalogs;# 驗證 Hive catalog 使用是否正常
本文講解了如何在 ARM 架構下部署 StarRocks3 的詳細步驟。
在科技高速發展的當下,ARM 架構由于其開源性和功耗上的優異表現正在受到越來越多的關注,大數據相關的各種組件也紛紛推出了基于 ARM 架構的版本用于更好的支持用戶體驗。由于 StarRocks3 并無官方的 ARM 版本,通過查詢網上資料也并無詳細完整的相關文檔,所以本文也僅是利用 Docker 鏡像最終實現的部署方案,從運行的結果來看符合預期。
本文鏈接:http://www.www897cc.com/showinfo-26-34934-0.htmlARM架構下部署StarRocks3,你學會了嗎?
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 聊聊常見的限流算法有哪些?
下一篇: 不睡覺也要會的—支付寶網站支付