gpt4 book ai didi

apache-spark - 与仅使用 Spark 相比,将 Kafka 与 Spark 结合使用的优势

转载 作者:行者123 更新时间:2023-12-04 15:44:06 25 4
gpt4 key购买 nike

Kafka 很常见。所以很多公司都在用。我完全理解 Kafka 和 Spark 是如何工作的,并且我对它们都有经验。我不明白的是用例。为什么要将 Kafka 与 Spark 一起使用,而不仅仅是 Spark?

在我看来,Kafka 的主要用途是作为实时(流)数据的 ETL 管道中的暂存区。

我想象有一个数据源集群,数据最初存储在那里。它可以是例如Vertica、Cassandra、Hadoop等。

然后是一个处理集群,它从数据源集群读取数据,并将其写入分布式 Kafka 日志,这基本上是一个暂存数据集群。

然后是另一个处理集群——Spark集群,它从Kafka读取数据,对数据进行一些转换和聚合,然后写入最终目的地。

如果我想象的是对的,我可以直接从中间切开Kafka,在Spark集群上运行的Spark程序中,驱动程序会从原始源中读取数据并并行化处理。把Kafka放在中间有什么好处?

你能给我具体的用例吗,在这些用例中,Kafka 有帮助,而不是首先将数据读取到 Spark,而不是通过 Kafka?

最佳答案

Kafka Streams直接解决了流处理中的很多难题:

  • 具有毫秒级延迟的一次事件处理(非微批处理)。
  • 说明完整处理,包括分布式连接和聚合。
  • 方便的 DSL。
  • 使用类似 DataFlow 的模型处理乱序数据。
  • 具有快速故障转移的分布式处理和容错。
  • 无停机滚动部署。

Apache Spark 可以与 Kafka 一起使用以流式传输数据,但如果您部署 Spark 集群只是为了这个新应用程序,那绝对是一个很大的复杂性问题。

只有 Kafka 和您的应用程序。它还会在添加新应用实例或现有实例崩溃时平衡处理负载。并维护表的本地状态并帮助从故障中恢复。

So, what should you use?

The low latency and an easy-to-use event time support also apply to Kafka Streams. It is a rather focused library, and it’s very well-suited for certain types of tasks. That’s also why some of its design can be so optimized for how Kafka works. You don’t need to set up any kind of special Kafka Streams cluster, and there is no cluster manager. And if you need to do a simple Kafka topic-to-topic transformation, count elements by key, enrich a stream with data from another topic, or run an aggregation or only real-time processing — Kafka Streams is for you.

If event time is not relevant and latenciy in the seconds range are acceptable, Spark is the first choice. It is stable and almost any type of system can be easily integrated. In addition it comes with every Hadoop distribution. Furthermore, the code used for batch applications can also be used for the streaming applications as the API is the same.

Kafka 可以轻松处理单个 Topic 中的多个 Source,但在 Spark 中处理起来会很复杂。但是在Kafka的帮助下,它变得非常简单。

链接引用:https://dzone.com/articles/spark-streaming-vs-kafka-stream-1

关于apache-spark - 与仅使用 Spark 相比,将 Kafka 与 Spark 结合使用的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56621418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com