前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据Doris(二):Apache Doris 部署介绍

大数据Doris(二):Apache Doris 部署介绍

原创
作者头像
Lansonli
发布2023-04-27 23:08:03
2.8K0
发布2023-04-27 23:08:03
举报
文章被收录于专栏:Lansonli技术博客Lansonli技术博客

Apache Doris 部署介绍

一、软硬件要求

Doris 运行在 Linux 环境中,推荐 CentOS 7.x 或者 Ubuntu 16.04 以上版本,同时你需要安装 Java 运行环境,JDK最低版本要求是8。我们这里使用的是Linux Centos7.9版本,jdk为1.8。

二、生产/测试环境节点配置建议

Apache Doris官方建议开发测试环境和生产环境节点的配置如下:

  • 开发测试环境:

模块

CPU

内存

磁盘

网络

实例数量

Frontend

8核+

8GB+

SSD或SATA,10GB+*

千兆网卡

1

Backend

8核+

16GB+

SSD或SATA,50GB+*

千兆网卡

1-3*

  • 生产环境:

模块

CPU

内存

磁盘

网络

实例数量(最低要求)

Frontend

16核+

64GB+

SSD或RAID卡,10GB+*

万兆网卡

1-3*

Backend

16核+

64GB+

SSD或SATA,100GB+*

万兆网卡

3*

  • 部署 FE 需要注意以下几点:
  • FE 的磁盘空间主要用于存储元数据,包括日志和 image。通常从几百 MB 到几个 GB 不等。
  • 多个FE所在服务器的时钟必须保持一致(允许最多5秒的时钟偏差)。
  • FE角色分为Leader、Follower和Observer,Leader为Follower组中选举出来的一种角色,后续统称为Follower。
  • FE节点数量至少为1个Follower,该Follower就是Leader。 Follower 的数量必须为奇数(因为投票选主),Observer 数量随意
  • 当FE中部署 1 个 Follower 和 1 个 Observer 时,可以实现读高可用。当部署 3 个 Follower 时,可以实现读写高可用(HA)。
  • 根据经验,当集群可用性要求很高时(比如提供在线业务),可以部署3个Follower和1-3个Observer。如果是离线业务,建议部署1个Follower和1-3个Observer。
  • 部署BE需要注意以下几点:
  • BE 的磁盘空间主要用于存放用户数据,总磁盘空间按用户总数据量 * 3(3副本)计算,然后再预留额外 40% 的空间用作后台 compaction 以及一些中间数据的存放。
  • 一台机器上可以部署多个 BE 实例,但是只能部署一个 FE。如果需要 3 副本数据,那么至少需要 3 台机器各部署一个 BE 实例(而不是1台机器部署3个BE实例)。
  • 测试环境也可以仅使用一个 BE 进行测试。实际生产环境,BE 实例数量直接决定了整体查询延迟。

Apache Doris的性能与节点数量及配置正相关,官方建议生产环境中部署Doris使用10~100台左右的机器来充分发挥Doris性能,其中3台部署FE(HA),剩余的部署BE。如果FE和BE混部,需要注意资源竞争问题,并保证元数据目录和数据目录分属不同磁盘。

三、Broker部署介绍

Broker 是用于访问外部数据源(如 hdfs)的进程,通常在每台机器上部署一个 broker 实例即可。

四、操作系统安装要求

  • linux文件系统

官方建议在安装操作系统的时候使用ext4文件系统。其他格式也可以。Centos7中查看文件系统命令 cat /etc/fstab:

或者使用命令 df -Th :

  • 设置文件句柄数

Linux操作系统中文件句柄数代表一个进程能同时维持多少个"文件"开着而不关闭,一个开着的"文件"就对应一个文件句柄。这里说的"文件"并非我们通常理解的文件,在Linux中一切IO都是"文件",也就是说打开硬盘上的文件是一个"文件",一个未关闭的TCP Socket 也是一个"文件",甚至控制台输入/输出也是"文件"。

Linux系统中文件句柄数默认为1024,在生产环境系统中这些远远不够,所以我们需要将linux操作系统的打开文件句柄数调大一些。

  • 时钟同步

Doris 的元数据要求时间精度要小于5000ms,所以所有集群所有机器要进行时钟同步,避免因为时钟问题引发的元数据不一致导致服务出现异常。

  • 关闭交换分区(swap )

Linux交换分区会给Doris带来很严重的性能问题,需要在安装之前禁用交换分区。关闭Swap分区需要注释掉/etc/fstab文件中文件类型为swap的一行,然后重启该节点。

  • 调大vm.max_map_count

在部署Apache Doris时,从1.2.0版本往后,需要在部署BE的节点上调大单个JVM进程的虚拟机内存区域数量值以支撑更多的线程,BE 启动脚本会通过/proc/sys/vm/max_map_count 检查数值是否大于200W,否则启动失败。默认这个值为65530,可以通过"sysctl -w vm.max_map_count=2000000"命令调大该参数,以上参数只是临时设置该值,当重启机器后会失效,永久设置可以在/etc/sysctl.conf文件中加入"vm.max_map_count=2000000"参数即可。

五、网络需求

Doris 各个实例直接通过网络进行通讯。以下表格展示了所有需要的端口:

实例名称

端口名称

默认端口

通讯方向

说明

BE

be_port

9060

FE-->BE

BE上thrift server的端口,用于接收来自FE的请求

BE

webserver_port

8040

BE<-->BE

BE上的http server的端口

BE

heartbeat_service_port

9050

FE-->BE

BE上心跳服务端口(thrift),用于接收来自FE的心跳

BE

brpc_port

8060

FE<-->BE,BE<-->BE

BE上的brpc端口,用于BE之间的通讯

FE

http_port

8030

FE<-->FE,用户<-->FE

FE上的http server 端口

FE

rpc_port

9020

BE-->FE,FE<-->FE

FE上的thrift server 端口,每个fe的配置需要保持一致

FE

query_port

9030

用户<-->FE

FE上的mysql server 端口

FE

edit_log_port

9010

FE<-->FE

FE上的bdbje之间通信用的端口

Broker

broker_ipc_port

8000

FE-->Broker,BE-->Borker

Broker上的thrift server,用于接收请求

当部署多个FE实例时,要保证FE的http_port配置相同。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Apache Doris 部署介绍
    • 一、软硬件要求
      • 二、生产/测试环境节点配置建议
        • 三、Broker部署介绍
          • 四、操作系统安装要求
            • 五、网络需求
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档