暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

快速入门:Apache Beam对比Apache Spark

原创 不言 2022-09-19
1242

在我们比较Apache Beam和Apache Spark之前,我们必须看看两者是什么。

  • Apache Beam指的是一个综合规划模型(integrated planning model)。
  • 它使用了很多流式数据处理函数,可以在任何输出引擎上工作。也在很多使用的地方使用管道。
  • Apache Spark是一个大规模的快速和通用数据处理引擎。
  • Spark是一个快速和标准的处理引擎,并与Hadoop数据兼容。

Apache Beam

图片.png

  • Apache Beam(Collection + strEAM)集成了批量和处理数据,而其他的通常用不同的API来实现。

  • 非常容易将流式处理变成集合处理,反之亦然。

  • 使用Beam的主要原因之一是能够在多个运行器之间切换,如-Apache Spark、Apache Flink、Samza和Google Cloud Dataflow。

  • 除了Beam这个综合规划模型外,不同的运行器有不同的能力,因此很难提供一个可移植的API。

  • Apache Beam提出了灵活性。

  • Apache Beam是基于称之为抽象管道,可以被不同的管理器使用。

  • 这个管道包括了从数据下载、转换到最后输出的所有处理阶段。

  • Beam 使用这些管道隐藏了低级项目,例如推送、拆分等工程师。

Apache Spark

图片.png

  • Spark是一个开源的分布式处理系统,用于大型数据负载。

  • 它使用内存,通过对任意规模的数据进行快速分析来提高查询性能。

  • 它提供Java、Scala、Python和R的开发API,并支持所有多种任务的代码重用——批量处理、交互式问答、实时分析、机器阅读和图形处理。

  • 基于Hadoop MapReduce的MapReduce内存模型。

  • Hadoop MapReduce是一种用一致的分布式算法处理大型数据集的编程模型。

  • 工程师可以编写一致的运算符,而不必担心作业分布,以及容错。

  • 有了Spark,只需一个步骤,即把数据读到内存中然后执行操作,并把结果写回来——这就导致了更快的性能。

  • Spark包含了各种机器学习算法(ML)和图形算法的库。

Apache Beam 特性

  • 统一 — 在批处理和流处理中使用单一的编程模型。
  • 可移植 — 在多个执行环境中执行管道。执行环境意味着不同的Runner。例如。Spark Runner、Dataflow Runner等。
  • 可扩展性 — 编写自定义SDK、IO连接器和transformation库。

Apache Spark 特性

  • Spark的处理速度很快。相比在Hadoop集群,Spark应用程序在内存中的运行速度快100倍,在磁盘上的运行速度快10倍。

  • 易于使用 。Spark允许你用Java、Scala、Python和R编写可扩展的应用程序。

  • 开发人员可以用他们喜欢的编程语言创建和运行Spark应用程序。

  • Spark不仅支持简单的"map "和"reduce "操作。还支持SQL查询、流处理和高级分析,包括机器学习算法和图算法。

  • 在Spark的帮助下,我们可以处理实时数据流。

  • Spark可以在集群模式下独立运行,它也可以在-Hadoop YARN、Apache Mesos、Kubernetes上运行,甚至在云中运行。

Apache Beam优势

  • 对于Beam,收集和分发两点是关于延迟连续性、完整性和成本的权衡。

  • 不存在从收集到流的读取或重写的地方。

  • 因此,如果你今天建立了一个批量管道,但你的延迟要求明天发生了变化,你可以很容易地在同一个API中把它转换成流。

  • 同一条管道可以有多种使用方式。因为数据形式和处理时间是分开的。

  • 这意味着当你从一个资产转移到更高级的资产时,你不必重写代码。

  • 可以快速比较选项,以找到适合当前需求的环境和性能的正确组合。

Apache Spark优势

  • Apache Spark最好的一点是背后有个庞大的开源社区。

  • 它开辟了各种大数据的机会。

  • 它拥有处理多种任务负载的能力,包括互操作性问题、实时分析、机器学习和图形处理。

  • 一个应用程序可以无缝地组合多种函数。

  • 由于其处理低内存数据的能力,它可以处理许多数学上的挑战。

  • 包含精心设计的图和数学算法库。

结论

我们可以说两者(Apache beam和Apache spark)都是用来解决同样的问题的,但也有一个小区别。

从表面看,Apache beam看起来像一个框架,它隐藏了处理的复杂性和技术细节,而Spark是一种技术,需要深入研究一下。

Spark有助于简化具有挑战性和计算密集型的任务,即大量处理实时或归档数据(包括结构化和非结构化数据),并且整合了对应复杂功能,如机器学习和图算法。

参考

  • https://beam.apache.org/
  • https://www.youtube.com/watch?v=znBa13Earms

原文标题:Apache Beam Vs Apache Spark: A Quick Guide
原文作者:Udit Raj
原文地址:https://blog.knoldus.com/apache-beam-vs-apache-spark-a-quick-guide/

最后修改时间:2022-09-19 20:44:18
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论