【问题标题】:Does Kafka python API support stream processing?Kafka python API 是否支持流处理?
【发布时间】:2019-01-25 21:16:47
【问题描述】:

我在 Java 中使用过 Kafka Streams。我在 python 中找不到类似的 API。 Apache Kafka 是否支持 python 中的流处理?

【问题讨论】:

标签: python apache-kafka apache-kafka-streams kafka-python stream-processing


【解决方案1】:

Kafka Streams 仅作为 JVM 库提供,但它至少有两个 Python 实现

理论上,您可以尝试使用 Jython 或 Py4j 来使用 JVM 实现,但可能需要比必要的更多工作。

除了这些选项之外,您还可以尝试 Apache BeamFlinkSpark,但它们都需要外部集群调度程序才能横向扩展(并且还需要安装 Java)。

如果您对 HTTP 方法没问题,那么运行 KSQLDB 实例(同样,该服务器需要 Java)并使用内置 SQL 函数从 Python 调用其 REST 接口可以工作。但是,在那里构建自己的函数需要编写 Java 代码,我上次检查过。

如果这些选项都不合适,那么您就只能使用基本的消费者/生产者方法。

【讨论】:

  • 有没有使用docs.confluent.io/current/ksql/docs/tutorials/… 和faust 流的示例或教程?
  • KSQL 是用 Java 实现的,所以我不确定我是否理解这个问题
  • @circket_007,KSQL 在 python 中不可用。这就是你的意思。我说的对吗?
  • @Maha KSQL 服务器有一个 REST API,所以你可以提交任何语言的查询
【解决方案2】:

如果您使用的是 Apache Spark,则可以将其用作 生产者消费者。无需依赖 Faust 等第三部分库,但您将需要 Spark 集群管理器(独立、YARN 或 Kubernetes 来扩展它)

要在 Spark 中使用 Kafka 数据流,请使用 Structured Streaming + Kafka Integration Guide

请记住,在使用 spark-submit 时,您必须附加 spark-sql-kafka 包:

spark-submit --packages org.apache.spark:spark-sql-kafka-0-10_2.12:3.0.1 StructuredStreaming.py

此解决方案已通过 Spark 3.0.1Kafka 2.7.0PySpark 进行测试。

This 资源也很有用。

【讨论】:

    猜你喜欢
    • 2020-01-12
    • 2016-08-30
    • 2016-09-15
    • 1970-01-01
    • 1970-01-01
    • 2018-06-06
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多