大数据Doris(二):Apache Doris 部署介绍
文章目录
Apache Doris 部署介绍
一、软硬件要求
二、生产/测试环境节点配置建议
三、Broker部署介绍
四、操作系统安装要求
五、网络需求
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配置相同。
- 📢博客主页:https://lansonli.blog.csdn.net
- 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
- 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
- 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨