当前位置: 首页 > news >正文

Doris –部署–理论


1、介绍
部署 Doris 所需软硬件环境
建议的部署方式
集群扩容缩容
集群搭建到运行过程中的常见问题。
2、软硬件需求
为了能够充分运用 MPP 架构的并发优势,以及 Doris 的高可用特性,我们建议 Doris 的部署遵循以下需求

2.1、Linux操作系统 版本需求

Linux 系统版本
CentOS 7.1 及以上
Ubuntu

16.04 及以上

 

 

 

2.2、软件需求

软件版本
Java 1.8 及以上
GCC 4.8.2 及以上

 

 

 

2.3、操作系统安装要求

设置系统最大打开文件句柄数

vi /etc/security/limits.conf 


* soft nofile 65536
* hard nofile 65536
 

 

 

2.4、时钟同步

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

2.4.1、时间同步

# 安装ntpdate

yum install -y ntpdate

# 时间同步

ntpdate cn.pool.ntp.org

 

 

 

2.4.2、编辑计划任务,每小时做一次同步

[root@Dpeng ~]# crontab -e

内容:

* */1 * * * /usr/sbin/ntpdate   cn.pool.ntp.org

 

 

 

2.4.3、重启crontab服务

service crond restart



2.5、关闭交换分区(swap)

Linux交换分区会给Doris带来很严重的性能问题,需要在安装之前禁用交换分区

# 临时禁用
swapoff -a

# 永久禁用,/etc/fstab中注释掉swap那一行。

sed -i 's/.*swap.*/#&/' /etc/fstab






2.6、Liunx文件系统

这里我们推荐使用ext4文件系统,在安装操作系统的时候,请选择ext4文件系统。

2.7、开发测试环境

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

 

 

2.8、生产环境

 
模块  CPU 内存 磁盘  网络 实例数量
FE 16核+ 64GB+ SSD或RAID卡,100GB+ * 万兆网络 1-5 *
BE 16核+ 64GB+ SSD或SATA,100GB+ * 万兆网络 10-100 *

 

 

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

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

2.8.3、建议
1. 通常我们建议 10 ~ 100 台左右的机器,来充分发挥 Doris 的性能
  -其中 3 台部署 FE(HA)
  -剩余的部署 BE
2. 当然,Doris的性能与节点数量及配置正相关。在最少4台机器(一台 FE,三台 BE,其中一台 BE 混部一个 Observer FE 提供元数据备份),以及较低配置的情况下,依然可以平稳的运行 Doris。
3. 如果 FE 和 BE 混部,需注意资源竞争问题,并保证元数据目录和数据目录分属不同磁盘。
2.9、Broker 部署
1. Broker 是用于访问外部数据源(如 hdfs)的进程。
2. 通常,在每台机器上部署一个 broker 实例即可。
2.10、网络需求
Doris 各个实例直接通过网络进行通讯。以下表格展示了所有需要的端口

image

2.10.1、注意
1. 当部署多个 FE 实例时,要保证 FE 的 http_port 配置相同。
2. 部署前请确保各个端口在应有方向上的访问权限。
2.11、IP 绑定
1. 因为有多网卡的存在,或因为安装过 docker 等环境导致的虚拟网卡的存在,同一个主机可能存在多个不同的 ip。当前 Doris 并不能自动识别可用 IP。所以当遇到部署主机上有多个 IP 时,必须通过 priority_networks 配置项来强制指定正确的 IP。
2. priority_networks 是 FE 和 BE 都有的一个配置,配置项需写在 fe.conf 和 be.conf 中。该配置项用于在 FE 或 BE 启动时,告诉进程应该绑定哪个IP。
2.11.1、示例

priority_networks=10.1.3.0/24



1.这是一种 CIDR 的表示方法。FE 或 BE 会根据这个配置项来寻找匹配的IP,作为自己的 localIP。

2.11.2、ADD BACKEND 或 ADD FRONTEND 语句
当配置完 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 同理。

2.11.3、Broker
1. BROKER 当前没有,也不需要 priority_networks 这个选项。
2. Broker 的服务默认绑定在 0.0.0.0 上。只需在 ADD BROKER 时,执行正确可访问的 BROKER IP 即可。
2.11.4、表名大小写敏感性设置
1. doris默认为表名大小写敏感,如有表名大小写不敏感的需求需在集群初始化时进行设置。
2. 表名大小写敏感性在集群初始化完成后不可再修改。

# 值为 0 时,表名大小写敏感。默认为0。

# 值为 1 时,表名大小写不敏感,doris在存储和查询时会将表名转换为小写。

lower_case_table_names=1

 

 

 

 

3、集群部署
1. 在生产环境中,所有实例都应使用守护进程启动,以保证进程退出后,会被自动拉起,如 Supervisor。
2.如需使用守护进程启动
  1. 在 0.9.0 及之前版本中:需要修改各个 start_xx.sh 脚本,去掉最后的 & 符号。
  2. 从 0.10.0 版本开始:直接调用 sh start_xx.sh 启动即可。
3.1、FE 部署
3.1.1、拷贝 FE 部署文件到指定节点
将源码编译生成的 output 下的 fe 文件夹拷贝到 FE 的节点指定部署路径下,并进入该目录。

3.1.2、配置 FE
1. 配置文件为 conf/fe.conf。

  1.其中 meta_dir是元数据存放位置。

    1.默认值为 ${DORIS_HOME}/doris-meta。需手动创建该目录。
    2.生产环境强烈建议单独指定目录不要放在Doris安装目录下,最好是单独的磁盘(如果有SSD最好),测试开发环境可以使用默认配置
2.fe.conf 中 JAVA_OPTS 默认 java 最大堆内存为 4GB,建议生产环境调整至 8G 以上。

3.1.3、启动FE

bin/start_fe.sh --daemon



1. FE进程启动进入后台执行。
2. 日志默认存放在 log/ 目录下。如启动失败,可以通过查看 log/fe.log 或者 log/fe.out 查看错误信息。
3. 如需部署多 FE,请参见 “FE 扩容和缩容” 章节

3.2、BE 部署
3.2.1、拷贝 BE 部署文件到所有要部署 BE 的节点
1. 将源码编译生成的 output 下的 be 文件夹拷贝到 BE 的节点的指定部署路径下。
2. 注意:output/be/lib/debug_info/ 目录下为调试信息文件,文件较大,但实际运行不需要这些文件,可以不部署。
3.2.2、修改所有 BE 的配置
1. 修改 be/conf/be.conf。
2. 主要是配置 storage_root_path:数据存放目录。
  1. 默认在be/storage下,需要手动创建该目录。
  2. 多个路径之间使用英文状态的分号 ; 分隔(最后一个目录后不要加 😉。
  3. 可以通过路径区别存储目录的介质,HDD或SSD。
  4. 可以添加容量限制在每个路径的末尾,通过英文状态逗号,隔开。
3. 如果用户不是SSD和HDD磁盘混合使用的情况,不需要按照如下示例1和示例2的配置方法配置,只需指定存储目录即可;也不需要修改FE的默认存储介质配置。
3.2.2.1、示例1
注意:

1. 如果是 SSD磁盘 要在目录后面加上.SSD
2. 如果是 HDD磁盘 要在目录后面加上.HDD

storage_root_path=/home/disk1/doris.HDD;/home/disk2/doris.SSD;/home/disk2/doris

 

 

说明:

/home/disk1/doris.HDD,表示存储介质是HDD;

/home/disk2/doris.SSD,表示存储介质是SSD;

/home/disk2/doris,存储介质默认为HDD

 
 
 
3.2.2.1、示例2

注意:

1. 不论HDD磁盘目录还是SSD磁盘目录,都无需添加后缀,storage_root_path参数里指定medium即可

storage_root_path=/home/disk1/doris,medium:hdd;/home/disk2/doris,medium:ssd

说明:

/home/disk1/doris,medium:hdd,表示存储介质是HDD;

/home/disk2/doris,medium:ssd,表示存储介质是SSD;

3.2.3、BE webserver_port端口配置

如果 be 部署在 hadoop 集群中,注意调整 be.conf 中的 webserver_port = 8040 ,以免造成端口冲突

3.2.4、在 FE 中添加所有 BE 节点

BE 节点需要先在 FE 中添加,才可加入集群。可以使用 mysql-client(下载MySQL 5.7) 连接到 FE:

./mysql-client -h fe_host -P query_port -uroot

其中 fe_host 为 FE 所在节点 ip;query_port 在 fe/conf/fe.conf 中的;默认使用 root 账户,无密码登录。

登录后,执行以下命令来添加每一个 BE:

ALTER SYSTEM ADD BACKEND "be_host:heartbeat-service_port";
 其中 be_host 为 BE 所在节点 ip;heartbeat_service_port 在 be/conf/be.conf 中。

3.2.5、启动 BE

bin/start_be.sh --daemon
 

 

 


1.BE 进程将启动并进入后台执行。
2. 日志默认存放在 be/log/ 目录下。如启动失败,可以通过查看 be/log/be.log 或者 be/log/be.out 查看错误信息。

3.2.6、查看BE状态

使用 mysql-client 连接到 FE,并执行以下语句,查看 BE 运行情况。如一切正常,isAlive 列应为 true。

SHOW PROC '/backends'

3.3、FS_Broker 部署(可选)
Broker 以插件的形式,独立于 Doris 部署。
如果需要从第三方存储系统导入数据,需要部署相应的 Broker,默认提供了读取 HDFS 、对象存储的 fs_broker。
fs_broker 是无状态的,建议每一个 FE 和 BE 节点都部署一个 Broker。
3.3.1、拷贝源码 fs_broker 的 output 目录下的相应 Broker 目录到需要部署的所有节点上。
建议和 BE 或者 FE 目录保持同级。

3.3.2、修改相应 Broker 配置
在相应 broker/conf/ 目录下对应的配置文件中,可以修改相应配置。

3.3.3、启动 Broker

bin/start_broker.sh --daemon



3.3.4、添加 Broker
1. 要让 Doris 的 FE 和 BE 知道 Broker 在哪些节点上,通过 sql 命令添加 Broker 节点列表。
2. 使用 mysql-client 连接启动的 FE,执行以下命令:

ALTER SYSTEM ADD BROKER broker_name "broker_host1:broker_ipc_port1","broker_host2:broker_ipc_port2",...;

 

1. broker_host 为 Broker 所在节点 ip
2. broker_ipc_port 在 Broker 配置文件中的conf/apache_hdfs_broker.conf。
3.3.5、查看 Broker 状态
使用 mysql-client 连接任一已启动的 FE,执行以下命令查看 Broker 状态

SHOW PROC "/brokers";







至此结束!



http://www.jsqmd.com/news/421230/

相关文章:

  • 分析上海劳动纠纷法律专业咨询费用,哪家收费合理 - 工业推荐榜
  • MAC 安装 homebrew 国内镜像
  • 2026年口碑好的美陈设计制作品牌企业,兰州顶点公关值得关注 - 工业推荐榜
  • 北京陌上造园:专注京津冀高端庭院与商业空间的整体设计与营造、秉持以心造境 以工筑恒的造园理念,以自有的匠人施工团队,结合精心适配本地气候的植物配置,为您打造专属的理想园居生活 - 海棠依旧大
  • 分析知名的港澳留学服务公司,圆梦未来性价比高不高? - myqiye
  • 2026年湖北武汉工伤维权与工伤赔偿律师服务团队推荐指南 - 2026年企业推荐榜
  • 企业办公选购指南:2026 会议室智能咖啡机推荐 - 品牌2025
  • 四川暖通厂家推荐:地暖安装全科普,石墨烯/水/电地暖厂家解析 - 深度智识库
  • 纸飞机主题乐园团队活动适合不,南通无锡靠谱品牌推荐 - 工业品网
  • Jmeter — 参数化
  • 春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
  • 一键出杯免维护优选:2026 商务接待区智能咖啡机推荐 - 品牌2025
  • 提升办公体验:2026 大型企业办公室智能咖啡机推荐 - 品牌2025
  • 工业级设计揭秘:迅为RK3576如何保证-40℃到85℃稳定运行?
  • 分析2026年视唱练耳教材推荐,专业选择有妙招 - mypinpai
  • 2026年正规的玻镁岩棉手工板,岩棉净化板,岩棉手工板厂家选购推荐指南 - 品牌鉴赏师
  • 沪尚律所提供婚姻家庭律师一对一咨询价格贵不贵? - 工业设备
  • 上门维修人工派单耗时久,企业如何开始搭建智能抢单体系? - 搭贝
  • JDK 27 首个新特性曝光:Java 开始为量子计算做准备
  • 2026年专业的直线导轨厂家行业实力推荐 - 品牌鉴赏师
  • 2026济南基层医疗健康体检类产品推荐榜:医共体/公卫家签约平台,预约分诊叫号/公卫体检/健康/学生体检系统,查体车,健康一体机优选指南 - 海棠依旧大
  • 2026年电商公司如何选择短信平台?稳定性与转化率的选型指南 - Qqinqin
  • 【JPCS出版 | EI检索】2026凝聚态物理学与人工智能国际学术会议(CMPAI 2026)
  • 阳光进村 储能万家|农村微网・光储充一体化平台,点亮乡村振兴新动能
  • 深入解读WD5030K:DCDC15A大电流大功率同步降压转换器的选型与应用指南
  • 2026年比较好的Q355D无缝钢管,Q355C无缝钢管,Q355E无缝钢管厂家优质品牌推荐 - 品牌鉴赏师
  • Tauri 应用体积优化Cargo Profile + 移除未用命令,把“本来就小”再压一压
  • 2026年贵州诚信的钢结构天桥,桥梁钢结构,钢结构加工厂家热门推荐榜单 - 品牌鉴赏师
  • 京东e卡回收平台服务精细化发展,互联网闲置处置 - 京回收小程序
  • 2026年柯桥诚信的阿里巴巴开店运营,阿里巴巴家纺运营,阿里巴巴面料运营公司品牌推荐清单 - 品牌鉴赏师