Doris部署
1.部署架构
主机名称 | 部署服务 |
---|---|
hb1 | FE、BE |
hb2 | FE((FOLLOWER)、BE |
hb3 | FE(LEADER)、BE |
注意事项:
- FE 的磁盘空间主要用于存储元数据,包括日志和 image。通常从几百 MB 到几个GB 不等。
- BE 的磁盘空间主要用于存放用户数据,总磁盘空间按用户总数据量* 3(3 副本)计算,然后再预留额外 40%的空间用作后台 compaction 以及一些中间数据的存放。
- 一台机器上可以部署多个 BE 实例,但是只能部署一个 FE。如果需要 3 副本数据,那么至少需要 3 台机器各部署一个 BE 实例(而不是 1 台机器部署 3 个 BE 实例)。多个 FE 所在服务器的时钟必须保持一致(允许最多 5 秒的时钟偏差)
- 测试环境也可以仅适用一个 BE 进行测试。实际生产环境,BE 实例数量直接决定了整体查询延迟
- 所有部署节点关闭 Swap。
- FE 节点数据至少为 1(1 个 Follower)。当部署 1 个 Follower 和 1 个 Observer 时,可以实现读高可用。当部署 3 个 Follower 时,可以实现读写高可用(HA)。
- Follower 的数量必须为奇数,Observer 数量随意。
- 根据以往经验,当集群可用性要求很高时(比如提供在线业务),可以部署 3 个Follower 和 1-3 个 Observer。如果是离线业务,议部署 1 个 Follower 和 1-3 个 Observer。
- Broker 是用于访问外部数据源(如 HDFS)的进程。通常,在每台机器上部署一个 broker 实例即可。
部署包下载
# 下载 Doris 二进制安装包
wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-2.0.3-bin-x64.tar.gz
2.部署FE(Frontend)
前置准备
1.设置系统最大打开文件句柄数
vim /etc/security/limits.conf
* soft nofile 655350
* hard nofile 655350
2.禁用交换分区
临时关闭:swapoff -a
永久生效:vim /etc/fstab
注释掉带swap分区
3.关闭透明大页
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
4.配置max_map_count
编辑/etc/sysctl.conf
vm.max_map_count=2000000
使更改生效:sudo sysctl -p
部署
1.解压tar包
[jiang@hb2 soft]$ tar -zxf apache-doris-2.0.3-bin-x64.tar.gz -C /opt/module/
2.进入fe配置文件目录
[jiang@hb2 fe]$ cd /opt/module/apache-doris-2.0.3-bin-x64/fe/conf/
[jiang@hb2 conf]$ ll
total 8
-rw-r--r--. 1 jiang jiang 3155 Dec 10 2023 fe.conf
-rw-r--r--. 1 jiang jiang 2480 Dec 10 2023 ldap.conf
drwxr-xr-x. 2 jiang jiang 6 Dec 10 2023 ssl
[jiang@hb2 conf]$
3.修改fe配置信息
vim fe.conf
#设置JAVA安装目录
JAVA_HOME=/opt/module/jdk1.8.0_181
#设置元数据存储目录 建议存储到SSD盘符
meta_dir = /opt/module/apache-doris-2.0.3-bin-x64/fe/doris-meta
#设置FE IP地址,如果当前服务器有多个IP,一定需要设置
priority_networks = 192.168.100.132/24
4.启动fe
[jiang@hb2 fe]$ pwd
/opt/module/apache-doris-2.0.3-bin-x64/fe
[jiang@hb2 fe]$ bin/start_fe.sh --daemon
5.验证fe是否部署成功
[jiang@hb2 fe]$ mysql -uroot -P9030 -h hb2
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.99 Doris version doris-2.0.3-rc06-37d31a5
Copyright (c) 2000, 2019, 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>
因为FE 上的 mysql server 端口是9030
注意:默认部署完FE后,会提供root用户,默认没有密码可以进行设置。
默认 root 无密码,通过以下命令修改 root 密码。
SET PASSWORD FOR 'root' = PASSWORD('root');
3.部署BE(Backend)
1…进入be配置文件目录
[jiang@hb2 conf]$ cd /opt/module/apache-doris-2.0.3-bin-x64/be/conf/
[jiang@hb2 conf]$ ll
total 16
-rw-r--r--. 1 jiang jiang 1320 Dec 10 2023 asan_suppr.conf
-rw-r--r--. 1 jiang jiang 3857 Dec 10 2023 be.conf
-rw-r--r--. 1 jiang jiang 820 Dec 10 2023 lsan_suppr.conf
-rw-r--r--. 1 jiang jiang 1529 Dec 10 2023 odbcinst.ini
[jiang@hb2 conf]$
2.修改be配置文件
vim be.conf
#配置JAVA安装目录
JAVA_HOME=/opt/module/jdk1.8.0_181
#配置BE IP地址,如果当前服务器有多个IP,一定需要设置
priority_networks = 192.168.100.132/24
#配置BE数据存储目录
storage_root_path = /opt/module/apache-doris-2.0.3-bin-x64/be/data1,80;/opt/module/apache-doris-2.0.3-bin-x64/be/data2
配置说明:
storage_root_path:BE数据存储目录,如果是多路存储目录用分号(;)隔离开,如果需要预留空间在路径后面跟着比例例如A,30 说明A路径下使用存储30GB,如果不指定默认使用全部存储资源。
3.启动BE
/opt/module/apache-doris-2.0.3-bin-x64/be
[jiang@hb2 be]$ bin/start_be.sh --daemon
[jiang@hb2 be]$ jps
2657 DorisFE
5336 Jps
3549 DorisBE
4.FE管理BE
1.mysql client进入FE
[jiang@hb2 be]$ mysql -uroot -P9030 -hhb2
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.99 Doris version doris-2.0.3-rc06-37d31a5
Copyright (c) 2000, 2019, 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.添加BE
mysql> ALTER SYSTEM ADD BACKEND "hb2:9050";
Query OK, 0 rows affected (0.04 sec)
#查看BE是否添加成功
mysql> show proc '/backends'\G
*************************** 1. row ***************************
BackendId: 10173
Host: hb2
HeartbeatPort: 9050
BePort: 9060
HttpPort: 8040
BrpcPort: 8060
LastStartTime: 2024-11-26 20:42:48
LastHeartbeat: 2024-11-26 20:45:33
Alive: true
SystemDecommissioned: false
TabletNum: 14
DataUsedCapacity: 0.000
TrashUsedCapcacity: 0.000
AvailCapacity: 12.144 GB
TotalCapacity: 42.971 GB
UsedPct: 71.74 %
MaxDiskUsedPct: 71.74 %
RemoteUsedCapacity: 0.000
Tag: {"location" : "default"}
ErrMsg:
Version: doris-2.0.3-rc06-37d31a5
Status: {"lastSuccessReportTabletsTime":"2024-11-26 20:45:17","lastStreamLoadTime":-1,"isQueryDisabled":false,"isLoadDisabled":false}
HeartbeatFailureCounter: 0
NodeRole: mix
其他BE部署跟上面一致
ALTER SYSTEM ADD BACKEND "hb3:9050";
ALTER SYSTEM ADD BACKEND "hb1:9050";
扩展:部署完FE后,可以通过FE(leader)的Web端口观测Doris集群情况:
访问ip:8030, 账户root,密码:默认无密码
查看FE列表
查看BE列表
BE删除
(1)DROP方式删除BE节点(不建议)
ALTER SYSTEM DROP BACKEND "be_host:be_heartbeat_service_port";
#例如
ALTER SYSTEM DROP BACKEND "hb1:9050"
注意:DROP BACKEND 会直接删除该 BE,并且其上的数据将不能再恢复!!!所以我们强烈不推荐使用 DROP BACKEND 这种方式删除 BE 节点。当你使用这个语句时,有对应的防误操作提示。
(2)DECOMMISSION 方式删除 BE 节点(推荐)
ALTER SYSTEM DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";
#例如
ALTER SYSTEM DECOMMISSION BACKEND "hb1:9050"
- 该命令用于安全删除 BE 节点。命令下发后,Doris 会尝试将该 BE 上的数据向其他 BE 节点迁移,当所有数据都迁移完成后,Doris 会自动删除该节点。
- 该命令是一个异步操作。执行后,可以通过 SHOW PROC ‘/backends’; 看到该 BE节点的 isDecommission 状态为 true。表示该节点正在进行下线。
- 该命令不一定执行成功。比如剩余 BE 存储空间不足以容纳下线 BE 上的数据,或者剩余机器数量不满足最小副本数时,该命令都无法完成,并且 BE 会一直处于isDecommission 为 true 的状态。
- DECOMMISSION 的进度,可以通过 SHOW PROC ‘/backends’; 中的 TabletNum 查看,如果正在进行,TabletNum 将不断减少。
- 该操作可以通过如下命令取消:
CANCEL DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";
#例如
CANCEL DECOMMISSION BACKEND "hb1:9050"
取消后,该 BE 上的数据将维持当前剩余的数据量。后续 Doris 重新进行负载均衡。
5.FE扩容和缩容
FE 分为 Leader,Follower 和 Observer 三种角色。默认一个集群,只能有一个 Leader,可以有多个 Follower 和 Observer。其中 Leader 和 Follower 组成一个 Paxos 选择组,如果Leader 宕机,则剩下的 Follower 会自动选出新的 Leader,保证写入高可用。Observer 同步Leader 的数据,但是不参加选举。
如果只部署一个 FE,则 FE 默认就是 Leader。在此基础上,可以添加若干 Follower 和Observer。
ALTER SYSTEM ADD FOLLOWER "hb3:9010";
ALTER SYSTEM ADD OBSERVER "hb1:9010";
(1)增加FE节点,根据上面FE部署过程部署完FE。
(2)启动FE
第一次启动时,启动命令需要添加参–helper leader 主机: edit_log_port:
bin/start_fe.sh --helper hb2:9010 --daemon
(3)登录mysql-client查看
mysql> show proc '/frontends' \G
*************************** 1. row ***************************
Name: fe_6959f5ef_90f8_4434_9722_6163165af5a1
Host: 192.168.100.133
EditLogPort: 9010
HttpPort: 8030
QueryPort: 9030
RpcPort: 9020
Role: FOLLOWER
IsMaster: false
ClusterId: 896436032
Join: true
Alive: true
ReplayedJournalId: 1970
LastHeartbeat: 2024-11-27 14:48:37
IsHelper: true
ErrMsg:
Version: doris-2.0.3-rc06-37d31a5
CurrentConnected: No
*************************** 2. row ***************************
Name: fe_84262695_c78c_41f6_b913_8898a12afe9a
Host: 192.168.100.132
EditLogPort: 9010
HttpPort: 8030
QueryPort: 9030
RpcPort: 9020
Role: FOLLOWER
IsMaster: true
ClusterId: 896436032
Join: true
Alive: true
ReplayedJournalId: 1971
LastHeartbeat: 2024-11-27 14:48:37
IsHelper: true
ErrMsg:
Version: doris-2.0.3-rc06-37d31a5
CurrentConnected: Yes
2 rows in set (0.03 sec)
(4)登录web管理界面查看FE添加情况
扩展:如何删除FE的Follwer和Observer
ALTER SYSTEM DROP FOLLOWER "fe_host:edit_log_port";
ALTER SYSTEM DROP OBSERVER "fe_host:edit_log_port";
注意:删除 Follower FE 时,确保最终剩余的 Follower(包括 Leader)节点为奇数。
标签:jiang,doris,集群,FE,conf,Apache,hb2,Doris,fe From: https://blog.csdn.net/qq_54375572/article/details/144068911