【问题标题】:Can we use Kstream with Spark Streaming?我们可以将 Kstream 与 Spark Streaming 一起使用吗?
【发布时间】:2021-12-05 18:15:52
【问题描述】:

我们可以将 Kstream 与 Spark 一起使用吗?

这是推荐的方法,还是使用 Spark Streaming 是更好的解决方案?

【问题讨论】:

    标签: apache-spark apache-kafka spark-streaming apache-kafka-streams


    【解决方案1】:

    我们可以将 Kstream 与 Spark 一起使用吗?

    当然。

    这是一个推荐的方法

    不是真的(如果有的话)。

    使用 Spark Streaming 是更好的解决方案。

    “更好”要求另一个问题“在什么情况下?”


    Kafka Streams 是一个库,因此可以在任何可以在应用程序中使用库的地方使用,包括。火花应用程序。从这个意义上说,这是可能的,但没有太大帮助恕我直言。

    Kafka Streams 只是一组使用 Consumer 和 Producer API 来转换记录的线程。这正是 Spark Structured Streaming 中的 Kafka 数据格式。

    Kafka Streams 应用程序部署为独立的 Java 应用程序(例如 k8s 中的 Docker 容器)。 Spark Structured Streaming(在 Kubernetes 上使用 Spark)也是如此。

    在单个应用程序中同时使用两者并没有真正的好处,但会喜欢被证明是错误的。

    【讨论】:

      【解决方案2】:

      您不能将 Kafka Streams 与 Spark Streaming 一起使用。

      例如,Kafka Streams 会使用来自主题的单个记录,您会通过并行化调用将其映射到单个元素 Spark RDD?然后你就不用 Spark Streaming 库了

      另外,您使用 Spark Streaming 中的 RDD。然后,无法将这些数据放入 Kafka Streams 拓扑中......

      因此,它们不适合“一起”使用。


      或者,您可以部署一个可能“包含”Kafka Streams 拓扑的 Spark 应用程序,例如,如果您希望将 KTable 作为每个 RDD 操作的一部分,但这与将 Kafka Streams 嵌入任何其他操作没有什么不同的答案JVM 应用程序。请记住,非流式 Spark 执行器是短暂且短暂的,任何 Kafka Streams 状态都不会与 Spark 检查点一起存储

      此外,如果您使用 Kubernetes,例如作为 Spark 调度程序,那么您可以部署单独的容器;一个 Kafka Streams 应用可以使用或生成数据到 Spark Streaming 中,反之亦然。

      【讨论】:

      • 感谢您的回复。任何证明 Kafka Streams 和 Spark Streams 不兼容的支持文档或链接材料。
      • 不知道为什么会有,因为它们是完全独立的 Apache 项目。它们的部署模型完全不同。您可以像 JAR 一样使用 spark-submit 和 Kafka Streams 运行 Spark 代码。 Spark 有自己的检查点管理,可以选择性地依赖文件系统,而 Kafka Streams 总是依赖于 Kafka……等等。您希望如何将它们一起使用?
      • “Kafka Streams 和 Spark (Streaming) 不兼容,不能一起使用。” 肯定是不正确的。您可以在 Spark Structured Streaming 应用程序中实例化 Kafka Streams 应用程序的所有必要部分。他们俩都会很好地工作。 Kafka Streams 会简单地“消耗”一些 Spark 驱动程序的资源,仅此而已。
      • @Jacek 例如,您不能使用两者将主题连接在一起。如果需要,Spark 将无法访问内部 Kafka Streams 主题,并且 Spark 除了字符串/字节序列化之外不使用任何东西......因此,它们不应该一起使用有多种原因.并不是说他们不可能
      • 没有关于“你不能使用两者将主题连接在一起”,不是吗?
      猜你喜欢
      • 2019-06-17
      • 2012-04-25
      • 2022-01-04
      • 2012-07-13
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多