2

我读通过这个博客帖子:阿帕奇卡夫卡和Spark流

http://blog.jaceklaskowski.pl/2015/07/20/real-time-data-processing-using-apache-kafka-and-spark-streaming.html

它讨论了如何使用的Spark流和Apache卡夫卡做一些近乎实时处理。我完全理解这篇文章。它确实展示了如何使用Spark Streaming来读取Topic中的消息。我想知道是否有可用于将消息写入Kakfa主题的Spark Streaming API?

我的用例很简单。我有一组数据,可以以恒定的时间间隔(例如每秒)从给定源读取数据。我使用反应流来做到这一点。我想用Spark对这些数据做一些分析。我想拥有容错能力,所以卡夫卡开始发挥作用。因此,我将基本上做的是以下(请纠正我,如果我错了):

  1. 使用反应流以一定的间隔获得来自外部源的数据
  2. 管结果到卡夫卡的话题
  3. 使用星火流,创建流上下文为消费者
  4. 对消耗数据进行分析

彼此的问题虽然是Spark中的一个实现的流API反应流规范?它有背压处理(Spark Streaming v1.5)吗?

回答

3
  1. 不,目前,Spark Streaming的内置接收器API都不是Reactive Streams实现的实现。但有一个issue for that你会想要遵循。
  2. 但是Spark Streaming 1.5 has internal back-pressure-based dynamic throttling。管道中有一些work to extend that beyond throttling。该限制与Kafka直接流API兼容。

  3. 您可以在Spark Streaming应用程序中写信给卡夫卡,这里是one example

(全面披露:我的一些背压工作implementers之一)

+0

我有一个关于反压功能,你作为一个执行者的问题: 我使背压,但对系统没有影响。我正在处理相当大的数据项目,吞吐量约为40件/秒。我已经修复了maxRate,否则延迟时间会持续增长并永不停止。背压似乎适用于处理推文,其数据速率约为15000 tweets/sec ... – chAlexey

1

你可以查看链接here了解如何做到这一点的一些例子。

相关问题