doris介绍
Doris是一个MPP的OLAP系统,以较低的成本提供在大数据集上的高性能分析和报表查询功能。
MPP (Massively Parallel Processing),即大规模并行处理。简单来说,MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到终的结果(与Hadoop相似)。
Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于此,Apache Doris 能够较好的满足报表分析、即席查询、统一数仓构建、数据湖联邦查询加速等使用场景,用户可以在此之上构建用户行为分析、AB 实验平台、日志检索分析、用户画像分析、订单分析等应用。
doris 使用场景
如下图所示,数据源经过各种数据集成和加工处理后,通常会入库到实时数仓 Doris 和离线湖仓(Hive, Iceberg, Hudi 中),Apache Doris 被广泛应用在以下场景中。

报表分析
① 实时看板 (Dashboards)
② 面向企业内部分析师和管理者的报表
③ 面向用户或者客户的高并发报表分析(Customer Facing Analytics)。比如面向网站主的站点分析、面向广告主的广告报表,并发通常要求成千上万的 QPS,查询延时要求毫秒级响应。著名的电商公司京东在广告报表中使用 Apache Doris ,每天写入 100 亿行数据,查询并发 QPS上万,99 分位的查询延时 150ms。即席查询(Ad-hoc Query)
面向分析师的自助分析,查询模式不固定,要求较高的吞吐。小米公司基于 Doris 构建了增长分析平台(Growing
Analytics,GA),利用用户行为数据对业务进行增长分析,平均查询延时 10s,95 分位的查询延时 30s 以内,每天的 SQL
查询量为数万条。统一数仓构建
一个平台满足统一的数据仓库建设需求,简化繁琐的大数据软件栈。海底捞基于 Doris 构建的统一数仓,替换了原来由
Spark、Hive、Kudu、Hbase、Phoenix 组成的旧架构,架构大大简化。数据湖联邦查询
通过外表的方式联邦分析位于Hive、Iceberg、Hudi 中的数据,在避免数据拷贝的前提下,查询性能大幅提升。
doris架构
Doris整体架构如下图所示,Doris 架构非常简单,只有两类进程
Frontend(FE),主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。
Backend(BE),主要负责数据存储、查询计划的执行。
这两类进程都是可以横向扩展的,单集群可以支持到数百台机器,数十 PB 的存储容量。并且这两类进程通过一致性协议来保证服务的高可用和数据的高可靠。这种高度集成的架构设计极大的降低了一款分布式系统的运维成本。

1 整体部署架构
| 节点 | 角色 |
|---|---|
| 192.x.x.31 | FE |
| 192.x.x.32 | BE |
| 192.x.x.33 | BE |
| 192.x.x.34 | BE |
| 192.x.x.35 | BE |
2 前期准备
1)Doris 运行在 Linux 环境中,推荐 CentOS 7.x 或者 Ubuntu 16.04 以上版本
2)JDK最低版本要求是8
3)GCC版本4.8.2+
GCC版本可以通过如下命令查看:
gcc -v

4)设置最大打开文件句柄数 – 集群所有节点均需操作
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
5) 时钟同步
Doris 的元数据要求时间精度要小于5000ms,所以所有集群所有机器要进行时钟同步,避免因为时钟问题引发的元数据不一致导致服务出现异常
6)关闭交换分区(swap)-- 集群所有节点均需操作
Linux交换分区会给Doris带来很严重的性能问题,需要在安装之前禁用交换分区
① 执行如下命令
swapoff /mnt/swap
② 删除 /mnt/swap swap swap defaults 0 0 这一行或者注释掉这一行
vim /etc/fstab
③ 确认swap是否关闭
free -mh
如果swap行值都为0,则表示关闭成功

调整 swappiness 参数
# 临时生效
echo 0 > /proc/sys/vm/swappiness
# 永久生效
vim /etc/sysctl.conf
# 修改 vm.swappiness 的修改为 0
vm.swappiness=0
# 使配置生效
sysctl -p

7) Liunx文件系统
doris推荐使用ext4文件系统,在安装操作系统的时候,请选择ext4文件系统
- 需要安装mysql客户端用与访问和连接doris
- 下载doris版本:
https://archive.apache.org/dist/doris/
注:这里需要根据当前安装环境是否支持 avx2指令,选择对应的下载版本。查看当前环境是否支持 avx2命令
cat /proc/cpuinfo |grep flags
发现没有avx2则说明不支持该指令

不支持avx2指令时选择的安装包应选择带有noavx2字段的安装包,如:

这里的x86和arm指的是CPU的架构,根据服务器的情况选择,大多数情况下是x86的架构。
3 安装部署注意事项
3.1 FE
① FE 的磁盘空间主要用于存储元数据,包括日志和 image。通常从几百 MB 到几个 GB 不等。
② BE> 的磁盘空间主要用于存放用户数据,总磁盘空间按用户总数据量 * 3(3副本)计算,然后再预留额外 40% 的空间用作后台 compaction> 以及一些中间数据的存放。
③ 一台机器上可以部署多个 BE 实例,但是只能部署一个 FE。如果需要 3 副本数据,那么至少需要 3
台机器各部署一个 BE 实例(而不是1台机器部署3个BE实例)。多个FE所在服务器的时钟必须保持一致(允许最多5秒的时钟偏差)
④ 测试环境也可以仅适用一个 BE 进行测试。实际生产环境,BE 实例数量直接决定了整体查询延迟。 所有部署节点关闭 Swap。
3.2 FE节点数量
① FE 角色分为 Follower 和 Observer,(Leader 为 Follower 组中选举出来的一种角色,以下统

Doris是一款基于MPP架构的高性能分析型数据库,适用于报表分析、即席查询等场景,具备亚秒级响应速度。本文详细介绍Doris的使用场景、架构特点、部署流程及示例。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



