【Linux】Doris 安装部署

doris 安装部署

一、环境配置

1. 服务器环境

  • centos 7
  • docker 下载地址
  • doris 1.0.0 下载地址
  • doris 官方文档
  • storrocks 官方文档
  • 学习地址

二、安装docker

1. 使用xftp 等工具上传docker 安装包到linux服务器

2. 解压

tar -zxvf docekr-xxx.tgz  

3. 复制压缩后的文件到指定文件夹

cp docker/* /usr/bin

4. 注册编辑docker服务

vim /etc/systemd/system/docker.service

如果无法使用vim 可以在windows上编辑好文件后上传至linux服务器的此目录内

参考docker.service:

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
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
#ExecStart=/usr/bin/dockerd --privileged=true --default-ulimit nofile=65536:65536 -H fd://
ExecStart=/usr/bin/dockerd

ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

5. 添加可执行权限

chmod +x /etc/systemd/system/docker.service

6. 一键三连

 systemctl daemon-reload # 
 systemctl start docker # 启动服务
 systemctl enable docker.service # 设置开机自启动

7. docker卸载

  1. 停掉docker服务
1
systemctl stop docker 
  1. 查看yum安装的docker文件包
1
yum list installed |grep docker
  1. 删除所有安装的docker文件包
1
yum -y remove docker.x86_64
  1. 查看rpm包是否还有
1
rpm -qa |grep docker
  1. 删除docker镜像放置的位置
1
rm -rf /var/lib/docker

三、安装Doris

1、编译

1). 使用【doris】源码,需要编译,这里直接使用物理机编译
  • a). 0.14.0版本之前版本依赖如下

    1
    GCC 7.3+, Oracle JDK 1.8+, Python 2.7+, Apache Maven 3.5+, CMake 3.11+ Bison 3.0+

    如果使用Ubuntu 16.04 及以上系统 可以执行以下命令来安装依赖

    1
    sudo apt-get install build-essential openjdk-8-jdk maven cmake byacc flex automake libtool-bin bison binutils-dev libiberty-dev zip unzip libncurses5-dev curl git ninja-build python autopoint pkg-config

    如果是CentOS 可以执行以下命令

    1
    sudo yum groupinstall 'Development Tools' && sudo yum install maven cmake byacc flex automake libtool bison binutils-devel zip unzip ncurses-devel curl git wget python2 glibc-static libstdc++-static java-1.8.0-openjdk
  • b). 在0.14.0 之后版本依赖如下

    1
    GCC 10+, Oracle JDK 1.8+, Python 2.7+, Apache Maven 3.5+, CMake 3.19.2+ Bison 3.0+

    如果使用Ubuntu 16.04 及以上系统 可以执行以下命令来安装依赖

    1
    2
    3
    4
    5
    sudo apt install build-essential openjdk-8-jdk maven cmake byacc flex automake libtool-bin bison binutils-dev libiberty-dev zip unzip libncurses5-dev curl git ninja-build python
    sudo add-apt-repository ppa:ubuntu-toolchain-r/ppa
    sudo apt update
    sudo apt install gcc-10 g++-10
    sudo apt-get install autoconf automake libtool autopoint

    如果是CentOS 可以执行以下命令

    1
    2
    3
    4
    sudo yum groupinstall 'Development Tools' && sudo yum install maven cmake byacc flex automake libtool bison binutils-devel zip unzip ncurses-devel curl git wget python2 glibc-static libstdc++-static java-1.8.0-openjdk
    sudo yum install centos-release-scl
    sudo yum install devtoolset-10
    scl enable devtoolset-10 bash

    **安装完成后,自行设置环境变量 PATH, JAVA_HOME 等。(可以通过alternatives –list命令找到jdk的安装目录) 注意: Doris 0.14.0 的版本仍然使用gcc7 的依赖编译,之后的代码将使用gcc10 的依赖 **

  • c). 下载源码

    官网地址

  • d) 编译

    上传源码到服务器后,解压文件,进入文件夹后,执行编译

    1
    2
    3
    4
    # 支持则使用下面命令进行编译
    $ sh build.sh
    # 如不支持需要加 USE_AVX2=0
    $ USE_AVX2=0 sh build.sh

    编译完成后,产出文件在 output/ 目录中

2)、使用【starrocks】无需编译,直接部署即可,但CPU需支持【avx2】指令集
  1. 下载官方镜像 文档

2、部署环境准备

  • Linux 操作系统版本需求

    Linux 系统 版本
    CentOS 7.1 及以上
    Ubuntu 16.04 及以上
  • 软件需求

    软件 版本
    java 1.8+
    GCC 4.8.2 及以上
  • 操作系统安装要求
    vi /etc/security/limits.conf
    # 在末尾加入配置(表示:所有用户所有组,软限制和硬限制,对文件打开数,设为65535):
    * soft nofile 65536
    * hard nofile 65536
    # 修改后需要断开远程工具(如Xshell等)后重新连接方可生效,或者,直接再临时修改一次,使用:
    ​ ulimit -n 65535
    # 确认生效:
    ​ ulimit -n

  • CPU检查

    • 使用doris 编译的 可以跳过此检查;
    • 使用storrocks 下载部署的,需要检查cpu是否支持avx2 指令集
    1
    cat /proc/cpuinfo | grep avx2 

    有结果输出即表明CPU支持。如果无输出,则需要更换支持AVX2的机器。部分情况下,我们会在Windows系统下使用虚拟机安装CentOS作为测试环境,此时我们可以使用CPU-Z、AIDA64等工具在Windows下检查宿主机CPU的指令集支持情况。

  • 操作系统检查

    StarRocks要求系统为Linux CentOS 7及以上版本(下文演示使用CentOS 7.6),内核版本建议在3.10以上,查看系统及内核信息:

    1
    2
    3
    4
    [root@node01 ~]# cat /etc/redhat-release
    CentOS Linux release 7.6.1810 (Core)
    [root@node01 ~]# uname -a
    Linux node01 3.10.0-1160.25.1.el7.x86_64 #1 SMP Wed Apr 28 21:49:45 UTC 2021 > x86_64 x86_64 x86_64 GNU/Linux
  • 时钟同步

    Doris 的元数据要求时间精度要小于5000ms,所以所有集群所有机器要进行时钟同步,避免因为时钟问题引发的元数据不一致导致服务出现异常。

  • 网络需求

    Doris、storrocks 各个实例直接通过网络进行通讯。以下表格展示了所有需要的端口

    实例名 端口名称 默认端口 通信方向 说明
    BE be_port 9060 FE–>BE BE 上 thrift server 的端口,用于接收来自 FE 的请求
    BE webserver_port 8040 BE <–> BE BE 上的 http server 的端口
    BE heartbeat_service_port 9050 FE –> BE BE 上心跳服务端口(thrift),用于接收来自 FE 的心跳
    BE brpc_port 8060 FE <–> BE, BE <–> BE BE 上的 brpc 端口,用于 BE 之间通讯
    FE http_port 8030 FE <–> FE,用户 <–> FE FE 上的 http server 端口
    FE rpc_port 9020 BE –> FE, FE <–> FE FE 上的 thrift server 端口,每个fe的配置需要保持一致
    FE query_port 9030 用户 <–> FE FE 上的 mysql server 端口
    FE edit_log_port 9010 FE <–> FE FE 上的 bdbje 之间通信用的端口
    Broker broker_ipc_port 8000 FE –> Broker, BE –> Broker Broker 上的 thrift server,用于接收请求

    注:

    1. 当部署多个 FE 实例时,要保证 FE 的 http_port 配置相同。
    2. 部署前请确保各个端口在应有方向上的访问权限。
    3. 若上述端口不与服务器中其他服务的端口冲突,通常不建议修改。
    4. 以FE为例,部署前若需修改端口,可在配置文件fe/conf/fe.conf中修改为需要使用的端口(再次注意集群中FE的http端口需要一致,默认为8030):
    1
    2
    3
    4
    5
    6
    7
    8
    # 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
  • 配置防火墙,开放端口

    防火墙开放集群实例默认端口命令:

    firewall-cmd --zone=public --add-port=8000/tcp --permanent
    firewall-cmd --zone=public --add-port=8030/tcp --permanent
    firewall-cmd --zone=public --add-port=8040/tcp --permanent
    firewall-cmd --zone=public --add-port=8060/tcp --permanent
    firewall-cmd --zone=public --add-port=9010/tcp --permanent
    firewall-cmd --zone=public --add-port=9020/tcp --permanent
    firewall-cmd --zone=public --add-port=9030/tcp --permanent
    firewall-cmd --zone=public --add-port=9050/tcp --permanent
    firewall-cmd --zone=public --add-port=9060/tcp --permanent
    firewall-cmd --reload
    

    查看开放的端口:

    [root@node01 ~]# firewall-cmd --list-port
    8030/tcp 8000/tcp 8060/tcp 9010/tcp 9020/tcp 9030/tcp 9050/tcp 9060/tcp 8040/tcp
    
  • 安装JDK

    StarRocks依赖JDK 1.8+环境,Oracle JDK 1.8+或OpenJDK8+均可以使用(下文演示使用OpenJDK 1.8.0_41):

    [root@node01 ~]# java -version
    openjdk version “1.8.0_41”
    OpenJDK Runtime Environment (build 1.8.0_41-b04)
    OpenJDK 64-Bit Server VM (build 25.40-b25, mixed mode)

    OpenJDK 8的安装操作见:文档:【Linux】安装OpenJDK.md

  • 安装Mysql

    StarRocks采用MySQL协议进行通信,用户可通过mysql-client连接到StarRocks集群。选 择mysql-client版本时要求采用5.1之后的版本,因为5.1之前不能支持长度超过16个字 符的用户名(下文演示使用mysql -client-5.7.35)。

    为方便集群部署和运维,我们通常建议在集群服务器中选择一个节点安装mysql-client。当然,我们也可以不安装mysql-client,通过外部的SQLyog、DBeaver、Navicat等图形化工具直接访问StarRocks。

    mysql 安装操作文档见:【Linux】CentOS7安装mysql5.7

3、安装部署

严格来说,StarRocks并没有所谓的“Standalone运行模式”,生产环境下更是不建议进行单实例部署。这里将单机部署整理出来,主要是考虑当用户测试环境受限于机器数量或仅希望验证功能,那么也可以在一台机器上简易部署把StarRocks跑起来。

以服务器“starrocks(172.18.88.54)”为例,在进行完部署环境的准备工作后,我们开始进行单节点的部署。

单节点架构设计如下:

机器节点 172.18.88.54(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的二进制部署包可在官网下载获取:下载地址

doris 使用编译到output文件中的文件
这儿是用storrocks 为例,将下载好的部署包上传至 /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-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框架静态库文件
3. 分发部署文件
# 重命名
[root@starrocks software]# mv /opt/software/StarRocks-1.19.2 /opt/software/starrocks 
# 移动文件到module目录下
[root@starrocks software]# mv /opt/software/starrocks /opt/module/starrocks/
[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
  • 修改FE配置文件

    StarRocks各服务配置文件的默认配置已经足以启动集群,不建议初尝用户修改较多配置。FE的配置文件在测试环境中我们通常只需要关注以下三点:

    a、注意默认端口,避免端口冲突,正常情况下不需要修改;

    b、绑定IP,避免多网卡情况下服务无法自动匹配到正确的IP。特别注意,绑定ip时,如果不清楚CIDR表示法,可以直接填写完整的ip(不支持别名),例如配置为priority_networks = 172.18.88.54/24;该地址可以使用 ip addr show 的方式查询

    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
    
  • 配置环境变量

    # 配置环境变量
    vim /etc/profile.d/doris.sh
    export DORIS_HOME=Doris根目录 # 例如/opt/doris
    export PATH=$PATH:$DORIS_HOME/fe/bin:$DORIS_HOME/be/bin
    # 保存并source
    source /etc/profile.d/doris.sh
    
  • 启动FE

    [root@starrocks starrocks]# cd /opt/module/starrocks/fe/bin/
    # --daemon 后台运行
    [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的元数据目录,再从头开始操作。

  • 访问FE

    使用mysql-client访问FE,FE查询端口默认为9030,自带用户root,默认密码为空:

    [root@starrocks bin]# mysql -h172.18.88.54 -P9030 -uroot
    
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    
    Your MySQL connection id is 1
    
    Server version: 5.1.0
    
    ………………
    
    mysql>
    
  • 确认FE状态

    若mysql-client能够正常访问FE,已说明FE状态正常,查询命令:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
        mysql>  show frontends\G
    *************************** 1. row ***************************
    Name: 172.18.88.54_9010_1651209869733
    IP: 172.18.88.54
    EditLogPort: 9010
    HttpPort: 8030
    QueryPort: 9030
    RpcPort: 9020
    Role: FOLLOWER
    IsMaster: true
    ClusterId: 1166088853
    Join: true
    Alive: true
    ReplayedJournalId: 803
    LastHeartbeat: 2022-04-29 14:11:57
    IsHelper: true
    ErrMsg:
    Version: 0.14.0-release-Unknown
    1 row in set (20.04 sec)

    Alive为true即说明FE节点状态正常。

  • 校验FE启动是否成功

    1. 检查是否启动成功, JPS 命令下有没有 PaloFe 进程
    2. FE 进程启动后,会⾸先加载元数据,根据 FE ⻆⾊的不同,在⽇志中会看到 transfer from UNKNOWN to MASTER/FOLLOWER/OBSERVER 。最终会看到 thrift server started ⽇志,并且可以通过 mysql 客户端连接到 FE,则 表示 FE 启动成功。
    3. 也可以通过如下连接查看是否启动成功: http://fe_host:fe_http_port/api/bootstrap 如果返回: {“status”:”OK”,”msg”:”Success”} 则表示启动成功,其余情况,则可能存在问题。
    4. 外⽹环境访问 http://fe_host:fe_http_port 查看是否可以访问WebUI界 ⾯,登录账号默认为root,密码为空

    注:如果在 fe.log 中查看不到启动失败的信息,也许在 fe.out 中可以看到。

  • 添加实例进入集群

    我们先将添加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 '172.18.88.54:9050';
    
    Query OK, 0 rows affected (0.10 sec)
    

    若添加实例进入集群时信息输入有误或出现其他异常,我们可以将其删除后重新添加,删除示例:

    从集群中删除BE(当前仅有一个BE实例,故删除时可以直接使用dropp命令删除。删除BE为高风险操作,所以这里的删除命令设计为了dropp):

    mysql> alter system dropp backend '172.18.88.54:9050';
    
    Query OK, 0 rows affected (0.09 sec)
    

    添加Broker进入集群时需要给Broker设定名称,比如命名为hdfs_broker,端口使用Broker的broker_ipc_port(默认为8000):

    mysql> alter system add broker hdfs_broker '172.18.88.54:8000';
    
    Query OK, 0 rows affected (0.03 sec)
    

    从集群中删除Broker:

    mysql> alter system drop broker hdfs_broker '172.18.88.54:8000';
    
    Query OK, 0 rows affected (0.04 sec)
    
  • 暂时退出StarRocks:
    mysql> exit

    Bye

5. 部署BE实例
  • 修改BE配置文件

    • BE的配置文件,在测试环境通常也是关注如下三点:
    1. 注意默认端口,避免端口冲突,正常情况下不需要修改;
    2. 绑定IP,避免多网卡情况下无法自动找到正确的IP(同样,不清楚CIDR就可以直接填写完整的IP);
    3. 设置数据存储目录,默认目录为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 = 172.18.88.54/24
    
    …………
    
    # 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
    
  • 启动BE

    [root@starrocks bin]# cd /opt/module/starrocks/be/bin/
    
    [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中。

  • 查看BE状态

    [root@starrocks bin]# mysql -h127.0.0.1 -P9030 -uroot
    
    mysql> show backends\G
    *************************** 1. row ***************************
                BackendId: 11001
                  Cluster: default_cluster
                       IP: 172.18.88.54
            HeartbeatPort: 9050
                   BePort: 9060
                 HttpPort: 8040
                 BrpcPort: 8060
            LastStartTime: 2022-04-29 14:01:04
            LastHeartbeat: 2022-04-29 14:02:11
                    Alive: true
     SystemDecommissioned: false
    ClusterDecommissioned: false
                TabletNum: 0
         DataUsedCapacity: .000 
            AvailCapacity: 34.793 GB
            TotalCapacity: 49.976 GB
                  UsedPct: 30.38 %
           MaxDiskUsedPct: 30.38 %
                   ErrMsg: 
                  Version: 0.14.0-release-Unknown
                   Status: {"lastSuccessReportTabletsTime":"2022-04-29 14:02:10"}
    1 row in set (20.04 sec)
    

    一般Alive为true即为状态正常,若为false,可根据日志排查问题。同样的,因为当前BE为初次启动,如果出现无法快速定位的问题,可以清空storage数据目录,重新启动服务。

6. 部署Broker

在部署完FE与BE后,StarRocks主要服务已经部署完成。Broker是StarRocks与外部HDFS/对象存储等外部数据对接的中转服务,若不需要可以不部署。Broker本身是无状态的进程,可以随意启停,不影响集群。

  • 修改Broker配置文件

    Broker的配置文件通常不需要修改。与FE实例和BE实例不同,Broker当前没有也不需要priority_networks这个选项。Broker的服务默认绑定在0.0.0.0上,我们只需在前面4.5节 ADD BROKER时,输入正确可访问的BROKER IP即可。

  • 启动Broker

    [root@starrocks bin]# cd /opt/module/starrocks/apache_hdfs_broker/bin/
    
    [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中,如果进程状态异常可查看日志追踪原因。

  • 查看Broker状态

    [root@starrocks bin]# mysql -h127.0.0.1 -P9030 -uroot
    
    mysql> show broker\G
    
    *************************** 1. row ***************************
    
              Name: hdfs_broker
    
                IP: 172.18.88.54
    
              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即为状态正常,如果状态异常可以根据日志定位问题。

4、简单使用

1. 修改root账户密码

例如修改root密码也为root:

mysql> set password=password('root');
    
Query OK, 0 rows affected (0.02 sec)
2. 建库建表

StarRocks的副本数是不能大于BE节点数的,由于当前仅有一个BE节点,我们建表时务必注意指定数据为单副本,示例如下:
新建一个starrocks数据库:

mysql> create database starrocks;

Query OK, 0 rows affected (0.01 sec)

mysql> use starrocks;

Database changed