HDFS, Druid, Presto, Alluxio之间是什么关系?

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: HDFS, Druid, Presto, Alluxio之间是什么关系?

这是个极为宏大的分布式存储与计算话题,本文先简单介绍它们之间的作用和架构关系。后续有机会再慢慢细聊:


技术介绍


首先这四种技术分别代表:分布式文件系统(HDFS)、实时数据库(Druid)、大数据查询引擎(Presto)和内存中的分布式文件系统(Alluxio)。


HDFS是我们最常听到的分布式文件系统,也就是说它主要还是以文件的组织形式保存客户端传来的数据,关键是在多节点多副本的条件下提供文件的高可靠。


Druid是结合了数仓、时序和日志搜索为一体的实时分析数据库。Druid是列式结构存储,主要是针对日志、工业和实时交易之类的海量数据写入和实时分析。它的分布式结构非常庞大,面向实时流数据、也面向批量冷数据的定时存储,为各种实时、离线提供全面的支撑。


Presto是大数据的查询引擎,具有分布式结构,我们可以让它与hive,impala,spark sql并列去对比,都是面向mpp的大规模并行计算引擎,presto的强大之处还是在于它的查询速度很高,在计算过程中,因为对内存的极致利用,使得查询速度是其最大的优势。


Alluxio是基于内存的分布式文件系统,也是以文件组织形式提供给客户端,它可以介于spark和hdfs之间(不止于这两种大数据框架)形成内存映射磁盘的分布式文件缓冲架构,既可以同hdfs形成内存与磁盘的文件数据交换,又可以适配spark建立内存级的checkpoint点,做到分布式环境下在内存中完成检测点的计算恢复,用于加速spark等查询计算引擎的处理能力,还能提供计算容错的支持,相对于在线事务领域,我们可以理解Alluxio为大数据领域的Redis,但Redis只是字典,不具备文件组织能力,也不具备数据在内存与磁盘的实时交换能力。


架构用法


介绍完它们的作用,我们从架构的用法上看,hdfs肯定是大数据的底座,用于全量数据的高可靠存储,尤其是高性能的写入与复制,如果用spark进行批量分析,例如数据挖掘,机器学习,那么在hdfs之上加一层Alluxio,这会让spark通过Alluxio来缓存数据,并无缝建立与hdfs的桥梁,处理速度效果会非常好。


如果使用presto,则不需要考虑Alluxio,因为presto本身就是数据与计算分离的架构,也是纯内存计算的架构,他可以和很多数据存储平台对接,如果做通用型大数据离线分析,对接hdfs即可,如果做工业时序查询分析,也可以对接Druid。


作为Druid,它本身既是一个时序数据的存储平台,也是一个实时查询分析的计算平台,而且它还可以连接hdfs批量获取数据,也可以连接kafka流式获取数据,但最终都会归集到它的历史数据库,在进入历史数据库之前,它还可以外接hdfs作为批量冷数据的临时中转地,等待协调节点的调度后,再将hdfs上的冷数据转移到历史数据中。总之Druid是面向时序、数仓的全套解决方案,架构也非常开放。


但是作为一般的大数据技术实施公司,切莫追逐于技术上的先进性,满足SLA服务承诺的条件下,稳定性更重要,数据量大的环境下,各种技术框架里面都会产生很多坑,例如presto虽然内存应用到极致,但是海量数据频繁操作下,jvm对内存的垃圾回收会有很多意想不到的问题。


再比如Druid,分布式架构非常复杂,可以和TiDB、OceanBase的分布式架构角色之多有一拼了,那么对于Druid的部署就涉及到实时节点,历史节点,协调节点,查询节点,还有zookeeper,hdfs的接入,任何角色节点出现故障都是麻烦事,那么你是否能应付的过来呢?


因此一定要循序渐进的使用大数据技术,例如:hdfs和spark sql是否就已经可以解决问题了,是否一定因为速度需求要换成presto;再比如,es栈(elk)就能解决日志问题,influxdb栈(tick)就能解决工业监测问题,是否对数据业务的功能需求的复杂程度一定要将所有采集和分析统一融合到Druid上呢?这都是架构上需要慎之又慎的事情。


相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
SQL 分布式计算 Hadoop
在文件存储HDFS版上使用 Presto
本文档主要介绍在文件存储HDFS版上搭建及使用 Presto。
787 0
|
8月前
|
XML 存储 分布式计算
【赵渝强老师】史上最详细:Hadoop HDFS的体系架构
HDFS(Hadoop分布式文件系统)由三个核心组件构成:NameNode、DataNode和SecondaryNameNode。NameNode负责管理文件系统的命名空间和客户端请求,维护元数据文件fsimage和edits;DataNode存储实际的数据块,默认大小为128MB;SecondaryNameNode定期合并edits日志到fsimage中,但不作为NameNode的热备份。通过这些组件的协同工作,HDFS实现了高效、可靠的大规模数据存储与管理。
899 70
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
493 6
|
SQL 分布式计算 监控
Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比
Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比
205 3
|
存储 分布式计算 资源调度
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
272 5
|
资源调度 数据可视化 大数据
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(二)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(二)
164 4
|
XML 分布式计算 资源调度
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
463 5
|
SQL 分布式计算 Hadoop
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
233 4
|
XML 资源调度 网络协议
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
549 4
|
分布式计算 资源调度 Hadoop
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
339 4

热门文章

最新文章

下一篇
oss云网关配置