Apache Doris整体架构、FE元数据管理及数据组织

2024-02-16 19:30

本文主要是介绍Apache Doris整体架构、FE元数据管理及数据组织,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1. Doris整体架构

2. FE 元数据管理 

3. Doris数据组织 


1. Doris整体架构

       Doris主要分为FE和BE两个组件,FE主要负责查询的编译,分发和元数据管理(基于内存,类似HDFS NN);BE主要负责查询的执⾏和存储系统。

1、这张图是Doris的整体架构。Doris的架构很简洁,只设FE(Frontend)、BE(Backend)两种⾓⾊、两个进程,不依赖于外部组件,⽅便 部署和运维。

2、以数据存储的⾓度观之,FE存储、维护集群元数据;BE存储物理数据。

3、以查询处理的⾓度观之, FE节点接收、解析查询请求,规划查询计划,调度查询执⾏,返回查询结果;BE节点依据FE⽣成的物理计划, 分布式地执⾏查询。

4、FE主要有有三个⾓⾊,⼀个是leader,⼀个是follower,还有⼀个observer。leader跟follower,主要是⽤来达到元数据的⾼可⽤,保证单节点宕机的情况下,元数据能够实时地在线恢复,⽽不影响整个服务。

5、右边observer只是⽤来扩展查询节点,就是说如果在发现集群压⼒⾮常⼤的情况下,需要去扩展整个查询的能⼒,那么可以加 observer的节点。observer不参与任何的写⼊,只参与读取。

2. FE 元数据管理 

元数据层⾯,Doris采⽤Paxos协议以及Memory + Checkpoint + Journal的机制来确保元数据的⾼性能及⾼可靠。

元数据的每次更新,都⾸先写⼊到磁盘的⽇志⽂件中(WAL溢⾎⽇志),然后再写到内存中,最后定期checkpoint到本地磁盘上。相当于是⼀个纯内存的⼀个结构,也就是说所有的元数据都会缓存在内存之中,从⽽保证FE在宕机后能够快速恢复元数据,⽽且不丢失元数据。

Leader、follower和 observer它们三个构成⼀个可靠的服务,这样如果发⽣节点宕机的情况,在百度内部⼀般是部署⼀个leader两个follower,外部公司⽬前来说基本上也是这么部署的。就是说三个节点去达到⼀个⾼可⽤服务。

单机的节点故障时基本上三个就够了,因为FE节点只存了⼀份元数据,它的压⼒不⼤,所以如果FE太多的时候它会去消耗机器资源, 所以多数情况下三个就⾜够了,可以达到⼀个很⾼可⽤的元数据服务。

3. Doris数据组织 

数据主要存储在BE⾥⾯,BE节点上物理数据的可靠性通过多副本来实现,默认是3副本,副本数可配置且可随时动态调整,满⾜不同可⽤性级别的业务需求。

 

这篇关于Apache Doris整体架构、FE元数据管理及数据组织的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/715489

相关文章

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

Apache Ignite缓存基本操作实例详解

《ApacheIgnite缓存基本操作实例详解》文章介绍了ApacheIgnite中IgniteCache的基本操作,涵盖缓存获取、动态创建、销毁、原子及条件更新、异步执行,强调线程池注意事项,避免... 目录一、获取缓存实例(Getting an Instance of a Cache)示例代码:二、动态

MySQL 迁移至 Doris 最佳实践方案(最新整理)

《MySQL迁移至Doris最佳实践方案(最新整理)》本文将深入剖析三种经过实践验证的MySQL迁移至Doris的最佳方案,涵盖全量迁移、增量同步、混合迁移以及基于CDC(ChangeData... 目录一、China编程JDBC Catalog 联邦查询方案(适合跨库实时查询)1. 方案概述2. 环境要求3.

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

SpringBoot整合Apache Flink的详细指南

《SpringBoot整合ApacheFlink的详细指南》这篇文章主要为大家详细介绍了SpringBoot整合ApacheFlink的详细过程,涵盖环境准备,依赖配置,代码实现及运行步骤,感兴趣的... 目录1. 背景与目标2. 环境准备2.1 开发工具2.2 技术版本3. 创建 Spring Boot

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

Spring Boot 整合 Apache Flink 的详细过程

《SpringBoot整合ApacheFlink的详细过程》ApacheFlink是一个高性能的分布式流处理框架,而SpringBoot提供了快速构建企业级应用的能力,下面给大家介绍Spri... 目录Spring Boot 整合 Apache Flink 教程一、背景与目标二、环境准备三、创建项目 & 添

Apache 高级配置实战之从连接保持到日志分析的完整指南

《Apache高级配置实战之从连接保持到日志分析的完整指南》本文带你从连接保持优化开始,一路走到访问控制和日志管理,最后用AWStats来分析网站数据,对Apache配置日志分析相关知识感兴趣的朋友... 目录Apache 高级配置实战:从连接保持到日志分析的完整指南前言 一、Apache 连接保持 - 性