部署StarRocks V3.0单机环境

发布时间:2025-05-21 18:35

环境申请

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

docker rm -f starrocks300

docker run -itd --name starrocks300 -h starrocks300 \

  -p 9031:9030 -p 8031:8030  \

  -v /sys/fs/cgroup:/sys/fs/cgroup \

  --privileged=true lhrbest/lhrcentos76:9.2 \

  /usr/sbin/init

wget https://releases.mirrorship.cn/starrocks/StarRocks-3.0.0.tar.gz

docker cp -q StarRocks-3.0.0.tar.gz starrocks300:/soft/

docker exec -it starrocks300 bash

tar -zxf /soft/StarRocks-3.0.0.tar.gz -C /usr/local/

ln -s /usr/local/StarRocks-3.0.0 /usr/local/starrocks

mkdir -p /usr/local/starrocks/fe/meta

mkdir -p /usr/local/starrocks/be/storage

chown root.root -R /usr/local/starrocks/

chown root.root -R /usr/local/StarRocks-3.0.0/

安装包下载: https://www.mirrorship.cn/zh-CN/download/community

配置操作系统

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

echo 0 | sudo tee /proc/sys/vm/swappiness

echo 1 | sudo tee /proc/sys/vm/overcommit_memory

sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config

setenforce 0

cat >> /etc/security/limits.conf <<"EOF"

* soft nofile 65535

* hard nofile 65535

EOF

ulimit -HSn 65535

cat >> /etc/sysctl.conf <<"EOF"

vm.overcommit_memory=1

vm.swappiness=0

EOF

sysctl -p

环境变量配置

-- 至少需要Java jdk 1.8

yum -y install java-1.8.0-openjdk-devel.x86_64

java -version

cat >> /root/.bashrc <<"EOF"

export STARROCKS_HOME=/usr/local/starrocks

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin:$STARROCKS_HOME/fe/bin:$STARROCKS_HOME/be/bin:$STARROCKS_HOME/apache_hdfs_broker/bin

EOF

source /root/.bashrc

配置FE节点

配置FE节点

注意:当一台机器拥有多个 IP 地址时,需要在 FE 配置文件 conf/fe.conf 中设置 priority_networks,为该节点设定唯一 IP。

在${STARROCKS_HOME}/fe/conf/fe.conf文件中配置如下内容:

# 修改元数据目录。

meta_dir = /opt/software/StarRocks-2.2.2/meta

# 修改配置,网段,自动发现IP

priority_networks = 192.168.0.0/24

# 添加 Java 目录

JAVA_HOME = /opt/software/jdk1.8.0_212

# 修改JVM内存,默认是8G,根据自己机器自定义,默认是-Xmx8192m,这里我修改成Xmx512m,这里有两段配置,jdk 9+使用JAVA_OPTS_FOR_JDK_9

JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true -Xmx512m -XX:+UseMembar -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xloggc:$STARROCKS_HOME/log/fe.gc.log.$DATE"

# For jdk 9+, this JAVA_OPTS will be used as default JVM options

JAVA_OPTS_FOR_JDK_9="-Dlog4j2.formatMsgNoLookups=true -Xmx512m -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xlog:gc*:$STARROCKS_HOME/log/fe.gc.log.$DATE:time"

如需在生产环境中对集群进行详细优化配置,参考 FE 参数配置。

我这里因为是单节点,所以只配置本地地址:

echo "priority_networks = 127.0.0.1/32" >> ${STARROCKS_HOME}/fe/conf/fe.conf

启动FE节点

运行以下命令启动 FE 节点。

/usr/local/starrocks/fe/bin/start_fe.sh --daemon

如果由于端口被占用导致 FE 启动失败,可修改配置文件 fe/conf/fe.conf 中的端口号 http_port。

检查FE节点

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

tail -f ${STARROCKS_HOME}/fe/log/fe.log

ps -ef|grep java

jps

netstat -tulnp | grep java

-- 日志输出:

2020-03-16 20:32:14,686 INFO 1 [FeServer.start():46] thrift server started.  // FE 节点启动成功。

2020-03-16 20:32:14,696 INFO 1 [NMysqlServer.start():71] Open mysql server success on 9030  // 可以使用 MySQL 客户端通过 `9030` 端口连接 FE。

2020-03-16 20:32:14,696 INFO 1 [QeService.start():60] QE service start.

2020-03-16 20:32:14,825 INFO 76 [HttpServer$HttpServerThread.run():210] HttpServer started with port 8030

...

[root@starrocks300 ~]# jps

8280 StarRocksFE

8714 Jps

[root@starrocks300 ~]# netstat -tulnp | grep java

tcp        0      0 172.71.0.40:9010        0.0.0.0:*               LISTEN      8280/java          

tcp        0      0 0.0.0.0:9020            0.0.0.0:*               LISTEN      8280/java          

tcp        0      0 0.0.0.0:8030            0.0.0.0:*               LISTEN      8280/java          

tcp        0      0 0.0.0.0:9030            0.0.0.0:*               LISTEN      8280/java          

[root@starrocks300 ~]#

[root@starrocks300 ~]# ps -ef|grep java

root        8280       0  5 10:49 pts/1    00:00:16 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.el7_9.x86_64/bin/java -Dlog4j2.formatMsgNoLookups=true -Xmx8192m -XX:+UseMembar -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xloggc:/usr/local/starrocks/fe/log/fe.gc.log.20230329-104953 -XX:+PrintConcurrentLocks com.starrocks.StarRocksFE

root        8761     210  0 10:55 pts/1    00:00:00 grep --color=auto java

[root@starrocks300 ~]#

通过运行 jps 命令查看 Java 进程,确认 StarRocksFE 进程是否存在。

通过mysql客户端查看节点信息

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

yum -y install mysql

# 用户名为 root,密码为空

mysql -h 127.0.0.1 -P9030 -uroot

# 查看 FE 状态。

SHOW PROC '/frontends'\G

[root@starrocks300 ~]# mysql -h 127.0.0.1 -P9030 -uroot

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

Your MySQL connection id is 0

Server version: 5.1.0

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> show frontends \G

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

             Name: 127.0.0.1_9010_1680064832570

               IP: 127.0.0.1

      EditLogPort: 9010

         HttpPort: 8030

        QueryPort: 9030

          RpcPort: 9020

             Role: LEADER

        ClusterId: 1723834094

             Join: true

            Alive: true

ReplayedJournalId: 72

    LastHeartbeat: 2023-03-29 12:46:20

         IsHelper: true

           ErrMsg:

        StartTime: 2023-03-29 12:46:02

          Version: 3.0.0-46bf084

1 row in set (0.02 sec)

MySQL [(none)]>

RoleLEADER 时,当前 FE 节点为选举出的主节点。当 RoleFOLLOWER 时,当前节点是一个能参与选主的 FE 节点。

如果 MySQL 客户端连接失败,可以通过查看 log/fe.warn.log 日志文件发现问题。

如果在初次部署时遇到任何意外问题,可以在删除并重新创建 FE 的元数据目录后,重新开始部署。

通过在浏览器访问 FE ip:http_port(默认 http_port 为 8030),进入 StarRocks 的 WebUI,用户名为 root,密码为空。

http://172.18.0.14:8030/

配置BE节点

配置部署 Backend (BE) 节点。

BE 是 StarRocks 的后端节点,负责数据存储以及 SQL 执行等工作。

以下例子仅部署一个 BE 节点。您可以通过重复以下步骤添加多个 BE 节点。

添加BE节点

【温馨提示】

1、FE节点之间的时钟相差不能超过5s, 使用NTP协议校准时间。一台机器上只可以部署单个FE节点。所有FE节点的http_port需要相同。

2、host 需要与 priority_networks 相匹配,port 需要与 be.conf 文件中的设置的 heartbeat_service_port 相同,默认为 9050。

echo "priority_networks = 127.0.0.1/32" >> ${STARROCKS_HOME}/be/conf/be.conf

mysql -h 127.0.0.1 -P9030 -uroot

ALTER SYSTEM ADD BACKEND "127.0.0.1:9050";

如添加过程出现错误,需要通过以下命令将该 BE 节点从集群移除。

mysql> ALTER SYSTEM decommission BACKEND "127.0.0.1:9050";

启动BE节点

/usr/local/starrocks/be/bin/start_be.sh --daemon

检查BE节点

tail -f ${STARROCKS_HOME}/be/log/be.out

ps -ef|grep starrocks

netstat -tulnp | grep starrocks

示例:

[root@PT-Test-13 log]# netstat -tulnp | grep starrocks

tcp        0      0 0.0.0.0:8060            0.0.0.0:*               LISTEN      18989/starrocks_be  

tcp        0      0 0.0.0.0:8040            0.0.0.0:*               LISTEN      18989/starrocks_be  

tcp6       0      0 :::9050                 :::*                    LISTEN      18989/starrocks_be  

tcp6       0      0 :::9060                 :::*                    LISTEN      18989/starrocks_be  

[root@PT-Test-13 log]# ps -ef|grep starrocks

root      7911 11528  0 16:28 pts/0    00:00:00 grep --color=auto starrocks

root     18989     1  1 15:37 pts/0    00:00:44 /usr/local/starrocks/be/lib/starrocks_be

[root@PT-Test-13 log]#

确认BE启动成功

通过 MySQL 客户端确认 BE 节点是否启动成功。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

[root@starrocks300 conf]# mysql -h 127.0.0.1 -P9030 -uroot

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

Your MySQL connection id is 2

Server version: 5.1.0

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> show backends \G

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

            BackendId: 11001

                   IP: 127.0.0.1

        HeartbeatPort: 9050

               BePort: 9060

             HttpPort: 8040

             BrpcPort: 8060

        LastStartTime: 2023-03-29 12:48:21

        LastHeartbeat: 2023-03-29 12:48:26

                Alive: true

SystemDecommissioned: false

ClusterDecommissioned: false

            TabletNum: 0

     DataUsedCapacity: 0.000

        AvailCapacity: 519.352 GB

        TotalCapacity: 1019.104 GB

              UsedPct: 49.04 %

       MaxDiskUsedPct: 49.04 %

               ErrMsg:

              Version: 3.0.0-46bf084

               Status: {"lastSuccessReportTabletsTime":"2023-03-29 12:48:21"}

    DataTotalCapacity: 519.352 GB

          DataUsedPct: 0.00 %

             CpuCores: 16

    NumRunningQueries: 0

           MemUsedPct: 0.24 %

           CpuUsedPct: 0.1 %

1 row in set (0.01 sec)

当 Alive 为 true 时,当前 BE 节点正常接入集群。

如果 BE 节点没有正常接入集群,可以通过查看 log/be.WARNING 日志文件排查问题。

如果日志中出现类似以下的信息,说明 priority_networks 的配置存在问题。

W0708 17:16:27.308156 11473 heartbeat_server.cpp:82\] backend ip saved in master does not equal to backend local ip127.0.0.1 vs. 172.16.xxx.xx

如遇到以上问题,可以通过 DROP 错误的 BE 节点,然后重新以正确的 IP 添加 BE 节点的方式来解决。

ALTER SYSTEM DROP BACKEND "172.16.xxx.xx:9050";

如果在初次部署时遇到任何意外问题,可以在删除并重新创建 BE 的数据路径后,重新开始部署。

成功部署 StarRocks 集群后,您可以:

创建表导入和查询数据

部署Broker节点

通过 Broker,StarRocks 可读取对应数据源(如HDFS、S3)上的数据,利用自身的计算资源对数据进行预处理和导入。除此之外,Broker 也被应用于数据导出,备份恢复等功能。

通过以下命令启动 Broker。

/usr/local/starrocks/apache_hdfs_broker/bin/start_broker.sh --daemon

ps -ef|grep broker

netstat -tulnp | grep 8000

mysql -h 127.0.0.1 -P9030 -uroot

ALTER SYSTEM ADD BROKER broker_name "127.0.0.1:8000";

show broker;

MySQL [(none)]> show broker;

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

| Name        | IP        | Port | Alive | LastStartTime       | LastUpdateTime      | ErrMsg |

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

| broker_name | 127.0.0.1 | 8000 | true  | 2023-03-30 09:32:54 | 2023-03-30 09:32:54 |        |

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

1 row in set (0.00 sec)

当 Alive 为 true 时,当前 Broker 节点正常接入集群。

创建数据库

使用 root 用户创建 example_db 数据库。

注意

在指定数据库名、表名和列名等变量时,如果使用了保留关键字,必须使用反引号 (`) 包裹,否则可能会产生报错。有关 StarRocks 的保留关键字列表,请参见关键字。

CREATE DATABASE example_db;

您可以通过 SHOW DATABASES; 命令查看当前 StarRocks 集群中所有数据库。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!

AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!

获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

网址:部署StarRocks V3.0单机环境 https://m.mxgxt.com/news/view/1347971

相关内容

使用docker部署单机测试版starrocks
EMR Serverless StarRocks评测
StarRocks 相关面试题
通过StarRocks Connector访问MaxCompute
再见,ClickHouse!2022我选StarRocks 2.0!
StarRocks Summit 2023 技术交流峰会圆满落幕
StarRocks 跨集群数据迁移:SDM 帮你一键搞定!
StarRocks资源调度
StarRocks资源隔离
揭秘StarRocks:打造企业级实时数据分析平台

随便看看