首页 > 其他分享 >【大数据系列】一、Apache Doris集群部署

【大数据系列】一、Apache Doris集群部署

时间:2024-11-27 15:30:21浏览次数:12  
标签:jiang doris 集群 FE conf Apache hb2 Doris fe

Doris部署

1.部署架构

主机名称部署服务
hb1FE、BE
hb2FE((FOLLOWER)、BE
hb3FE(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 分为 LeaderFollowerObserver 三种角色。默认一个集群,只能有一个 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

相关文章

  • 宇视设备视频平台EasyCVR萤石设备视频接入平台如何实现集群化部署管理与配置?
    在当今这个信息化快速发展的时代,视频监控系统已成为保障公共安全和提升管理效率的重要工具。随着视频监控技术的不断进步,EasyCVR视频汇聚平台应运而生,它以其强大的视频转码能力和集群化部署优势,为大中型视频监控项目提供了一个高效、稳定的解决方案。本文将详细介绍宇视设备视频......
  • ray集群work节点无法在不同wifi远程连接的问题
    省流:1.两个不同wifi下的ray节点要手动配置参数‘--node-ip-address’2.注意是--node-ip-address不是--node_ip_address注意下划线我使用python下的ray分布式能正常连接但是gcs心跳根本连接不上检查后发现:不同的分布式节点不在同一个ip,所以会导致bootstrap_address的公网ip......
  • hadoop_集群搭建步骤超级干货
    搭建步骤前言1.配置主机名解析2.创建新用户3.配置免密4.安装JDK、解压hadoop5.关闭防火墙6.配置env文件7.创建slaves、workers文件8.配置core-site.xml9.配置hdfs-site.xml10.配置mapred-site.xml11.配置yarn-site.xml12.安装并启动zookeeper13启动journalnode14.格式......
  • 在k8s集群中创建新的用户,绑定集群并实现访问集群资源
    ​为了让普通用户能够通过认证并调用API,需要执行几个步骤。首先,该用户必须拥有Kubernetes集群签发的证书,然后将该证书提供给KubernetesAPI。创建私钥下面的脚本展示了如何生成PKI私钥和CSR。设置CSR的CN和O属性很重要。CN是用户名,O是该用户归属的组......
  • hadoop~搭建HA集群之后不能自动切换namenode
    在搭好HA集群之后,想测试一下集群的高可用性,于是先把active的namenode给停掉:hadoop-daemon.shstopnamenode或者直接kill掉该节点namenode的对应进程也可。但是通过hdfshaadmin-getServiceStatemaster1查看,发现standby的namenode并没有自动切换成active,直到我把之前kill......
  • VTS:基于Apache SeaTunnel的开源向量数据迁移工具
    引言VTS(VectorTransportService),全称向量传输服务,是一个由Zilliz开发的专注于向量和非结构化数据迁移的开源工具。VTS的核心特点在于其基于ApacheSeaTunnel开发,这一事实使其在数据处理和迁移方面具有显著的优势。ApacheSeaTunnel作为一个分布式数据集成平台,以其丰富的连接器系......
  • 【docker集群应用】Docker常用命令
    文章目录Docker常用命令Docker镜像操作搜索镜像获取镜像查看镜像信息添加镜像标签删除镜像存出与载入镜像上传镜像Docker容器操作容器创建查看容器状态启动容器创建并启动容器后台持续运行容器终止容器运行进入容器文件复制容器导出与导入删除容器批量操作Docke......
  • 占用磁盘100%?Apache DolphinScheduler 日志如何定时清理!
    当ApacheDolphinScheduler运行几个月后,大部分朋友会发现Logs下的运行日志越来越多,这时可以考虑清理下Logs/目录下的日志文件,比如设置只保留最近3天的日志,怎么操作呢?可以通过执行以下三个命令来实现:find./logs-typef-mtime+3-name"dolphinscheduler-worker.*.lo......
  • Kafka集群管理:大数据运维专家来教你如何实现数据均衡与性能最大化
    Kafka概述Kafka起初是由LinkedIn公司采用Scala语言开发的一个多分区、多副本且基于ZooKeeper协调的分布式消息系统,现已被捐献给Apache基金会。 目前Kafka已经定位为一个分布式流式处理平台,它以高吞吐、可持久化、可水平扩展、支持流数据处理等多种特性而被广泛使......
  • mongodb shard 分片集群基础概念
    目录一、shard集群二、ConfigServer1、config.shards2、config.database3、config.collection4、config.chunks5、config.settings6、其他三、shard机制1、PrimaryShard2、ShardKey2.1范围分片2.2哈希分片2.3ShardKey重定义2.4版本约束2.5ShardKey......