0


【大数据】Doris 的集群规划和环境准备

Doris 的集群规划和环境准备 

Doris 作为一款开源的 MPP 架构 OLAP 数据库,能够运行在绝大多数主流的商用服务器上。为了能够充分运用 MPP 架构的并发优势,以及 Doris 的高可用特性,我们建议 Doris 的部署遵循以下需求。

1.1 环境要求

1.1 Linux 操作系统版本需求

Linux 系统版本CentOS

        7.1 
       
      
     
       7.1 
      
     
   7.1 及以上Ubuntu 
    
     
      
      
        16.04 
       
      
     
       16.04 
      
     
   16.04 及以上

操作系统安装要求

# 设置系统最大打开文件句柄数
vi /etc/security/limits.conf 
* soft nofile 65536
* hard nofile 65536
  • 时钟同步:Doris 的元数据要求时间精度要小于 5000 ms,所以所有集群所有机器要进行时钟同步,避免因为时钟问题引发的元数据不一致导致服务出现异常。
  • 关闭交换分区swap):Linux 交换分区会给 Doris 带来很严重的性能问题,需要在安装之前禁用交换分区。
  • Linux 文件系统ext4xfs 文件系统均支持。

1.2 软件需求

软件版本Java

        1.8 
       
      
     
       1.8 
      
     
   1.8GCC 
    
     
      
      
        4.8.2 
       
      
     
       4.8.2 
      
     
   4.8.2 及以上

1.2 硬件要求

开发测试环境
模块CPU内存磁盘网络实例数量Frontend8核+8GB+SSD 或 SATA,10GB+千兆网卡1Backend8核+16GB+SSD 或 SATA,50GB+千兆网卡1 - 3
生产环境
模块CPU内存磁盘网络实例数量(最低要求)Frontend16核+64GB+SSD 或 RAID 卡,100GB+万兆网卡1 - 3Backend16核+64GB+SSD 或 SATA,100G+万兆网卡3

  • FE 的磁盘空间主要用于存储元数据,包括日志和镜像(image)。通常从几百 MB 到几个 GB 不等。
  • BE 的磁盘空间主要用于存放用户数据,总磁盘空间按用户总数据量 × 3(3 副本)计算,然后再预留额外 40 40% 40 的空间用作后台合并数据以及一些中间数据的存放。
  • 一台机器上可以部署多个 BE 实例,但是只能部署一个 FE。如果需要 3 副本数据,那么至少需要 3 台机器各部署一个 BE 实例(而不是 1 台机器部署 3 个 BE 实例)。多个 FE 所在服务器的时钟必须保持一致(允许最多 5 秒的时钟偏差)。
  • 测试环境也可以仅适用一个 BE 进行测试。实际生产环境,BE 实例数量直接决定了整体查询延迟。
  • 所有部署节点关闭 Swap。

1.3 节点规划

通常我们建议

     10 
    
   
  
    10 
   
  
10 ~  
 
  
   
   
     100 
    
   
  
    100 
   
  
100 台左右的机器,来充分发挥 Doris 的性能(其中 3 台部署 FE(HA),剩余的部署 BE)。当然,Doris 的性能与节点数量及配置正相关。在最少 4 台机器(一台 FE,三台 BE,其中一台 BE 混部一个 Observer 的 FE 提供元数据备份),以及较低配置的情况下,依然可以平稳的运行 Doris。

如果 FE 和 BE 混部,需注意资源竞争问题,并保证元数据目录和数据目录分属不同磁盘。Broker 是用于访问外部数据源(如 HDFS)的进程。通常,在每台机器上部署一个 Broker 实例即可。

关于 FE 节点的角色,我们需要注意以下几点:

  • ✅ FE 角色分为 Follower 和 Observer,(Leader 为 Follower 组中选举出来的一种角色,以下统称 Follower)。
  • ✅ FE 节点数据至少为 1(1 个 Follower)。当部署 1 个 Follower 和 1 个 Observer 时,可以实现读高可用。当部署 3 个 Follower 时,可以实现读写高可用(HA)。
  • ✅ Follower 的数量必须为奇数,Observer 数量随意。
  • ✅ 根据以往经验,当集群可用性要求很高时(比如提供在线业务),可以部署 3 个 Follower 和 1 1 1 ~ 3 3 3 个 Observer。如果是离线业务,建议部署 1 个 Follower 和 1 1 1 ~ 3 3 3 个 Observer。

假设使用 3 个 FE、5 个 BE 节点来搭建 Doris 集群,部署角色如下表所示:
IP节点名称角色

192.168.1.10

doris-fe-01Leader、Broker

192.168.1.11

doris-fe-02Follower、Broker

192.168.1.12

doris-fe-03Follower、Broker

192.168.1.13

doris-be-01BE

192.168.1.14

doris-be-02BE

192.168.1.15

doris-be-03BE

192.168.1.16

doris-be-04BE

192.168.1.17

doris-be-05BE

1.4 通信端口

Doris 各个实例直接通过网络进行通讯。以下表格展示了所有需要的端口。
实例名称端口名称默认端口通讯方向说明BE

be_port
        9060 
       
      
     
       9060 
      
     
   9060FE → BEBE 上 Thrift Server 的端口,用于接收来自 FE 的请求BE
webserver_port
        8040 
       
      
     
       8040 
      
     
   8040BE ↔ BEBE 上的 HTTP Server 的端口BE
heartbeat_service_port
        9050 
       
      
     
       9050 
      
     
   9050FE → BEBE 上心跳服务端口(Thrift),用于接收来自 FE 的心跳BE
brpc_port
        8060 
       
      
     
       8060 
      
     
   8060FE ↔ BE,BE ↔ BEBE 上的 bRPC 端口,用于 BE 之间通讯FE
http_port
        8030 
       
      
     
       8030 
      
     
   8030FE ↔ FE,用户 ↔ FEFE 上的 HTTP Server 端口FE
rpc_port
        9020 
       
      
     
       9020 
      
     
   9020BE → FE,FE ↔ FEFE 上的 Thrift Server 端口,每个 FE 的配置需要保持一致FE
query_port
        9030 
       
      
     
       9030 
      
     
   9030用户 ↔ FEFE 上的 MySQL Server 端口FE
arrow_flight_sql_port
        9040 
       
      
     
       9040 
      
     
   9040用户 ↔ FEFE 上的 Arrow Flight SQL Server 端口FE
edit_log_port
        9010 
       
      
     
       9010 
      
     
   9010FE ↔ FEFE 上的 BDB JE 之间通信用的端口Broker
broker_ipc_port
        8000 
       
      
     
       8000 
      
     
   8000FE → Broker,BE → BrokerBroker 上的 Thrift Server,用于接收请求

当部署多个 FE 实例时,要保证 FE 的

http_port

配置相同。部署前请确保各个端口在应有方向上的访问权限。

1.5 IP 地址绑定

因为有多网卡的存在,或因为安装过 Docker 等环境导致的虚拟网卡的存在,同一个主机可能存在多个不同的 IP。当前 Doris 并不能自动识别可用 IP。所以当遇到部署主机上有多个 IP 时,必须通过

priority_networks

配置项来强制指定正确的 IP。

priority_networks

是 FE 和 BE 都有的一个配置,配置项需写在

fe.conf

be.conf

中。该配置项用于在 FE 或 BE 启动时,告诉进程应该绑定哪个IP。示例如下:

priority_networks=10.1.3.0/24

这是一种

CIDR

Classless Inter-Domain Routing

无类别域间路由)的表示方法。FE 或 BE 会根据这个配置项来寻找匹配的IP,作为自己的 localIP。

注意:当配置完

priority_networks

并启动 FE 或 BE 后,只是保证了 FE 或 BE 自身的 IP 进行了正确的绑定。而在使用

ADD BACKEND

ADD FRONTEND

语句中,也需要指定和

priority_networks

配置匹配的 IP,否则集群无法建立。例如 BE 的配置为:

priority_networks=10.1.3.0/24

,但是在

ADD BACKEND

时使用的是:

ALTER SYSTEM ADD BACKEND "192.168.0.1:9050"

,则 FE 和 BE 将无法正常通信。这时,必须

DROP

掉这个添加错误的 BE,重新使用正确的 IP 执行

ADD BACKEND

。FE 同理。

BROKER 当前没有,也不需要

priority_networks

这个选项。Broker 的服务默认绑定在

0.0.0.0

上。只需在

ADD BROKER

时,执行正确可访问的 BROKER IP 即可。

标签: 大数据 Doris MPP

本文转载自: https://blog.csdn.net/be_racle/article/details/135032891
版权归原作者 G皮T 所有, 如有侵权,请联系我们删除。

“【大数据】Doris 的集群规划和环境准备”的评论:

还没有评论