1.doris简介
doris概述
Apache Doris 是现代化的 MPP(Massively Parallel Processing 大规模并行处理)框架分析性数据库,有效支持实时数据分析,分布式架构简单,易于维护,支持10PB级别的超大数据集
Doris架构
FE (Frontend) BE(Backend),不依赖其他组件方便扩展,FE BE都可以线性拓展
- FE : 存储、维护集群元数据;负责接收、解析查询请求,规划查询计划,调度查询执行
- Leader 和 Follower:主要是用来达到元数据的高可用
- Observer:用来扩展查询节点,同时起到元数据备份的作用。集群压力非常大的情况下,需要去扩展整个查询的能力,那么可以加 observer 的节点。observer 不参与任何的写入,只参与读取
- BE:负责物理数据的存储和计算,根据FE生成的查询计划进行分布式查询。BE保证数据可靠性,可以动态创建多个副本
- MySQL Client: 支持ODBC/JDBC和MySQL客户端都可以访问FE
- Broker:独立的无状态进程。封装了文件系统接口,提供 Doris 读取远端存储系统中文件的能力,包括 HDFS,S3,BOS
安装部署
参考官网https://doris.apache.org/zh-CN/docs/get-starting/quick-start/
部署FE
-
cd apache-doris-x.x.x/fe
-
修改conf/fe.conf 修改priority_networks
及
meta_dir(默认是在你的Doris FE 安装目录下的 doris-meta) 分别表示绑定的IP网段和元数据存放目录priority_networks=172.23.16.0/24 meta_dir=/path/your/doris-meta
-
启动./bin/start_fe.sh --daemon
-
查看运行状态 curl http://127.0.0.1:8030/api/bootstrap 如果返回结果中带有
"msg":"success"
表示成功 -
也可以访问FE WEB页面 http://fe_ip:8300
-
通过MySQL客户端连接FE 账号root 密码默认为空
MySQL [(none)]> show frontends \G; *************************** 1. row *************************** Name: fe_26e5b2c1_053a_46ed_91eb_e1b1b3f8c4c8 Host: 192.168.150.128 EditLogPort: 9010 HttpPort: 8030 QueryPort: 9030 RpcPort: 9020 Role: FOLLOWER IsMaster: true ClusterId: 1026807980 Join: true Alive: true ReplayedJournalId: 1763 LastHeartbeat: 2024-01-08 10:10:32 IsHelper: true ErrMsg: Version: doris-2.0.3-rc06-37d31a5 CurrentConnected: Yes 1 row in set (0.06 sec)
部署BE
-
修改Linux最大打开文件数
-
修改配置 priority_networks=172.23.16.0/24 和 BE存储路径 storage_root_path=/home/disk1/doris.HDD,5 格式为 目录,限制大小G为单位,HDD/SSD【需要自己创建目录】
- storage_root_path配置可配置多个,多个路径之间使用英文状态的分号;
- /home/disk1/doris.HDD,50,表示存储限制为 50GB,HDD
- /home/disk2/doris.SSD,10,存储限制为 10GB,SSD
-
启动BE ./bin/start_be.sh --daemon
-
在FE中 将BE添加入doris集群 heartbeat_service_port默认9050
ALTER SYSTEM ADD BACKEND "be_host_ip:heartbeat_service_port";
-
查看BE状态
MySQL [(none)]> show backends\G; *************************** 1. row *************************** BackendId: 10894 Host: 192.168.150.128 HeartbeatPort: 9050 BePort: 9060 HttpPort: 8040 BrpcPort: 8060 LastStartTime: 2024-01-08 10:24:42 LastHeartbeat: 2024-01-08 10:26:47 Alive: true SystemDecommissioned: false TabletNum: 14 DataUsedCapacity: 0.000 TrashUsedCapcacity: 0.000 AvailCapacity: 16.519 GB TotalCapacity: 25.983 GB UsedPct: 36.42 % MaxDiskUsedPct: 36.42 % RemoteUsedCapacity: 0.000 Tag: {"location" : "default"} ErrMsg: Version: doris-2.0.3-rc06-37d31a5 Status: {"lastSuccessReportTabletsTime":"2024-01-08 10:25:54","lastStreamLoadTime":-1,"isQueryDisabled":false,"isLoadDisabled":false} HeartbeatFailureCounter: 0 NodeRole: mix 1 row in set (0.01 sec)
Broker部署【可选】
Broker 以插件的形式,独立于 Doris 部署。如果需要从第三方存储系统导入数据,需要部署相应的 Broker,默认提供了读取 HDFS、百度云 BOS 及 Amazon S3 的 fs_broker。fs_broker 是无状态的,建议每一个 FE 和 BE 节点都部署一个 Broker
-
cd /opt/doris/apache-doris-2.0.3-bin-x64/extensions/apache_hdfs_broker
-
启动./bin/start_broker.sh --daemon
-
FE中添加broker
# ALTER SYSTEM ADD BROKER broker_name 'broker_ip:broker_port【默认8000】' ALTER SYSTEM ADD BROKER broker1 "192.168.150.128:8000";
-
查看broker状态SHOW PROC “/brokers”;
MySQL [(none)]> SHOW PROC "/brokers"; +---------+-----------------+------+-------+---------------------+---------------------+--------+ | Name | Host | Port | Alive | LastStartTime | LastUpdateTime | ErrMsg | +---------+-----------------+------+-------+---------------------+---------------------+--------+ | broker1 | 192.168.150.128 | 8000 | true | 2024-01-08 10:48:01 | 2024-01-08 10:48:41 | | +---------+-----------------+------+-------+---------------------+---------------------+--------+ 1 row in set (0.02 sec)
扩容与缩容
参考官网https://doris.apache.org/zh-CN/docs/admin-manual/cluster-management/elastic-expansion
FE
FE 分为 Leader,Follower 和 Observer 三种角色。 默认一个集群,只能有一个 Leader,可以有多个 Follower 和 Observer。其中 Leader 和 Follower 组成一个 Paxos 选择组,如果Leader 宕机,则剩下的 Follower 会自动选出新的 Leader,保证写入高可用。Observer 同步Leader 的数据,但是不参加选举。
配置及启动 Follower 或 Observer
这里 Follower 和 Observer 的配置同 Master 的配置。首先第一次启动时,需执行以下命令:
# --helper 参数仅在 follower 和 observer 第一次启动时才需要
# edit_log_port 默认9010
./bin/start_fe.sh --helper leader_fe_host:edit_log_port --daemon
ALTER SYSTEM ADD FOLLOWER "follower_host:edit_log_port";
ALTER SYSTEM ADD OBSERVER "observer_host:edit_log_port";
查看 Follower 或 Observer 运行状态。使用 mysql-client 连接到任一已启动的 FE,并执行:SHOW PROC ‘/frontends’; 可以查看当前已加入集群的 FE 及其对应角色
FE 扩容注意事项:
- Follower FE(包括 Master)的数量必须为奇数,建议最多部署 3 个组成高可用(HA)模式即可。
- 当 FE 处于高可用部署时(1个 Master,2个 Follower),我们建议通过增加 Observer FE 来扩展 FE 的读服务能力。当然也可以继续增加 Follower FE,但几乎是不必要的。
- 通常一个 FE 节点可以应对 10-20 台 BE 节点。建议总的 FE 节点数量在 10 个以下。而通常 3 个即可满足绝大部分需求。
- helper 不能指向 FE 自身,必须指向一个或多个已存在并且正常运行中的 Master/Follower FE。
删除FE节点
ALTER SYSTEM DROP FOLLOWER[OBSERVER] "fe_host:edit_log_port";
FE 缩容注意事项:
- 删除 Follower FE 时,确保最终剩余的 Follower(包括 Master)节点为奇数。
BE的扩容与缩容
BE部署方式同之前一样,通过 ALTER SYSTEM ADD BACKEND
命令增加 BE 节点
删除BE
删除 BE 节点有两种方式:DROP 和 DECOMMISSION
ALTER SYSTEM DROP BACKEND “be_host:be_heartbeat_service_port”;
注意:DROP BACKEND 会直接删除该 BE,并且其上的数据将不能再恢复!!!所以我们强烈不推荐使用 DROP BACKEND 这种方式删除 BE 节点。当你使用这个语句时,会有对应的防误操作提示。
ALTER SYSTEM DECOMMISSION BACKEND “be_host:be_heartbeat_service_port”;
DECOMMISSION 命令说明:
- 该命令用于安全删除 BE 节点。命令下发后,Doris 会尝试将该 BE 上的数据向其他 BE 节点迁移,当所有数据都迁移完成后,Doris 会自动删除该节点。
- 该命令是一个异步操作。执行后,可以通过
SHOW PROC '/backends';
看到该 BE 节点的SystemDecommissioned
状态为 true。表示该节点正在进行下线。- 该命令不一定执行成功。比如剩余 BE 存储空间不足以容纳下线 BE 上的数据,或者剩余机器数量不满足最小副本数时,该命令都无法完成,并且 BE 会一直处于
SystemDecommissioned
为 true 的状态。- DECOMMISSION 的进度,可以通过
SHOW PROC '/backends';
中的 TabletNum 查看,如果正在进行,TabletNum 将不断减少。- 该操作可以通过:
CANCEL DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";
命令取消。取消后,该 BE 上的数据将维持当前剩余的数据量。后续 Doris 重新进行负载均衡
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!