跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
分类:大数据框架
”︁
分类
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
大数据框架是用于处理大规模数据集的分布式系统的软件组件集合。这些框架可以处理结构化、半结构化或非结构化的数据,数据量可以从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还提供低延迟和高吞吐量应用程序。各框架速度排名(从快到慢): # Apache Flink # Apache Spark # Apache Storm # Apache Hadoop === 处理模型比较 === * [[Apache Hadoop]]:MapReduce是面向批处理的工具。它一次性接收大量数据集作为输入,处理它并产生结果 * [[Apache Spark]]:Apache Spark Streaming以微批处理方式处理数据流。每个批次包含在批处理期间到达的事件集合 * [[Apache Flink]]:Apache Flink是真正的流引擎。它对工作负载使用流:流处理、SQL、微批处理和批处理。批处理是有限集的流数据 === 社区和生态系统 === * [[Apache Hadoop]]:Hadoop生态系统非常庞大,提供许多其他工具,这些工具在Hadoop之上工作并使其具有高度特性 * [[Apache Spark]]:被认为是最活跃开发(和采用)的开源数据工具 * [[Apache Flink]]:相对较新的项目,但发展迅速 == 相关类别 == * [[:Category:数据处理]] * [[:Category:分布式计算]] * [[:Category:开源软件]] == 外部链接 == * [https://hadoop.apache.org/ Apache Hadoop官方网站] * [https://spark.apache.org/ Apache Spark官方网站] * [https://flink.apache.org/ Apache Flink官方网站] * [https://storm.apache.org/ Apache Storm官方网站] * [https://samza.apache.org/ Apache Samza官方网站] [[Category:数据处理]] [[Category:分布式计算]] [[Category:开源软件]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)