【大数据】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.8
GCC 4.8.2 4.8.2 4.8.2 及以上

1.2 硬件要求

开发测试环境

模块 CPU 内存 磁盘 网络 实例数量
Frontend 8核+ 8GB+ SSD 或 SATA,10GB+ 千兆网卡 1
Backend 8核+ 16GB+ SSD 或 SATA,50GB+ 千兆网卡 1 - 3

生产环境

模块 CPU 内存 磁盘 网络 实例数量(最低要求)
Frontend 16核+ 64GB+ SSD 或 RAID 卡,100GB+ 万兆网卡 1 - 3
Backend 16核+ 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-01 Leader、Broker
192.168.1.11 doris-fe-02 Follower、Broker
192.168.1.12 doris-fe-03 Follower、Broker
192.168.1.13 doris-be-01 BE
192.168.1.14 doris-be-02 BE
192.168.1.15 doris-be-03 BE
192.168.1.16 doris-be-04 BE
192.168.1.17 doris-be-05 BE

1.4 通信端口

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

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

当部署多个 FE 实例时,要保证 FE 的 http_port 配置相同。部署前请确保各个端口在应有方向上的访问权限。

1.5 IP 地址绑定

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

priority_networks 是 FE 和 BE 都有的一个配置,配置项需写在 fe.confbe.conf 中。该配置项用于在 FE 或 BE 启动时,告诉进程应该绑定哪个IP。示例如下:

priority_networks=10.1.3.0/24

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

注意:当配置完 priority_networks 并启动 FE 或 BE 后,只是保证了 FE 或 BE 自身的 IP 进行了正确的绑定。而在使用 ADD BACKENDADD 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 即可。文章来源地址https://www.toymoban.com/news/detail-772896.html

到了这里,关于【大数据】Doris 的集群规划和环境准备的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • doris安装部署-通过docker部署doris集群

    配置一个FE+三个BE的集群,使用版本1.1.5,并且指定固定IP和网络。 下载FE和BE包 准备FE和BE环境 配置FE 配置BE 在FE中添加BE 开始使用doris 从官方下载已经编译好的包: doris下载 1.1 doris官方下载 配置FE和BE的目录结构; 把第一步的压缩包解压后放在对应的FE和BE; 运行命令: 各

    2024年02月03日
    浏览(47)
  • Apache Doris (八) :Doris分布式部署(五) Broker部署及Doris集群启动脚本

    目录 1.Broker部署及扩缩容 1.1 BROKER 部署 1.2 BROKER 扩缩容 2. Apache Doris集群启停脚本

    2024年02月11日
    浏览(41)
  • 大数据测试-hive、doris、clickhouse、mysql、elasticsearch、kudu、postgresql、sqlserver

    大数据工作要接触很多的数据库和查询引擎 数据库 : 1、 hive :用于跑批,大批量,稳定,缺点:无update。用于数仓 2、 doris db :已更名starrocks。即时查询 可达千亿级别 文档:什么是 StarRocks @ StarRocks_intro @ StarRocks Docs 3、 clickhouse :亿级别 局限性:主表,单表支持能力强,

    2024年02月05日
    浏览(47)
  • Doris Manager集群的工具,运维更顺畅

    📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜😜😜 中国DBA联盟(ACDU)成员,目前服务于工业互联网 擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优

    2024年02月05日
    浏览(36)
  • doris docker环境编译部署

    1.准备doris docker环境 2.下载doris source code,编译doris 编译: 经常编译到一半失败,一直不通过,后来采取分开编译,一些不需要模块就不编译了; sh build.sh --fe sh build.sh --be 3.启动doris 4.测试使用

    2024年02月09日
    浏览(42)
  • 开源大数据集群部署(二)集群基础环境实施准备

    作者:櫰木 本次使用到的二进制软件包目录为:系统初始化前提是操作系统已完成安装、各个主机之间网络互通,系统常用命令已安装,本默认这些前提条件已具备,不在阐述。 安装centos系统完成后需要对主机进行初始化配置和验证工作,在所有主机上(hd1.dtstack.com-hd3)均

    2024年02月03日
    浏览(50)
  • Flink/Doris生产环境方案选型的一些思考

    各位总监,技术负责人,架构师们大家好。今天的文章有点短,是一些个人思考,仅做记录。 以Flink为主的计算组件和以Doris为代表的存储+计算一体的方案选择问题是我们在技术选型过程中最常见的问题之一。也是很多公司和业务支持过程中会遇到的问题。 这个问题非常「实

    2024年02月02日
    浏览(47)
  • 大数据Doris(十四):Doris表中的数据基本概念

    文章目录 Doris表中的数据基本概念 一、​​​​​​​Row Column

    2024年02月06日
    浏览(49)
  • 大数据Doris(三十三):Doris高级设置

    文章目录 Doris高级设置 一、增大内存

    2024年02月04日
    浏览(54)
  • 【大数据入门核心技术-Doris】(三)Doris基本Shell和数据模型

    参考 【大数据入门核心技术-Doris】(二)Doris安装部署_forest_long的博客-CSDN博客 一、DCL 1、登录 mysql  -h FE_HOST -P9030 -uroot 2、修改密码 SET PASSWORD FOR \\\'root\\\' = PASSWORD(\\\'your_password\\\'); 3、创建新用户 CREATE USER \\\'test\\\' IDENTIFIED BY \\\'test_passwd\\\'; 后续登录时就可以通过下面链接命令登录: mysql

    2024年02月02日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包