系统版本:Centos7.1 软件版本:1.0.0

一、软件下载

doris在1.0.0版本之后提供了已经编译好的二进制包,无需自己进行编译。
官网地址:https://doris.apache.org
点击下载

二、安装部署

2.1 软硬件需求

2.1.1 Linux操作系统需求

操作系统 版本
Centos 7.1及以上
Ubuntu 16.04及以上

2.1.2 软件需求

软件 版本
Java 1.8及以上
Gcc 4.8.2及以上

2.1.3 开发测试环境

模块 CPU 内存 磁盘 网络 实例数量
Fronted 8核+ 8GB SSD或SATA,10G+ 千兆网卡 1
Backend 8核+ 16GB SSD或SATA,50G+ 千兆网卡 1-3

2.1.4 生产环境

模块 CPU 内存 磁盘 网络 实例数量(最低要求)
Fronted 16核+ 64GB+ SSD或RAID卡,100GB+ 万兆网卡 1-5 *
Backend 16核+ 64GB+ SSD或SATA,100G+ 万兆网卡 10-100 *

2.2 单机部署

2.2.1 检查并关闭selinux服务

  1. 临时关闭

    1. [hadoop@client conf]$ getenforce # 查看selinux的状态
    2. Enforcing
    3. [hadoop@client conf]$ sudo setenforce 0 # 临时关闭selinux
    4. [hadoop@client conf]$ getenforce
    5. Permissive
  2. 永久关闭

    1. [hadoop@client conf]$ sudo vim /etc/selinux/config # 永久关闭selinux
    2. # This file controls the state of SELinux on the system.
    3. # SELINUX= can take one of these three values:
    4. # enforcing - SELinux security policy is enforced.
    5. # permissive - SELinux prints warnings instead of enforcing.
    6. # disabled - No SELinux policy is loaded.
    7. SELINUX=disabled
    8. # SELINUXTYPE= can take one of three values:
    9. # targeted - Targeted processes are protected,
    10. # minimum - Modification of targeted policy. Only selected processes are protected.
    11. # mls - Multi Level Security protection.
    12. SELINUXTYPE=targeted

    2.2.2 检查并关闭防火墙

  3. 关闭防火墙 ```shell [hadoop@client conf]$ sudo systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2022-06-27 19:58:40 CST; 15min ago Docs: man:firewalld(1) Main PID: 1022 (firewalld) Tasks: 2 CGroup: /system.slice/firewalld.service

    1. └─1022 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid

Jun 27 19:58:39 client systemd[1]: Starting firewalld - dynamic firewall daemon… Jun 27 19:58:40 client systemd[1]: Started firewalld - dynamic firewall daemon. Jun 27 19:58:40 client firewalld[1022]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It will be removed in a future release. …ling it now. Hint: Some lines were ellipsized, use -l to show in full. [hadoop@client conf]$ sudo systemctl stop firewalld [hadoop@client conf]$ sudo systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1)

Jun 27 19:58:39 client systemd[1]: Starting firewalld - dynamic firewall daemon… Jun 27 19:58:40 client systemd[1]: Started firewalld - dynamic firewall daemon. Jun 27 19:58:40 client firewalld[1022]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It will be removed in a future release. …ling it now. Jun 27 20:14:48 client systemd[1]: Stopping firewalld - dynamic firewall daemon… Jun 27 20:14:49 client systemd[1]: Stopped firewalld - dynamic firewall daemon. Hint: Some lines were ellipsized, use -l to show in full.

  1. 2. 禁止防火墙开机自启动
  2. ```shell
  3. [hadoop@client conf]$ sudo systemctl disable firewalld
  4. Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
  5. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

2.2.3 修改系统句柄数

  1. [hadoop@client doris]$ sudo vim /etc/security/limits.conf
  2. # 添加以下两行信息
  3. * soft nofile 65536
  4. * hard nofile 65536
  5. # 保存退出并重启服务器
  6. [hadoop@client doris]$ ulimit -n
  7. 65536

2.2.4 配置FE

  1. [hadoop@client doris]$ cd fe/conf/
  2. [hadoop@client conf]$ vim fe.conf
  3. # 取消priority_networks的注释,修改参数
  4. priority_networks = 127.0.0.0/24
  5. # 保存退出

2.2.5 配置BE

  1. [hadoop@client doris]$ cd /data/apps/doris
  2. [hadoop@client doris]$ cd be/conf/
  3. [hadoop@client conf]$ vim be.conf
  4. # 取消priority_networks的注释,修改参数
  5. priority_networks = 127.0.0.0/24
  6. # 保存退出

2.2.6 配置环境变量

  1. [hadoop@client conf]$ sudo vim /etc/profile
  2. # 末尾增加如下两行信息
  3. DORIS_HOME=/data/apps/doris
  4. export PATH=$PATH:$JAVA_HOME/bin:$DORIS_HOME/fe/bin:$DORIS_HOME/be/bin
  5. # 保存退出

2.2.7 启动FE及验证

  1. 启动FE

    1. [hadoop@client doris]$ start_fe.sh --daemon
  2. 检查进程是否正常启动

    1. [hadoop@client jdk1.8.0_331]$ bin/jps
    2. 7814 Jps
    3. 6271 PaloFe
    4. # 说明进程启动成功
  3. 访问WenUI界面,登录,默认账号为root,密码为空

访问地址:[http://192.168.123.3:8030](http://192.168.123.3:8030/Log)
image.png
image.png

  1. 也可以通过浏览器请求[http://192.168.123.3:8030/api/bootstrap](http://192.168.123.3:8030/api/bootstrap)查看返回信息

image.png

  1. 注意

FE进程启动之后,会首先加载元数据,根据FE角色的而不同,在日志中会看到 transfer from UNKNOWN to MASTER/FOLLOWER/OBSERVER ,最终会看到 thrift server started ⽇志,并且可以通过 mysql 客户端连接到 FE,则 表示 FE 启动成功
其次,如果在fe.log中看不到启动失败的信息,或许可以在fe.out中可以看到。

2.2.8 启动BE并验证

  1. 启动BE

    1. [hadoop@client doris]$ start_be.sh --daemon
  2. 检查BE进程是否正常启动

    1. [hadoop@client doris]$ ps -ef | grep palo_be
    2. hadoop 6928 1 33 20:30 pts/0 00:15:25 /data/apps/doris/be/lib/palo_be
  3. 注意

    1. BE进程启动之后,如果之前有数据,则可能又数分钟不等的数据索引加载时间
    2. 如果BE是首次启动,或者该BE尚未加入到任何的集群,则BE日志会定期滚动 waiting to receive first heartbeat from fronted 字样。表示BE还未通过FE的心跳收到Master的地址,正在被动等待。这种错误日志在 FE中ADD BECKEND并发送心跳之后,就会小时。如果在接收到心跳,有重复出现 master client,get client from cache failed host:,port 0 ;code 7字样,说明FE成功连接了BE,但是BE无法主动连接FE。可能需要检查BE到FE的rpc_port的连通性
    3. 如果BE已经被加入到集群,则日志中每隔5秒滚动来自FE的心跳日志:get heartbeat, host: xx.xx.xx.xx, port: 9020, cluster id: xxxxxx ,表示⼼跳正常
    4. 其次,⽇志中应该每隔 10 秒滚动 finish report task success. return code: 0 的字样,表示 BE 向 FE 的通信正常
    5. 同时,如果有数据查询,应该能看到不停滚动的⽇志,并且有 execute time is xxx ⽇志,表示 BE 启动成功,并且查询正常。
    6. 也可以通过如下连接查看是否启动成功: http://be_host:be_http_port/api/health 如果返回: {“status”: “OK”,”msg”: “To Be Added”} 则表示启动成功,其余情况,则可能存在问题
    7. 注:如果在 be.INFO 中查看不到启动失败的信息,也许在 be.out 中可以看到。

      2.2.9 注册BE到FE(使用mysql客户端,需要另外安装)

      ```shell

      第一次安装之后是客户端登录,默认是账号为root,密码为空

      [hadoop@client log]$ mysql -h 192.168.123.3 -uroot -P 9030 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 0 Server version: 5.1.0 Doris version 1.0.0-rc03-Unknown

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

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

mysql> alter system add backend “192.168.123.3:9050”; Query OK, 0 rows affected (0.02 sec)

  1. <a name="UwthX"></a>
  2. ### 2.2.10 修改doris的root账号密码
  3. ```shell
  4. mysql> set password for 'root' = PASSWORD('123456')

2.3 集群部署

2.3.1 集群节点规划

客户机(client) 主机1(node1) 主机2(node2) 主机3 (node3)
FE(LEADER) FE(FOLLWER)
FE(OBSERVER)
- BE BE BE
- BROKER BROKER BROKER

2.3.2 检查并关闭selinux服务

  • 操作对象:集群中的所有服务器
  • 操作步骤:参考 2.2.1

    2.3.3 检查并关闭防火墙

  • 操作对象:集群中的所有服务器

  • 操作步骤:参考 2.2.2

    2.3.4 修改文件句柄数

  • 操作对象:集群中的所有服务器

  • 操作步骤:参考 2.2.3

    2.3.5 配置启动FE

  1. 配置客户机(client)FE ```shell [hadoop@client conf]$ cd /data/apps/doris/fe/conf [hadoop@client conf]$ vim fe.conf

    Default value is ${DORIS_HOME}/doris-meta

    meta_dir = ${DORIS_HOME}/doris-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 = 10.10.10.0/24;192.168.0.0/16

priority_networks = 192.168.123.3/24

  1. - 注意:
  2. - 生产环境强烈建议将元数据(meta_dir)路径单独指定目录存放,最好是单独的磁盘(如果是SSD最好)
  3. - 如果机器有多个ip,比如内网和外网,虚拟机docker等,需要进行ip绑定,才能正确识别
  4. - JAVA_OPTS默认java最大堆内存是4G,建议生产环境调整到8G以上
  5. 2. 启动客户机(client)FE
  6. ```shell
  7. # 使用守护进行启动
  8. [hadoop@client fe]$ bin/start_fe.sh --daemon

2.3.6 同步FE到其他节点

  1. 同步FE到其他节点

    1. # 同步FE到node1
    2. [hadoop@client ~]$ scp -r /data/apps/doris/fe node1@hadoop:/data/apps/doris/
    3. # 同步FE到node2
    4. [hadoop@client ~]$ scp -r /data/apps/doris/fe node2@hadoop:/data/apps/doris/
    5. # 同步FE到node3
    6. [hadoop@client ~]$ scp -r /data/apps/doris/fe node3@hadoop:/data/apps/doris/
  2. 在其他结点上修改FE的ip地址绑定

    1. [hadoop@node1 ~]$ vim /data/apps/doris/be/conf/be.conf
    2. priority_networks = 192.168.123.4/24
    3. [hadoop@node2 ~]$ vim /data/apps/doris/be/conf/be.conf
    4. priority_networks = 192.168.123.5/24
    5. [hadoop@node3 ~]$ vim /data/apps/doris/be/conf/be.conf
    6. priority_networks = 192.168.123.6/24
  3. 启动FE

    1. [hadoop@node1 fe]$ bin/start_be.sh --daemon
    2. [hadoop@node2 fe]$ bin/start_be.sh --daemon
    3. [hadoop@node3 fe]$ bin/start_be.sh --daemon
  4. 添加FE节点 ```shell

    client登录FE

    [hadoop@client log]$ mysql -h 192.168.123.3 -uroot -P 9030 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 0 Server version: 5.1.0 Doris version 1.0.0-rc03-Unknown

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

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

分别添加节点到FE

mysql> alter system add follower ‘node1:9010’; Query OK, 0 rows affected (0.00 sec) mysql> alter system add follower ‘node2:9010’; Query OK, 0 rows affected (0.00 sec) mysql> alter system add observer ‘node3:9010’; Query OK, 0 rows affected (0.00 sec)

  1. <a name="zawjw"></a>
  2. ### 2.3.7 配置并启动BE
  3. 1. 客户端配置BE
  4. ```shell
  5. [hadoop@client ~]$ vim /data/apps/doris/be/conf/be.conf
  6. # ports for admin, web, heartbeat service
  7. be_port = 9060
  8. webserver_port = 8040
  9. heartbeat_service_port = 9050
  10. brpc_port = 8060
  11. # Choose one if there are more than one ip except loopback address.
  12. # Note that there should at most one ip match this list.
  13. # If no ip match this rule, will choose one randomly.
  14. # use CIDR format, e.g. 10.10.10.0/24
  15. # Default value is empty.
  16. # priority_networks = 10.10.10.0/24;192.168.0.0/16
  17. priority_networks = 192.168.123.3/24
  18. # data root path, separate by ';'
  19. # you can specify the storage medium of each root path, HDD or SSD
  20. # you can add capacity limit at the end of each root path, seperate by ','
  21. # eg:
  22. # storage_root_path = /home/disk1/doris.HDD,50;/home/disk2/doris.SSD,1;/home/disk2/doris
  23. # /home/disk1/doris.HDD, capacity limit is 50GB, HDD;
  24. # /home/disk2/doris.SSD, capacity limit is 1GB, SSD;
  25. # /home/disk2/doris, capacity limit is disk capacity, HDD(default)
  26. # 这里指定数据存放的额目录,并可以指定磁盘类型(HDD),并且可以限制该磁盘存储的上限大小为50G,该目录需要手动创建好
  27. storage_root_path = /data/apps/doris_data
  1. 分发BE到其他节点

    1. # 同步FE到node1
    2. [hadoop@client ~]$ scp -r /data/apps/doris/be node1@hadoop:/data/apps/doris/
    3. # 同步FE到node2
    4. [hadoop@client ~]$ scp -r /data/apps/doris/be node2@hadoop:/data/apps/doris/
    5. # 同步FE到node3
    6. [hadoop@client ~]$ scp -r /data/apps/doris/be node3@hadoop:/data/apps/doris/
  2. 分别在三台节点上创建数据目录

    1. # 同步FE到node1
    2. [hadoop@node1 ~]$ mkdir /data/apps/doris_data
    3. # 同步FE到node2
    4. [hadoop@node2 ~]$ mkdir /data/apps/doris_data
    5. # 同步FE到node3
    6. [hadoop@node3 ~]$ mkdir /data/apps/doris_data
  3. 需要分别修改三台节点的配置文件中绑定的ip地址

    1. [hadoop@node1 ~]$ vim /data/apps/doris/be/conf/be.conf
    2. priority_networks = 192.168.123.4/24
    3. [hadoop@node2 ~]$ vim /data/apps/doris/be/conf/be.conf
    4. priority_networks = 192.168.123.5/24
    5. [hadoop@node3 ~]$ vim /data/apps/doris/be/conf/be.conf
    6. priority_networks = 192.168.123.6/24
  4. 分别在各个节点启动be

    1. [hadoop@node1 be]$ sudo bin/start_be.sh --daemon
    2. [hadoop@node2 be]$ sudo bin/start_be.sh --daemon
    3. [hadoop@node3 be]$ sudo bin/start_be.sh --daemon

    2.3.8 添加BE节点到FE

  5. 客户端登录FE ```shell

    第一次安装之后是客户端登录,默认是账号为root,密码为空

    [hadoop@client log]$ mysql -h 192.168.123.3 -uroot -P 9030 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 0 Server version: 5.1.0 Doris version 1.0.0-rc03-Unknown

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

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

mysql>

  1. 2. (可选)并修改密码
  2. ```shell
  3. # 改密码修改之后,在Web UI上登录的时候,也将使用该密码进行登录
  4. mysql> set password for 'root' = PASSWORD('123456')
  1. 注册BE节点 ```shell mysql> alter system add backend ‘node1:9050’; Query OK, 0 rows affected (0.02 sec)

mysql> alter system add backend ‘node2:9050’; Query OK, 0 rows affected (0.00 sec)

mysql> alter system add backend ‘node3:9050’; Query OK, 0 rows affected (0.01 sec)

  1. 4. 查看BE的状态
  2. ```shell
  3. mysql> show proc '/backends';
  4. +-----------+-----------------+---------------+----------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------------------+-----------+------------------+---------------+---------------+---------+----------------+--------------------------+--------------------------------------------------------------------+--------------------+-------------------------------------------------------------------------------------------------------------------------------+
  5. | BackendId | Cluster | IP | HostName | HeartbeatPort | BePort | HttpPort | BrpcPort | LastStartTime | LastHeartbeat | Alive | SystemDecommissioned | ClusterDecommissioned | TabletNum | DataUsedCapacity | AvailCapacity | TotalCapacity | UsedPct | MaxDiskUsedPct | Tag | ErrMsg | Version | Status |
  6. +-----------+-----------------+---------------+----------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------------------+-----------+------------------+---------------+---------------+---------+----------------+--------------------------+--------------------------------------------------------------------+--------------------+-------------------------------------------------------------------------------------------------------------------------------+
  7. | 11001 | default_cluster | 192.168.123.4 | node1 | 9050 | 9060 | 8040 | 8060 | 2022-06-29 19:58:12 | 2022-06-29 20:22:21 | true | false | false | 0 | 0.000 | 36.678 GB | 39.246 GB | 6.54 % | 6.54 % | {"location" : "default"} | | 1.0.0-rc03-Unknown | {"lastSuccessReportTabletsTime":"2022-06-29 20:21:32","lastStreamLoadTime":-1,"isQueryDisabled":false,"isLoadDisabled":false} |
  8. | 11002 | default_cluster | 192.168.123.5 | node2 | 9050 | 9060 | 8040 | 8060 | 2022-06-29 19:59:44 | 2022-06-29 20:22:21 | true | false | false | 0 | 0.000 | 36.686 GB | 39.246 GB | 6.52 % | 6.52 % | {"location" : "default"} | | 1.0.0-rc03-Unknown | {"lastSuccessReportTabletsTime":"2022-06-29 20:21:23","lastStreamLoadTime":-1,"isQueryDisabled":false,"isLoadDisabled":false} |
  9. | 11003 | default_cluster | 192.168.123.6 | node3 | 9050 | 9060 | 8040 | 8060 | 2022-06-29 20:00:42 | 2022-06-29 20:22:21 | true | false | false | 0 | 0.000 | 36.686 GB | 39.246 GB | 6.52 % | 6.52 % | {"location" : "default"} | | 1.0.0-rc03-Unknown | {"lastSuccessReportTabletsTime":"2022-06-29 20:21:31","lastStreamLoadTime":-1,"isQueryDisabled":false,"isLoadDisabled":false} |
  10. +-----------+-----------------+---------------+----------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------------------+-----------+------------------+---------------+---------------+---------+----------------+--------------------------+--------------------------------------------------------------------+--------------------+-------------------------------------------------------------------------------------------------------------------------------+
  11. 4 rows in set (0.00 sec)

2.3.9 (可选)部署FS_Broker

Broker 以插件的形式,独立于Doris部署。如果需要从给第三方存储系统中导入数据,需要部署相应的Broker。默认提供了读取HDFS、百度云BOS及Amazon S3 的fs_broker.
fs_broker 是无状态的,建议每一个FE和BE节点都部署一个Broker

  1. 分发Broker到其他节点

    1. # 同步Broker到node1
    2. [hadoop@client ~]$ scp -r /data/apps/doris/apache_hdfs_broker node1@hadoop:/data/apps/doris/
    3. # 同步Broker到node2
    4. [hadoop@client ~]$ scp -r /data/apps/doris/apache_hdfs_broker node2@hadoop:/data/apps/doris/
    5. # 同步Broker到node3
    6. [hadoop@client ~]$ scp -r /data/apps/doris/apache_hdfs_broker node3@hadoop:/data/apps/doris/
  2. 启动Broker

    1. [hadoop@node1 apache_hdfs_broker]$ sudo bin/start_broker.sh --daemon
    2. [hadoop@node2 apache_hdfs_broker]$ sudo bin/start_broker.sh --daemon
    3. [hadoop@node3 apache_hdfs_broker]$ sudo bin/start_broker.sh --daemon
  3. 添加Broker到FE

    1. mysql> alter system add broker data_barker 'node1:8000','node2:8000','node3:8000';
    2. Query OK, 0 rows affected (0.02 sec)

    注意:

  • data_broker: 自定义的名字,可以随便定义
  • 如果有多个broker进行添加,可以一次进行全部添加,使用逗号隔开
  • 端口号使用默认的8000,如果需要修改,则在conf/apache_hdfs_broker.conf中进行修改
  1. 查看Broker的状态

    1. mysql> show proc '/brokers';
    2. +-------------+---------------+----------+------+-------+---------------------+---------------------+--------+
    3. | Name | IP | HostName | Port | Alive | LastStartTime | LastUpdateTime | ErrMsg |
    4. +-------------+---------------+----------+------+-------+---------------------+---------------------+--------+
    5. | data_barker | 192.168.123.4 | node1 | 8000 | true | 2022-06-29 20:48:02 | 2022-06-29 20:48:17 | |
    6. | data_barker | 192.168.123.6 | node3 | 8000 | true | 2022-06-29 20:48:02 | 2022-06-29 20:48:17 | |
    7. | data_barker | 192.168.123.5 | node2 | 8000 | true | 2022-06-29 20:48:02 | 2022-06-29 20:48:17 | |
    8. +-------------+---------------+----------+------+-------+---------------------+---------------------+--------+
    9. 3 rows in set (0.01 sec)

    2.4 节点扩容

    2.4.1 FE的扩容及缩容

    2.4.1.1 扩容

  2. 登录客户端 ```shell [hadoop@client apps]$ mysql -h client -uroot -P 9030 -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 Server version: 5.1.0 Doris version 1.0.0-rc03-Unknown

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

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

mysql>

  1. 2. 查看FE节点
  2. ```shell
  3. mysql> show proc '/frontends';
  4. +----------------------------------+---------------+----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+--------------------+------------------+
  5. | Name | IP | HostName | EditLogPort | HttpPort | QueryPort | RpcPort | Role | IsMaster | ClusterId | Join | Alive | ReplayedJournalId | LastHeartbeat | IsHelper | ErrMsg | Version | CurrentConnected |
  6. +----------------------------------+---------------+----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+--------------------+------------------+
  7. | 192.168.123.3_9010_1656330420319 | 192.168.123.3 | client | 9010 | 8030 | 9030 | 9020 | FOLLOWER | true | 879929446 | true | true | 4611 | 2022-06-29 20:58:08 | true | | 1.0.0-rc03-Unknown | Yes |
  8. +----------------------------------+---------------+----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+--------------------+------------------+
  9. 1 row in set (0.02 sec)

或者

  1. mysql> show proc '/frontends'\G;
  2. *************************** 1. row ***************************
  3. Name: 192.168.123.3_9010_1656330420319
  4. IP: 192.168.123.3
  5. HostName: client
  6. EditLogPort: 9010
  7. HttpPort: 8030
  8. QueryPort: 9030
  9. RpcPort: 9020
  10. Role: FOLLOWER
  11. IsMaster: true
  12. ClusterId: 879929446
  13. Join: true
  14. Alive: true
  15. ReplayedJournalId: 4622
  16. LastHeartbeat: 2022-06-29 20:58:43
  17. IsHelper: true
  18. ErrMsg:
  19. Version: 1.0.0-rc03-Unknown
  20. CurrentConnected: Yes
  21. 1 row in set (0.01 sec)
  22. ERROR:
  23. No query specified
  1. 分发BE到其他各个节点

参照 【2.3.6】步骤1

  1. 修改IP绑定地址

参照 【2.3.6】步骤2

  1. 客户端添加新节点到FE并指定角色 ```shell mysql> alter system add follower ‘node1:9010’; Query OK, 0 rows affected (0.00 sec)

mysql> alter system add observer ‘node3:9010’; Query OK, 0 rows affected (0.00 sec)

  1. 6. 分别启动新加的followerobserver
  2. 注意:在扩容之后,第一次启动新结点的followerobserver的时候,启动命令中需要添加 `--helper`参数,往后,再次启动则不需要
  3. ```shell
  4. [hadoop@node1 fe]$ sudo bin/start_fe.sh --helper client:9010 --daemon
  5. [hadoop@node3 fe]$ sudo bin/start_fe.sh --helper client:9010 --daemon
  1. 查看新节点的启动状态
    1. mysql> show proc '/frontends';
    2. +----------------------------------+---------------+----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+--------------------+------------------+
    3. | Name | IP | HostName | EditLogPort | HttpPort | QueryPort | RpcPort | Role | IsMaster | ClusterId | Join | Alive | ReplayedJournalId | LastHeartbeat | IsHelper | ErrMsg | Version | CurrentConnected |
    4. +----------------------------------+---------------+----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+--------------------+------------------+
    5. | 192.168.123.3_9010_1656330420319 | 192.168.123.3 | client | 9010 | 8030 | 9030 | 9020 | FOLLOWER | true | 879929446 | true | true | 5149 | 2022-06-29 21:27:54 | true | | 1.0.0-rc03-Unknown | Yes |
    6. | 192.168.123.6_9010_1656508406497 | 192.168.123.6 | node3 | 9010 | 8030 | 9030 | 9020 | OBSERVER | false | 879929446 | true | true | 5147 | 2022-06-29 21:27:54 | false | | 1.0.0-rc03-Unknown | No |
    7. | 192.168.123.4_9010_1656508395483 | 192.168.123.4 | node1 | 9010 | 8030 | 9030 | 9020 | FOLLOWER | false | 879929446 | true | true | 5147 | 2022-06-29 21:27:54 | true | | 1.0.0-rc03-Unknown | No |
    8. +----------------------------------+---------------+----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+--------------------+------------------+
    9. 3 rows in set (0.02 sec)
    或 ```shell mysql> show proc ‘/frontends’\G; * 1. row *
    1. Name: 192.168.123.3_9010_1656330420319
    2. IP: 192.168.123.3
    3. HostName: client
    EditLogPort: 9010
    1. HttpPort: 8030
    2. QueryPort: 9030
    3. RpcPort: 9020
    4. Role: FOLLOWER
    5. IsMaster: true
    6. ClusterId: 879929446
    7. Join: true
    8. Alive: true
    ReplayedJournalId: 5110 LastHeartbeat: 2022-06-29 21:25:44
    1. IsHelper: true
    2. ErrMsg:
    3. Version: 1.0.0-rc03-Unknown
    CurrentConnected: Yes * 2. row *
    1. Name: 192.168.123.6_9010_1656508406497
    2. IP: 192.168.123.6
    3. HostName: node3
    EditLogPort: 9010
    1. HttpPort: 8030
    2. QueryPort: 9030
    3. RpcPort: 9020
    4. Role: OBSERVER
    5. IsMaster: false
    6. ClusterId: 879929446
    7. Join: true
    8. Alive: true
    ReplayedJournalId: 5108 LastHeartbeat: 2022-06-29 21:25:44
    1. IsHelper: false
    2. ErrMsg:
    3. Version: 1.0.0-rc03-Unknown
    CurrentConnected: No * 3. row *
    1. Name: 192.168.123.4_9010_1656508395483
    2. IP: 192.168.123.4
    3. HostName: node1
    EditLogPort: 9010
    1. HttpPort: 8030
    2. QueryPort: 9030
    3. RpcPort: 9020
    4. Role: FOLLOWER
    5. IsMaster: false
    6. ClusterId: 879929446
    7. Join: true
    8. Alive: true
    ReplayedJournalId: 5108 LastHeartbeat: 2022-06-29 21:25:44
    1. IsHelper: true
    2. ErrMsg:
    3. Version: 1.0.0-rc03-Unknown
    CurrentConnected: No 3 rows in set (0.03 sec)

ERROR: No query specified

  1. 或<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/25614592/1656509775885-01b595d5-fa3d-464f-a665-30157142eb20.png#clientId=u67cb2e24-897b-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=519&id=u59e66bc1&margin=%5Bobject%20Object%5D&name=image.png&originHeight=519&originWidth=1900&originalType=binary&ratio=1&rotation=0&showTitle=false&size=55509&status=done&style=none&taskId=u7d93219c-61af-47c7-9699-d28d2a86bdc&title=&width=1900)
  2. <a name="EITdh"></a>
  3. #### 2.4.1.2 缩容
  4. 1. 登录客户端
  5. 1. 删除FE
  6. ```shell
  7. # 删除follow
  8. mysql> alter system drop follower 'node1:9010';
  9. Query OK, 0 rows affected (0.00 sec)
  10. # 删除observer
  11. mysql> alter system drop observer 'node3:9010';
  12. Query OK, 0 rows affected (0.00 sec)
  1. 停止对应的节点的服务

    1. [hadoop@node1 fe]$ sudo bin/stop_fe.sh
    2. [hadoop@node3 fe]$ sudo bin/stop_fe.sh
  2. 验证是否删除成功

    1. mysql> show proc '/frontends';
    2. +----------------------------------+---------------+----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+--------------------+------------------+
    3. | Name | IP | HostName | EditLogPort | HttpPort | QueryPort | RpcPort | Role | IsMaster | ClusterId | Join | Alive | ReplayedJournalId | LastHeartbeat | IsHelper | ErrMsg | Version | CurrentConnected |
    4. +----------------------------------+---------------+----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+--------------------+------------------+
    5. | 192.168.123.3_9010_1656330420319 | 192.168.123.3 | client | 9010 | 8030 | 9030 | 9020 | FOLLOWER | true | 879929446 | true | true | 5440 | 2022-06-29 21:44:00 | true | | 1.0.0-rc03-Unknown | Yes |
    6. +----------------------------------+---------------+----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+--------------------+------------------+
    7. 1 row in set (0.02 sec)

    2.4.2 BE的扩容及缩容

    2.4.2.1 扩容

  3. 登录客户端

  4. 修改新节点BE配置

参照 【2.2.5】

  1. 增加BE

    1. mysql> alter system add backend 'node4:9050';
    2. Query OK, 0 rows affected (0.02 sec)
  2. 启动新节点BE

    1. [hadoop@node4 be]$ sudo bin/start_be.sh --daemon

    2.4.2.2 缩容

  3. 登录客户端

  4. 执行删除
  • 方式一(不推荐):

注意:这种方式会直接删除BE,并且其上的数据将不能恢复。

  1. mysql> alter system drop backend 'node4:9050';
  2. Query OK, 0 rows affected (0.02 sec)
  • 方式二(推荐):

    1. mysql> alter system decommission backend 'node4:9050';
    2. Query OK, 0 rows affected (0.02 sec)
    1. 该命令用于安全删除BE节点。该命令下发之后,Doris会尝试将该BE的数据向其他BE节点迁移,当所有的数据迁移完成之后,Doris才会自动删除该节点
    2. 该命令是一个异步操作,执行之后,可以通过 show proc '/backends';看到BE节点的isDecommission状态为true,表示该节点正在进行下线。
    3. 该命令不一定执行成功,比如剩余BE的存储空间不足以容纳即将下线的BE上的数据,或者剩余机器数量不满足最小副本数时,该命令都无法完成,并且BE会一直处于isDecommission为true的状态
    4. decommission的进度,可以通过 show proc '/backends';中的TableNum查看,如果正在执行,TableNum将不断的在减少
    5. 该操作可以通过如下命令取消:
      1. mysql> cancel decommission backend 'node4:9050';
      取消之后,该BE上的数据将维持当前剩余的数据量。后续Doris会进行负载均衡

      2.4.3 Broker的扩容及缩容

      2.4.3.1 扩容

  1. 登录客户端
  2. 添加Broker

参照 【2.3.9】步骤3

2.4.3.2 缩容

  1. 登录客户端
  2. 执行删除
    1. # 删除的那个的broler,data_broker为要删除的broker的名称
    2. mysql> alter system drop broker data_broker "node1:8000";
    3. # 删除素有的broker
    4. mysql> alter system drop all broker data_broker;

    三、Doris升级

    ```shell
  3. doris升级按照官方升级步骤来就行了,
  4. 升级之前先备份元数据(这个很重要,这个很重要,这个很重要)
  5. 官方文档没有说升级之后,要讲备份的元数据在拷贝回去覆盖,记住升级了之后千万别将备份的元数据在拷贝覆盖回去(千万别,千万别,千万别)
  6. 就算你不知道,覆盖了回去,别慌,我告你解决方案
    • 首先使用你之前的FE版本,将你现在的fe.conf拷贝过来(注意修改meta_dir)
    • 然后将你备份的之前image文件夹拷贝过来到你刚刚部署的旧版本FE的doris-meta目录下
    • 然后启动FE,观察日志是否启动成功,理论上这个没任何问题
    • 问题解决 ```