- 一、软件下载
- 二、安装部署
- 第一次安装之后是客户端登录,默认是账号为root,密码为空
- Default value is ${DORIS_HOME}/doris-meta
- meta_dir = ${DORIS_HOME}/doris-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
- client登录FE
- 第一次安装之后是客户端登录,默认是账号为root,密码为空
- 2.4 节点扩容
- 三、Doris升级
系统版本: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服务
临时关闭
[hadoop@client conf]$ getenforce # 查看selinux的状态
Enforcing
[hadoop@client conf]$ sudo setenforce 0 # 临时关闭selinux
[hadoop@client conf]$ getenforce
Permissive
永久关闭
[hadoop@client conf]$ sudo vim /etc/selinux/config # 永久关闭selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
2.2.2 检查并关闭防火墙
关闭防火墙 ```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
└─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.
2. 禁止防火墙开机自启动
```shell
[hadoop@client conf]$ sudo systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
2.2.3 修改系统句柄数
[hadoop@client doris]$ sudo vim /etc/security/limits.conf
# 添加以下两行信息
* soft nofile 65536
* hard nofile 65536
# 保存退出并重启服务器
[hadoop@client doris]$ ulimit -n
65536
2.2.4 配置FE
[hadoop@client doris]$ cd fe/conf/
[hadoop@client conf]$ vim fe.conf
# 取消priority_networks的注释,修改参数
priority_networks = 127.0.0.0/24
# 保存退出
2.2.5 配置BE
[hadoop@client doris]$ cd /data/apps/doris
[hadoop@client doris]$ cd be/conf/
[hadoop@client conf]$ vim be.conf
# 取消priority_networks的注释,修改参数
priority_networks = 127.0.0.0/24
# 保存退出
2.2.6 配置环境变量
[hadoop@client conf]$ sudo vim /etc/profile
# 末尾增加如下两行信息
DORIS_HOME=/data/apps/doris
export PATH=$PATH:$JAVA_HOME/bin:$DORIS_HOME/fe/bin:$DORIS_HOME/be/bin
# 保存退出
2.2.7 启动FE及验证
启动FE
[hadoop@client doris]$ start_fe.sh --daemon
检查进程是否正常启动
[hadoop@client jdk1.8.0_331]$ bin/jps
7814 Jps
6271 PaloFe
# 说明进程启动成功
访问WenUI界面,登录,默认账号为root,密码为空
访问地址:[http://192.168.123.3:8030](http://192.168.123.3:8030/Log)
- 也可以通过浏览器请求
[http://192.168.123.3:8030/api/bootstrap](http://192.168.123.3:8030/api/bootstrap)
查看返回信息
- 注意
FE进程启动之后,会首先加载元数据,根据FE角色的而不同,在日志中会看到 transfer from UNKNOWN to MASTER/FOLLOWER/OBSERVER ,最终会看到 thrift server started ⽇志,并且可以通过 mysql 客户端连接到 FE,则 表示 FE 启动成功
其次,如果在fe.log中看不到启动失败的信息,或许可以在fe.out中可以看到。
2.2.8 启动BE并验证
启动BE
[hadoop@client doris]$ start_be.sh --daemon
检查BE进程是否正常启动
[hadoop@client doris]$ ps -ef | grep palo_be
hadoop 6928 1 33 20:30 pts/0 00:15:25 /data/apps/doris/be/lib/palo_be
注意
- BE进程启动之后,如果之前有数据,则可能又数分钟不等的数据索引加载时间
- 如果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的连通性
- 如果BE已经被加入到集群,则日志中每隔5秒滚动来自FE的心跳日志:get heartbeat, host: xx.xx.xx.xx, port: 9020, cluster id: xxxxxx ,表示⼼跳正常
- 其次,⽇志中应该每隔 10 秒滚动 finish report task success. return code: 0 的字样,表示 BE 向 FE 的通信正常
- 同时,如果有数据查询,应该能看到不停滚动的⽇志,并且有 execute time is xxx ⽇志,表示 BE 启动成功,并且查询正常。
- 也可以通过如下连接查看是否启动成功: http://be_host:be_http_port/api/health 如果返回: {“status”: “OK”,”msg”: “To Be Added”} 则表示启动成功,其余情况,则可能存在问题
- 注:如果在 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)
<a name="UwthX"></a>
### 2.2.10 修改doris的root账号密码
```shell
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服务
- 配置客户机(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
- 注意:
- 生产环境强烈建议将元数据(meta_dir)路径单独指定目录存放,最好是单独的磁盘(如果是SSD最好)
- 如果机器有多个ip,比如内网和外网,虚拟机docker等,需要进行ip绑定,才能正确识别
- JAVA_OPTS默认java最大堆内存是4G,建议生产环境调整到8G以上
2. 启动客户机(client)FE
```shell
# 使用守护进行启动
[hadoop@client fe]$ bin/start_fe.sh --daemon
2.3.6 同步FE到其他节点
同步FE到其他节点
# 同步FE到node1
[hadoop@client ~]$ scp -r /data/apps/doris/fe node1@hadoop:/data/apps/doris/
# 同步FE到node2
[hadoop@client ~]$ scp -r /data/apps/doris/fe node2@hadoop:/data/apps/doris/
# 同步FE到node3
[hadoop@client ~]$ scp -r /data/apps/doris/fe node3@hadoop:/data/apps/doris/
在其他结点上修改FE的ip地址绑定
[hadoop@node1 ~]$ vim /data/apps/doris/be/conf/be.conf
priority_networks = 192.168.123.4/24
[hadoop@node2 ~]$ vim /data/apps/doris/be/conf/be.conf
priority_networks = 192.168.123.5/24
[hadoop@node3 ~]$ vim /data/apps/doris/be/conf/be.conf
priority_networks = 192.168.123.6/24
启动FE
[hadoop@node1 fe]$ bin/start_be.sh --daemon
[hadoop@node2 fe]$ bin/start_be.sh --daemon
[hadoop@node3 fe]$ bin/start_be.sh --daemon
添加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)
<a name="zawjw"></a>
### 2.3.7 配置并启动BE
1. 客户端配置BE
```shell
[hadoop@client ~]$ vim /data/apps/doris/be/conf/be.conf
# 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 = 10.10.10.0/24;192.168.0.0/16
priority_networks = 192.168.123.3/24
# data root path, separate by ';'
# you can specify the storage medium of each root path, HDD or SSD
# you can add capacity limit at the end of each root path, seperate by ','
# eg:
# storage_root_path = /home/disk1/doris.HDD,50;/home/disk2/doris.SSD,1;/home/disk2/doris
# /home/disk1/doris.HDD, capacity limit is 50GB, HDD;
# /home/disk2/doris.SSD, capacity limit is 1GB, SSD;
# /home/disk2/doris, capacity limit is disk capacity, HDD(default)
# 这里指定数据存放的额目录,并可以指定磁盘类型(HDD),并且可以限制该磁盘存储的上限大小为50G,该目录需要手动创建好
storage_root_path = /data/apps/doris_data
分发BE到其他节点
# 同步FE到node1
[hadoop@client ~]$ scp -r /data/apps/doris/be node1@hadoop:/data/apps/doris/
# 同步FE到node2
[hadoop@client ~]$ scp -r /data/apps/doris/be node2@hadoop:/data/apps/doris/
# 同步FE到node3
[hadoop@client ~]$ scp -r /data/apps/doris/be node3@hadoop:/data/apps/doris/
分别在三台节点上创建数据目录
# 同步FE到node1
[hadoop@node1 ~]$ mkdir /data/apps/doris_data
# 同步FE到node2
[hadoop@node2 ~]$ mkdir /data/apps/doris_data
# 同步FE到node3
[hadoop@node3 ~]$ mkdir /data/apps/doris_data
需要分别修改三台节点的配置文件中绑定的ip地址
[hadoop@node1 ~]$ vim /data/apps/doris/be/conf/be.conf
priority_networks = 192.168.123.4/24
[hadoop@node2 ~]$ vim /data/apps/doris/be/conf/be.conf
priority_networks = 192.168.123.5/24
[hadoop@node3 ~]$ vim /data/apps/doris/be/conf/be.conf
priority_networks = 192.168.123.6/24
分别在各个节点启动be
[hadoop@node1 be]$ sudo bin/start_be.sh --daemon
[hadoop@node2 be]$ sudo bin/start_be.sh --daemon
[hadoop@node3 be]$ sudo bin/start_be.sh --daemon
2.3.8 添加BE节点到FE
客户端登录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>
2. (可选)并修改密码
```shell
# 改密码修改之后,在Web UI上登录的时候,也将使用该密码进行登录
mysql> set password for 'root' = PASSWORD('123456')
- 注册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)
4. 查看BE的状态
```shell
mysql> show proc '/backends';
+-----------+-----------------+---------------+----------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------------------+-----------+------------------+---------------+---------------+---------+----------------+--------------------------+--------------------------------------------------------------------+--------------------+-------------------------------------------------------------------------------------------------------------------------------+
| BackendId | Cluster | IP | HostName | HeartbeatPort | BePort | HttpPort | BrpcPort | LastStartTime | LastHeartbeat | Alive | SystemDecommissioned | ClusterDecommissioned | TabletNum | DataUsedCapacity | AvailCapacity | TotalCapacity | UsedPct | MaxDiskUsedPct | Tag | ErrMsg | Version | Status |
+-----------+-----------------+---------------+----------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------------------+-----------+------------------+---------------+---------------+---------+----------------+--------------------------+--------------------------------------------------------------------+--------------------+-------------------------------------------------------------------------------------------------------------------------------+
| 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} |
| 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} |
| 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} |
+-----------+-----------------+---------------+----------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------------------+-----------+------------------+---------------+---------------+---------+----------------+--------------------------+--------------------------------------------------------------------+--------------------+-------------------------------------------------------------------------------------------------------------------------------+
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
分发Broker到其他节点
# 同步Broker到node1
[hadoop@client ~]$ scp -r /data/apps/doris/apache_hdfs_broker node1@hadoop:/data/apps/doris/
# 同步Broker到node2
[hadoop@client ~]$ scp -r /data/apps/doris/apache_hdfs_broker node2@hadoop:/data/apps/doris/
# 同步Broker到node3
[hadoop@client ~]$ scp -r /data/apps/doris/apache_hdfs_broker node3@hadoop:/data/apps/doris/
启动Broker
[hadoop@node1 apache_hdfs_broker]$ sudo bin/start_broker.sh --daemon
[hadoop@node2 apache_hdfs_broker]$ sudo bin/start_broker.sh --daemon
[hadoop@node3 apache_hdfs_broker]$ sudo bin/start_broker.sh --daemon
添加Broker到FE
mysql> alter system add broker data_barker 'node1:8000','node2:8000','node3:8000';
Query OK, 0 rows affected (0.02 sec)
注意:
- data_broker: 自定义的名字,可以随便定义
- 如果有多个broker进行添加,可以一次进行全部添加,使用逗号隔开
- 端口号使用默认的8000,如果需要修改,则在
conf/apache_hdfs_broker.conf
中进行修改
查看Broker的状态
mysql> show proc '/brokers';
+-------------+---------------+----------+------+-------+---------------------+---------------------+--------+
| Name | IP | HostName | Port | Alive | LastStartTime | LastUpdateTime | ErrMsg |
+-------------+---------------+----------+------+-------+---------------------+---------------------+--------+
| data_barker | 192.168.123.4 | node1 | 8000 | true | 2022-06-29 20:48:02 | 2022-06-29 20:48:17 | |
| data_barker | 192.168.123.6 | node3 | 8000 | true | 2022-06-29 20:48:02 | 2022-06-29 20:48:17 | |
| data_barker | 192.168.123.5 | node2 | 8000 | true | 2022-06-29 20:48:02 | 2022-06-29 20:48:17 | |
+-------------+---------------+----------+------+-------+---------------------+---------------------+--------+
3 rows in set (0.01 sec)
2.4 节点扩容
2.4.1 FE的扩容及缩容
2.4.1.1 扩容
登录客户端 ```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>
2. 查看FE节点
```shell
mysql> show proc '/frontends';
+----------------------------------+---------------+----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+--------------------+------------------+
| Name | IP | HostName | EditLogPort | HttpPort | QueryPort | RpcPort | Role | IsMaster | ClusterId | Join | Alive | ReplayedJournalId | LastHeartbeat | IsHelper | ErrMsg | Version | CurrentConnected |
+----------------------------------+---------------+----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+--------------------+------------------+
| 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 |
+----------------------------------+---------------+----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+--------------------+------------------+
1 row in set (0.02 sec)
或者
mysql> show proc '/frontends'\G;
*************************** 1. row ***************************
Name: 192.168.123.3_9010_1656330420319
IP: 192.168.123.3
HostName: client
EditLogPort: 9010
HttpPort: 8030
QueryPort: 9030
RpcPort: 9020
Role: FOLLOWER
IsMaster: true
ClusterId: 879929446
Join: true
Alive: true
ReplayedJournalId: 4622
LastHeartbeat: 2022-06-29 20:58:43
IsHelper: true
ErrMsg:
Version: 1.0.0-rc03-Unknown
CurrentConnected: Yes
1 row in set (0.01 sec)
ERROR:
No query specified
- 分发BE到其他各个节点
参照 【2.3.6】步骤1
- 修改IP绑定地址
参照 【2.3.6】步骤2
- 客户端添加新节点到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)
6. 分别启动新加的follower和observer
注意:在扩容之后,第一次启动新结点的follower和observer的时候,启动命令中需要添加 `--helper`参数,往后,再次启动则不需要
```shell
[hadoop@node1 fe]$ sudo bin/start_fe.sh --helper client:9010 --daemon
[hadoop@node3 fe]$ sudo bin/start_fe.sh --helper client:9010 --daemon
- 查看新节点的启动状态
或 ```shell mysql> show proc ‘/frontends’\G; * 1. row *mysql> show proc '/frontends';
+----------------------------------+---------------+----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+--------------------+------------------+
| Name | IP | HostName | EditLogPort | HttpPort | QueryPort | RpcPort | Role | IsMaster | ClusterId | Join | Alive | ReplayedJournalId | LastHeartbeat | IsHelper | ErrMsg | Version | CurrentConnected |
+----------------------------------+---------------+----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+--------------------+------------------+
| 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 |
| 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 |
| 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 |
+----------------------------------+---------------+----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+--------------------+------------------+
3 rows in set (0.02 sec)
EditLogPort: 9010Name: 192.168.123.3_9010_1656330420319
IP: 192.168.123.3
HostName: client
ReplayedJournalId: 5110 LastHeartbeat: 2022-06-29 21:25:44HttpPort: 8030
QueryPort: 9030
RpcPort: 9020
Role: FOLLOWER
IsMaster: true
ClusterId: 879929446
Join: true
Alive: true
CurrentConnected: Yes * 2. row *IsHelper: true
ErrMsg:
Version: 1.0.0-rc03-Unknown
EditLogPort: 9010Name: 192.168.123.6_9010_1656508406497
IP: 192.168.123.6
HostName: node3
ReplayedJournalId: 5108 LastHeartbeat: 2022-06-29 21:25:44HttpPort: 8030
QueryPort: 9030
RpcPort: 9020
Role: OBSERVER
IsMaster: false
ClusterId: 879929446
Join: true
Alive: true
CurrentConnected: No * 3. row *IsHelper: false
ErrMsg:
Version: 1.0.0-rc03-Unknown
EditLogPort: 9010Name: 192.168.123.4_9010_1656508395483
IP: 192.168.123.4
HostName: node1
ReplayedJournalId: 5108 LastHeartbeat: 2022-06-29 21:25:44HttpPort: 8030
QueryPort: 9030
RpcPort: 9020
Role: FOLLOWER
IsMaster: false
ClusterId: 879929446
Join: true
Alive: true
CurrentConnected: No 3 rows in set (0.03 sec)IsHelper: true
ErrMsg:
Version: 1.0.0-rc03-Unknown
ERROR: No query specified
或<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)
<a name="EITdh"></a>
#### 2.4.1.2 缩容
1. 登录客户端
1. 删除FE
```shell
# 删除follow
mysql> alter system drop follower 'node1:9010';
Query OK, 0 rows affected (0.00 sec)
# 删除observer
mysql> alter system drop observer 'node3:9010';
Query OK, 0 rows affected (0.00 sec)
停止对应的节点的服务
[hadoop@node1 fe]$ sudo bin/stop_fe.sh
[hadoop@node3 fe]$ sudo bin/stop_fe.sh
验证是否删除成功
mysql> show proc '/frontends';
+----------------------------------+---------------+----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+--------------------+------------------+
| Name | IP | HostName | EditLogPort | HttpPort | QueryPort | RpcPort | Role | IsMaster | ClusterId | Join | Alive | ReplayedJournalId | LastHeartbeat | IsHelper | ErrMsg | Version | CurrentConnected |
+----------------------------------+---------------+----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+--------------------+------------------+
| 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 |
+----------------------------------+---------------+----------+-------------+----------+-----------+---------+----------+----------+-----------+------+-------+-------------------+---------------------+----------+--------+--------------------+------------------+
1 row in set (0.02 sec)
2.4.2 BE的扩容及缩容
2.4.2.1 扩容
登录客户端
- 修改新节点BE配置
参照 【2.2.5】
增加BE
mysql> alter system add backend 'node4:9050';
Query OK, 0 rows affected (0.02 sec)
启动新节点BE
[hadoop@node4 be]$ sudo bin/start_be.sh --daemon
2.4.2.2 缩容
登录客户端
- 执行删除
- 方式一(不推荐):
注意:这种方式会直接删除BE,并且其上的数据将不能恢复。
mysql> alter system drop backend 'node4:9050';
Query OK, 0 rows affected (0.02 sec)
方式二(推荐):
mysql> alter system decommission backend 'node4:9050';
Query OK, 0 rows affected (0.02 sec)
- 该命令用于安全删除BE节点。该命令下发之后,Doris会尝试将该BE的数据向其他BE节点迁移,当所有的数据迁移完成之后,Doris才会自动删除该节点
- 该命令是一个异步操作,执行之后,可以通过
show proc '/backends';
看到BE节点的isDecommission状态为true,表示该节点正在进行下线。 - 该命令不一定执行成功,比如剩余BE的存储空间不足以容纳即将下线的BE上的数据,或者剩余机器数量不满足最小副本数时,该命令都无法完成,并且BE会一直处于isDecommission为true的状态
- decommission的进度,可以通过
show proc '/backends';
中的TableNum查看,如果正在执行,TableNum将不断的在减少 - 该操作可以通过如下命令取消:
取消之后,该BE上的数据将维持当前剩余的数据量。后续Doris会进行负载均衡mysql> cancel decommission backend 'node4:9050';
2.4.3 Broker的扩容及缩容
2.4.3.1 扩容
- 登录客户端
- 添加Broker
2.4.3.2 缩容
- 登录客户端
- 执行删除
# 删除的那个的broler,data_broker为要删除的broker的名称
mysql> alter system drop broker data_broker "node1:8000";
# 删除素有的broker
mysql> alter system drop all broker data_broker;
三、Doris升级
```shell - doris升级按照官方升级步骤来就行了,
- 升级之前先备份元数据(这个很重要,这个很重要,这个很重要)
- 官方文档没有说升级之后,要讲备份的元数据在拷贝回去覆盖,记住升级了之后千万别将备份的元数据在拷贝覆盖回去(千万别,千万别,千万别)
- 就算你不知道,覆盖了回去,别慌,我告你解决方案
- 首先使用你之前的FE版本,将你现在的fe.conf拷贝过来(注意修改meta_dir)
- 然后将你备份的之前image文件夹拷贝过来到你刚刚部署的旧版本FE的doris-meta目录下
- 然后启动FE,观察日志是否启动成功,理论上这个没任何问题
- 问题解决 ```