跳转到内容

分类:大数据框架

来自代码酷

大数据框架是用于处理大规模数据集的分布式系统的软件组件集合。这些框架可以处理结构化、半结构化或非结构化的数据,数据量可以从TB级别到PB级别甚至EB级别。本分类包含了各种大数据处理框架的条目。

大数据框架的分类[编辑 | 编辑源代码]

按处理模式分类[编辑 | 编辑源代码]

批处理框架[编辑 | 编辑源代码]

批处理框架主要处理静态数据,一次性处理大量数据并输出结果。这些框架适用于不需要实时响应的工作负载。

  • Apache Hadoop:最知名的批处理框架,使用MapReduce处理模型和HDFS存储系统

流处理框架[编辑 | 编辑源代码]

流处理框架处理"无限"或无界的数据集,实时处理数据。常见用例包括监控用户活动、处理游戏日志和检测欺诈交易。

  • Apache Storm:分布式实时计算系统,应用程序设计为有向无环图形式。Storm专为轻松处理无界流而设计,可与任何编程语言一起使用
  • Apache Samza:适用于Hadoop和Kafka已经可用或易于实施的流工作负载。Samza非常适合有多个团队在处理流程的各个阶段使用(但不一定紧密协调)数据流的组织

混合处理框架[编辑 | 编辑源代码]

混合处理框架可以同时处理批处理和流处理工作负载。

  • Apache Spark:被认为是第三代数据处理框架,原生支持批处理和流处理。Spark利用微批处理,将无界事件流划分为小块(批次)并触发计算
  • Apache Flink:被认为是第四代数据处理框架,原生支持批处理和流处理。它推广连续流处理,一旦接收到事件就触发事件计算

按性能特点分类[编辑 | 编辑源代码]

低延迟框架[编辑 | 编辑源代码]

优化了处理速度,提供快速响应时间的框架。

  • Apache Flink:提供真正的流引擎,使用连续流、基于操作符的流模型。Flink的低延迟性能始终优于Spark,即使在更高的吞吐量下也是如此
  • Apache Storm:提供非常低的延迟处理,但在默认配置下可能会传递重复项且无法保证顺序

高吞吐量框架[编辑 | 编辑源代码]

优化了数据处理量,能够在给定时间内处理更多数据的框架。

  • Apache Spark:批处理提供令人难以置信的速度优势,但需要较高的内存使用量。Spark Streaming是一个适用于重视吞吐量而非延迟的工作负载的流处理解决方案

内存管理优化框架[编辑 | 编辑源代码]

针对内存使用进行了特殊优化的框架。

  • Apache Spark:提供可配置的内存管理。Spark 1.6的最新版本已开始自动化内存管理
  • Apache Flink:提供自动内存管理。它有自己的内存管理系统,与Java的垃圾收集器分开

按适用场景分类[编辑 | 编辑源代码]

数据仓库和ETL[编辑 | 编辑源代码]

适合数据提取、转换和加载的框架。

  • Apache Hadoop:结合Hive可以进行类似SQL的查询和分析
  • Apache Flink:结合了有状态流处理与处理ETL和批处理作业的能力

机器学习和图形处理[编辑 | 编辑源代码]

针对AI和图形算法优化的框架。

  • Apache Spark:包含MLlib库,设计用于覆盖各种批处理应用程序、机器学习、流数据处理和交互式查询
  • Apache Flink:支持控制循环依赖图,以非常高效的方式表示机器学习算法

实时分析和监控[编辑 | 编辑源代码]

适合需要即时响应的应用场景的框架。

  • Apache Storm:适用于需要快速响应的应用程序,如检测安全漏洞。被设计为可扩展性和高度容错性
  • Apache Flink:非常适合事件驱动的工作负载,例如网站上的用户交互或在线购买订单

框架比较[编辑 | 编辑源代码]

速度比较[编辑 | 编辑源代码]

如果将Hadoop比作2G,Spark比作3G,那么Flink可以被视为大数据处理的4G。Flink还提供低延迟和高吞吐量应用程序。各框架速度排名(从快到慢):

  1. Apache Flink
  2. Apache Spark
  3. Apache Storm
  4. Apache Hadoop

处理模型比较[编辑 | 编辑源代码]

  • Apache Hadoop:MapReduce是面向批处理的工具。它一次性接收大量数据集作为输入,处理它并产生结果
  • Apache Spark:Apache Spark Streaming以微批处理方式处理数据流。每个批次包含在批处理期间到达的事件集合
  • Apache Flink:Apache Flink是真正的流引擎。它对工作负载使用流:流处理、SQL、微批处理和批处理。批处理是有限集的流数据

社区和生态系统[编辑 | 编辑源代码]

  • Apache Hadoop:Hadoop生态系统非常庞大,提供许多其他工具,这些工具在Hadoop之上工作并使其具有高度特性
  • Apache Spark:被认为是最活跃开发(和采用)的开源数据工具
  • Apache Flink:相对较新的项目,但发展迅速

相关类别[编辑 | 编辑源代码]

外部链接[编辑 | 编辑源代码]

分类“大数据框架”中的页面

以下200个页面属于本分类,共670个页面。

(上一页)(下一页

A

(上一页)(下一页