starRocks 单点安装

823 阅读2分钟

项目中要使用statRocks,为了解,特意安装一下,习惯下dorisdb 和mysql 区别

下载安装包

下载地址 www.starrocks.com/zh-CN/downl…

StarRocks-2.0.1.tar.gz

解压到 usr/local 下面,解压路径可以更加实际情况

文件内容

├── be  # BE目录

│   ├── bin

│   │   ├── start_be.sh # BE启动命令

│   │   └── stop_be.sh  # BE关闭命令

│   ├── conf

│   │   └── be.conf     # BE配置文件

│   ├── lib

│   │   ├── dorisdb_be  # BE可执行文件

│   │   └── meta_tool

│   └── www

├── fe  # FE目录

│   ├── bin

│   │   ├── start_fe.sh # FE启动命令

│   │   └── stop_fe.sh  # FE关闭命令

│   ├── conf

│   │   └── fe.conf     # FE配置文件

│   ├── lib

│   │   ├── dorisdb-fe.jar  # FE jar包

│   │   └── *.jar           # FE 依赖的jar包

│   └── webroot

└── udf

启动FE

修改配置文件 fe/conf/fe.conf

LOG_DIR = ${STARROCKS_HOME}/log

DATE = "$(date +%Y%m%d-%H%M%S)"
JAVA_OPTS="-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:$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 -Xmx8192m -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"

##
## the lowercase properties are read by main program.
##

# INFO, WARN, ERROR, FATAL
sys_log_level = INFO

# store metadata, create it if it is not exist.
# Default value is ${STARROCKS_HOME}/meta
meta_dir = ${STARROCKS_HOME}/meta

http_port = 8030
rpc_port = 9020
query_port = 9030
edit_log_port = 9010
mysql_service_nio_enabled = true

# 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 = 172.17.0.0/24;

设置 meta_dir 目录地址 ${STARROCKS_HOME}/meta, STARROCKS_HOME 是starrocks安装路径,默认安装地址是fe/meta

设置 priority_networks ,startocks 要求fe和be ip 必须在同一个网段内,FE和BE 必须设置一样,本人第一次安装的时候,就在这个上面浪费了很多时间,导致BE 起不来。

启动命令 fe/bin/start_fe.sh --daemon

使用mysql 连接 mysql -h 127.0.0.1 -P9030 -uroot

注意:这里默认root用户密码为空,端口为fe/conf/fe.conf中的query_port配置项,默认为9030

如果连接不成功说明,FE 没起来,在fe/log/ 目录下查看日志

查看FE状态: mysql> SHOW PROC '/frontends'\G

*************************** 1. row ***************************
             Name: 172.17.0.1_9010_1644573557622
               IP: 172.17.0.1
         HostName: 172.17.0.1
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: FOLLOWER
         IsMaster: true
        ClusterId: 1811003205
             Join: true
            Alive: true
ReplayedJournalId: 50969
    LastHeartbeat: 2022-02-15 23:55:18
         IsHelper: true
           ErrMsg: 
        StartTime: 2022-02-14 19:02:55
          Version: 2.0.1-f0de9ec
1 row in set (0.25 sec)

启动BE

修改配置文件

# INFO, WARNING, ERROR, FATAL
sys_log_level = INFO

# ports for admin, web, heartbeat service 
be_port = 9060
webserver_port = 8040
heartbeat_service_port = 9050
brpc_port = 8060

# 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=172.17.0.0/24

# data root path, separate by ';'
# you can specify the storage medium of each root path, HDD or SSD, seperate by ','
# eg:
# storage_root_path = /data1,medium:HDD;/data2,medium:SSD;/data3
# /data1, HDD;
# /data2, SSD;
# /data3, HDD(default);
#
# Default value is ${STARROCKS_HOME}/storage, you should create it by hand.
storage_root_path = ${STARROCKS_HOME}/storage

# Advanced configurations
# sys_log_dir = ${STARROCKS_HOME}/log
# sys_log_roll_mode = SIZE-MB-1024
# sys_log_roll_num = 10
# sys_log_verbose_modules = *
# log_buffer_level = -1

default_rowset_type = beta

修改 storage_root_path 路径,默认 be/storage

priority_networks 和FE设置在同一个网段

启动命令 bin/start_be.sh --daemon

mysql> ALTER SYSTEM ADD BACKEND "be_host:be_heartbeat_service_port";

be_host 为 be 服务ip,如果是多网卡的,需要设置和 fe 一个网段的ip,如果是单台服务器,那么fe的ip 和pe的是一样的

如果配置错误,删除BE节点:

  • alter system decommission backend "be_host:be_heartbeat_service_port";
  • alter system dropp backend "be_host:be_heartbeat_service_port";

查看BE启动状态

mysql> SHOW PROC '/backends'\G

*************************** 1. row ***************************
            BackendId: 31003
              Cluster: default_cluster
                   IP: 172.17.0.1
             HostName: 172.17.0.1
        HeartbeatPort: 9050
               BePort: 9060
             HttpPort: 8040
             BrpcPort: 8060
        LastStartTime: 2022-02-14 19:31:06
        LastHeartbeat: 2022-02-16 00:09:49
                Alive: true
 SystemDecommissioned: false
ClusterDecommissioned: false
            TabletNum: 11
     DataUsedCapacity: 718.000 B
        AvailCapacity: 113.258 MB
        TotalCapacity: 19.559 GB
              UsedPct: 99.43 %
       MaxDiskUsedPct: 99.43 %
               ErrMsg: 
              Version: 2.0.1-f0de9ec
               Status: {"lastSuccessReportTabletsTime":"2022-02-16 00:09:11"}
    DataTotalCapacity: 113.258 MB
          DataUsedPct: 0.00 %
1 row in set (0.09 sec)

alive:true 说明起来了

遇到问题

  • 提示JAVA_HOME 位置,需要按照java 运行环境
  • be和fe起不来,因为fe和be 配置文件 priority_networks 设置不正确,没有在同一个网段。

参考文章

www.kancloud.cn/dorisdb/dor…