日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第1.3章:StarRocks部署--单机部署

發布時間:2023/12/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第1.3章:StarRocks部署--单机部署 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

嚴格來說,StarRocks并沒有所謂的“Standalone運行模式”,生產環境下更是不建議進行單實例部署。這里將單機部署整理出來,主要是考慮當用戶測試環境受限于機器數量或僅希望驗證功能,那么也可以在一臺機器上簡易部署把StarRocks跑起來。

以服務器“starrocks(192.168.110.98)”為例,在進行完“第1.2章:StarRocks部署--部署環境準備”中的準備工作后,我們開始進行單節點的部署。

為方便演示,我們使用root用戶通過XShell工具訪問服務器,單節點架構設計如下:

機器節點

192.168.116.98 (starrocks)

部署服務

1 FE(Leader)

1 BE

1 Broker

mysql-client

部署目錄及數據目錄設計如下,后續的部署操作嚴格按照部署設計進行:

FE

部署目錄:/opt/module/starrocks/fe

日志目錄:/opt/module/starrocks/fe/log(默認)

元數據目錄:/opt/meta

BE

部署目錄:/opt/module/starrocks/be

日志目錄:/opt/module/starrocks/be/log(默認)

數據目錄:/opt/storage

Broker

部署目錄:/opt/module/starrocks/apache_hdfs_broker

1?獲取二進制產品包

StarRocks的二進制部署包可在官網下載獲取:

StarRocks - 新一代極速全場景MPP數據庫https://www.starrocks.com/zh-CN/download/community

下面我們以StarRocks-1.19.2.tar.gz為例,將下載好的部署包上傳至/opt/software目錄下:

[root@starrocks ~]# mkdir /opt/software

[root@starrocks ~]# cd /opt/software/

[root@starrocks software]# ll

total 988752

-rw-r--r-- 1 root root 1012479814 Nov 22 15:46 StarRocks-1.19.2.tar.gz

2?解壓產品包

[root@starrocks software]# tar xvf StarRocks-1.19.2.tar.gz

[root@starrocks software]# ll

total 988752

drwxrwxr-x 6 1007 1007??????? 100 Nov 20 20:29 StarRocks-1.19.2

-rw-r--r-- 1 root root 1012479814 Nov 22 15:46 StarRocks-1.19.2.tar.gz

StarRocks二進制包解壓后目錄結構及簡要說明見附錄一:StarRocks部署包目錄樹。

3?分發部署文件

[root@starrocks software]# mv /opt/software/StarRocks-1.19.2 /opt/software/starrocks[重命名]

[root@starrocks software]# mv /opt/software/starrocks /opt/module/

[root@starrocks software]# cd /opt/module/starrocks/

[root@starrocks starrocks]# ll

total 0

drwxr-xr-x. 5 1021 1021 40 Nov 22 14:40 apache_hdfs_broker

drwxr-xr-x. 6 1021 1021 51 Nov 22 14:40 be

drwxr-xr-x. 8 1021 1021 83 Nov 22 14:52 fe

drwxr-xr-x. 4 1021 1021 32 Nov 22 14:40 udf

4?部署FE實例

4.1?修改FE配置文件

StarRocks各服務配置文件的默認配置已經足以啟動集群,不建議初嘗用戶修改較多配置。FE的配置文件在測試環境中我們通常只需要關注以下三點:

a、注意默認端口,避免端口沖突,正常情況下不需要修改;

b、綁定IP,避免多網卡情況下服務無法自動匹配到正確的IP。特別注意,綁定ip時,如果不清楚CIDR表示法,可以直接填寫完整的ip(不支持別名),例如配置為priority_networks = 192.168.110.98,這樣的寫法等同于priority_networks = 192.168.110.98/32

c、設置元數據目錄,默認目錄為fe/meta,我們建議新建目錄并修改配置文件。

根據部署設計,創建元數據存儲目錄:

[root@starrocks starrocks]# mkdir /opt/meta

針對b和c修改配置文件(帶#的為注釋,紅色字體為新增配置):

[root@starrocks starrocks]# vi /opt/module/starrocks/fe/conf/fe.conf

# store metadata, create it if it is not exist.

# Default value is ${STARROCKS_HOME}/meta

# meta_dir = ${STARROCKS_HOME}/meta

meta_dir = /opt/meta

…………

# Choose one if there are more than one ip except loopback address.

# Note that there should at most one ip match this list.

# If no ip match this rule, will choose one randomly.

# use CIDR format, e.g. 10.10.10.0/24

# Default value is empty.

# priority_networks = 10.10.10.0/24;192.168.0.0/16

priority_networks = 192.168.110.98

修改完成后保存配置。

4.2?啟動FE

[root@starrocks starrocks]# cd /opt/module/starrocks/fe/bin/

[root@starrocks bin]# ll

total 16

-rwxrwxr-x. 1 1021 1021 1347 Nov 22 14:40 common.sh

-rwxrwxr-x. 1 1021 1021 1411 Nov 22 14:40 show_fe_version.sh

-rwxrwxr-x. 1 1021 1021 3122 Nov 22 14:40 start_fe.sh

-rwxrwxr-x. 1 1021 1021 1749 Nov 22 14:40 stop_fe.sh

[root@starrocks bin]# ./start_fe.sh --daemon

[補充:關閉FE的腳本是stop_fe.sh,命令:./stop_fe.sh]

FE使用Java語言編寫,使用jps命令查看java進程,若發現有StarRocksFe進程,即為啟動成功:

[root@starrocks bin]# jps

5178 Jps

5164 StarRocksFe

如果進程狀態異常可在FE日志目錄中查看日志追蹤原因,FE的主要日志在fe.log中,所有查詢的審計日志在fe.audit.log中。由于是初次啟動,如果在操作過程中遇到比較耗時的問題,可以清空FE的元數據目錄,再從頭開始操作

4.3?訪問FE

使用mysql-client訪問FE,FE查詢端口默認為9030,自帶用戶root,默認密碼為空:

[root@starrocks bin]# mysql -h192.168.110.98 -P9030 -uroot

Welcome to the MySQL monitor.? Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 5.1.0

………………

mysql>

4.4?確認FE狀態

若mysql-client能夠正常訪問FE,已說明FE狀態正常,查詢命令:

mysql> show frontends\G

*************************** 1. row ***************************

???????????? Name: 192.168.110.98_9010_1631099997319

?????????????? IP: 192.168.110.98

????? EditLogPort: 9010

???????? HttpPort: 8030

??????? QueryPort: 9030

????????? RpcPort: 9020

???????????? Role: FOLLOWER

???????? IsMaster: true

??????? ClusterId: 417341735

???????????? Join: true

??????????? Alive: true

ReplayedJournalId: 74

??? LastHeartbeat: 2021-11-25 19:24:04

???????? IsHelper: true

?????????? ErrMsg:

1 row in set (0.09 sec)

Alive為true即說明FE節點狀態正常。

4.5?添加實例進入集群

我們先將添加BE與Broker實例添加入集群。這里需要說明一下,“啟動服務”和“將服務添加入集群”并沒有嚴格的先后順序,但若先啟動服務,在實例未加入集群前,BE的日志中會打印一些提示未加入集群的WARNING信息,例如:Fail to get master client from cache。所以我們可以在FE全部部署完成后,使用mysql-client將集群中其他實例通過SQL添加入集群,然后再逐個部署啟動。

添加BE進入集群,端口使用BE的heartbeat_service_port(默認為9050):

mysql> alter system add backend '192.168.110.98:9050';

Query OK, 0 rows affected (0.10 sec)

添加Broker進入集群時需要給Broker設定名稱,比如命名為hdfs_broker,端口使用Broker的broker_ipc_port(默認為8000):

mysql> alter system add broker hdfs_broker '192.168.110.98:8000';

Query OK, 0 rows affected (0.03 sec)

若添加實例進入集群時信息輸入有誤或出現其他異常,我們可以將其刪除后重新添加,刪除示例:

從集群中刪除BE(當前僅有一個BE實例,故刪除時可以直接使用dropp命令刪除。刪除BE為高風險操作,所以這里的刪除命令設計為了dropp):

mysql> alter system dropp backend '192.168.110.98:9050';

Query OK, 0 rows affected (0.09 sec)

從集群中刪除Broker:

mysql> alter system drop broker hdfs_broker '192.168.110.98:8000';

Query OK, 0 rows affected (0.04 sec)

暫時退出StarRocks:

mysql> exit

Bye

5?部署BE實例

5.1?修改BE配置文件

BE的配置文件,在測試環境通常也是關注如下三點:

a、注意默認端口,避免端口沖突,正常情況下不需要修改;

b、綁定IP,避免多網卡情況下無法自動找到正確的IP(同樣,不清楚CIDR就可以直接填寫完整的IP);

c、設置數據存儲目錄,默認目錄為be/storage,我們建議新建目錄并修改配置文件。

新建BE數據存儲目錄:

[root@starrocks bin]# mkdir /opt/storage

針對b和c修改配置文件(帶#的為注釋,紅色字體為新增配置):

[root@starrocks bin]# vi /opt/module/starrocks/be/conf/be.conf

# Choose one if there are more than one ip except loopback address.

# Note that there should at most one ip match this list.

# If no ip match this rule, will choose one randomly.

# use CIDR format, e.g. 10.10.10.0/24

# Default value is empty.

# priority_networks = 10.10.10.0/24;192.168.0.0/16

priority_networks = 192.168.110.98

…………

# you also can specify the properties by setting '<property>:<value>', seperate by ','

# property 'medium' has a higher priority than the extension of path

#

# Default value is ${STARROCKS_HOME}/storage, you should create it by hand.

# storage_root_path = ${STARROCKS_HOME}/storage

storage_root_path = /opt/storage

修改完成后保存配置。

5.2?啟動BE

[root@starrocks bin]# cd /opt/module/starrocks/be/bin/

[root@starrocks bin]# ll

total 16

-rwxrwxr-x. 1 1021 1021 1347 Nov 22 14:40 common.sh

-rwxrwxr-x. 1 1021 1021? 644 Nov 22 14:40 show_be_version.sh

-rwxrwxr-x. 1 1021 1021 3377 Nov 22 14:40 start_be.sh

-rwxrwxr-x. 1 1021 1021 1601 Nov 22 14:40 stop_be.sh

[root@starrocks bin]# ./start_be.sh --daemon

[補充:關閉BE腳本為stop_be.sh,命令:./stop_be.sh]

BE使用C++編寫,使用ps命令查看進程,若發現有starrocks_be進程,即為啟動成功:

[root@starrocks bin]# ps -ef | grep starrocks_be

root?????? 6670????? 1? 1 19:46 pts/0??? 00:00:00 /opt/module/starrocks/be/lib/starrocks_be

如果進程狀態異常可在BE日志目錄中查看日志追蹤原因,BE的主要日志在be.INFO中,其他的日志在be.out中。

5.3?查看BE狀態

仍使用mysql-client訪問集群:

[root@starrocks bin]# mysql -h192.168.110.98 -P9030 -uroot

Welcome to the MySQL monitor.? Commands end with ; or \g.

………………

mysql>

查詢BE狀態:

mysql> show backends\G

*************************** 1. row ***************************

??????????? BackendId: 10003

????????????? Cluster: default_cluster

?????????????????? IP: 192.168.110.98

??????? HeartbeatPort: 9050

?????????????? BePort: 9060

???????????? HttpPort: 8040

???????????? BrpcPort: 8060

??????? LastStartTime: 2021-11-25 19:46:17

??????? LastHeartbeat: 2021-11-25 19:51:32

??????????????? Alive: true

?SystemDecommissioned: false

ClusterDecommissioned: false

??????????? TabletNum: 10

???? DataUsedCapacity: .000

??????? AvailCapacity: 28.404 GB

??????? TotalCapacity: 37.017 GB

????????????? UsedPct: 23.27 %

?????? MaxDiskUsedPct: 23.27 %

?????????????? ErrMsg:

???? ?????????Version: 1.19.2-b04a782

?????????????? Status: {"lastSuccessReportTabletsTime":"2021-11-25 19:51:17"}

1 row in set (0.10 sec)

一般Alive為true即為狀態正常,若為false,可根據日志排查問題。同樣的,因為當前BE為初次啟動,如果出現無法快速定位的問題,可以清空storage數據目錄,重新啟動服務

退出StarRocks:

mysql> exit

Bye

6?部署Broker

在部署完FE與BE后,StarRocks主要服務已經部署完成。Broker是StarRocks與外部HDFS/對象存儲等外部數據對接的中轉服務,若不需要可以不部署。Broker本身是無狀態的進程,可以隨意啟停,不影響集群。

6.1?修改Broker配置文件

Broker的配置文件通常不需要修改。與FE實例和BE實例不同,Broker當前沒有也不需要priority_networks這個選項。Broker的服務默認綁定在0.0.0.0上,我們只需在前面4.5節 ADD BROKER時,輸入正確可訪問的BROKER IP即可。

6.2?啟動Broker

[root@starrocks bin]# cd /opt/module/starrocks/apache_hdfs_broker/bin/

[root@starrocks bin]# ll

total 8

-rwxrwxr-x. 1 1021 1021 2616 Sep? 7 14:40 start_broker.sh

-rwxrwxr-x. 1 1021 1021 1602 Sep? 7 14:40 stop_broker.sh

[root@starrocks bin]# ./start_broker.sh --daemon

[補充:關閉Broker腳本為stop_broker.sh,命令:./stop_broker.sh]

查看java進程,若發現有BrokerBootstrap即為啟動成功:

[root@starrocks bin]# jps | grep BrokerBootstrap

7594 BrokerBootstrap

Broker日志在apache_hdfs_broker.log中,如果進程狀態異常可查看日志追蹤原因。

6.3?查看Broker狀態

使用mysql-client訪問集群:

[root@starrocks bin]# mysql -h192.168.110.98 -P9030 -uroot

Welcome to the MySQL monitor.? Commands end with ; or \g.

Your MySQL connection id is 3

Server version: 5.1.0 StarRocks version 1.18.2

……………………

mysql>

查看Broker狀態:

mysql> show broker\G

*************************** 1. row ***************************

????????? Name: hdfs_broker

??????????? IP: 192.168.110.98

????????? Port: 8000

???????? Alive: true

?LastStartTime: 2021-11-25 20:19:56

LastUpdateTime: 2021-11-25 20:21:31

??????? ErrMsg:

1 row in set (0.01 sec)

Alive為true即為狀態正常,如果狀態異常可以根據日志定位問題。

7?簡單使用示例

7.1?修改root用戶密碼

例如修改root密碼也為root:

mysql> set password=password('root');

Query OK, 0 rows affected (0.02 sec)

7.2?建庫建表

StarRocks的副本數是不能大于BE節點數的,由于當前僅有一個BE節點,我們建表時務必注意指定數據為單副本,示例如下:

新建一個starrocks數據庫:

mysql> create database starrocks;

Query OK, 0 rows affected (0.01 sec)

mysql> use starrocks;

Database changed

新建一個customer表,無分區,按c_custkey分桶,指定數據存儲為1副本:

mysql>CREATE TABLE customer (

??? c_custkey INT,

??? c_name VARCHAR(26),

c_city VARCHAR(11)

)

DUPLICATE KEY(c_custkey)

DISTRIBUTED BY HASH (c_custkey) BUCKETS 10

PROPERTIES (

? "replication_num"="1");

Query OK, 0 rows affected (0.05 sec)

7.3?插入測試數據

mysql> insert into customer values(1,"Jack","Beijing"),(2,"Loong","Xian"),(3,"Bob","London");

Query OK, 3 rows affected (0.07 sec)

{'label':'insert_7ddb8f57-10a2-11ec-bcd0-525400d116d1', 'status':'VISIBLE', 'txnId':'3'}

7.4?簡單查詢

mysql> select count(1) from customer;

+----------------+

| ?count(1)? ? ? |

+----------------+

|??????? 3? ? ? ? ? ?|

+----------------+

8?使用圖形化工具

StarRocks兼容MySQL協議,在使用圖形化工具連接時,我們可將其視為MySQL直接連接。以SQLyog為例,輸入服務器IP、用戶名、密碼和端口(查詢端口默認為9030),即可連接:

9 Docker部署

若單臺服務器內存、磁盤等資源充足,也可以使用Docker在單服務器節點上對FE/BE進行多實例的部署,但考慮到資源競爭問題,依舊不推薦在生產環境中使用。

除在Docker容器中跑StarRocks外,我們可以考慮使用Docker將完成第1.2章部署準備工作后的某個容器保存為鏡像,在后續集群擴容時快速拉取使用。

容器化部署及使用這里先不展開描述,后續其他文檔會詳述基于Docker的單節點StarRocks一鍵部署。

附錄一:StarRocks部署包目錄樹[部分]

StarRocks-1.19.2

├── apache_hdfs_broker? # Broker目錄

│?? ├── bin

│?? │?? ├── start_broker.sh? # Broker啟動腳本

│?? │?? └── stop_broker.sh? # Broker關閉腳本

│?? ├── conf

│?? │?? ├── apache_hdfs_broker.conf? # Broker配置文件

│?? │?? ├── hdfs-site.xml

│?? │?? └── log4j.properties

│?? └── lib

│?????? └── *.jar? # Broker依賴的jar包

├── be? # BE實例目錄

│?? ├── bin

│?? │?? ├── common.sh

│?? │?? ├── show_be_version.sh? # BE版本查看

│?? │?? ├── start_be.sh? # BE啟動腳本

│?? │?? └── stop_be.sh? # BE關閉腳本

│?? ├── conf

│?? │?? ├── be.conf? # BE配置文件

│?? │?? └── hadoop_env.sh

│?? ├── lib

│?? │?? ├── meta_tool? # Tablet元數據離線管理工具 [1.19版本已合并入starrocks_be]

│?? │?? └── starrocks_be? # BE可執行文件(小版本升級時替換即可)

│?? └── www? # BE Web頁面文件

├── fe? # FE實例目錄

│?? ├── bin

│?? │?? ├── common.sh

│?? │?? ├── show_fe_version.sh? # FE版本查看

│?? │?? ├── start_fe.sh? # FE啟動腳本

│?? │?? └── stop_fe.sh? # FE關閉腳本

│?? ├── conf

│?? │?? ├── fe.conf? # FE配置文件

│?? │?? └── hadoop_env.sh

│?? ├── lib

│?? │?? ├── starrocks-fe.jar? # FE jar包(小版本升級時替換即可)

│?? │?? └── *.jar? # FE依賴的jar包

│?? ├── log

│?? │?? └── *.log

│?? └── webroot # FE Web頁面文件

└── udf # 用戶自定義函數目錄 [重構中,目前不建議使用]

??? ├── include

??? │?? ├── uda_test_harness.h

??? │?? └── udf.h? # UDF框架頭文件

??? └── lib

??????? └── libStarRocksUdf.a? # UDF框架靜態庫文件

總結

以上是生活随笔為你收集整理的第1.3章:StarRocks部署--单机部署的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。