我正在读这篇博文:
http://blog.jaceklaskowski.pl/2015/07/20/real-time-data-processing-using-apache-kafka-and-spark-streaming.html
讨论了如何使用spark流和apachekafka进行近实时处理。我完全理解这篇文章。它确实展示了我如何使用spark流来阅读某个主题的消息。我想知道是否有一个Spark流api,我可以用来写消息到kakfa主题?
我的用例非常简单。我有一组数据,我可以以固定的间隔(比如说每秒)从给定的源中读取。我用React流来做这个。我想用spark做一些数据分析。我想有容错能力,所以Kafka开始发挥作用。因此,我基本上会做以下几点(如果我错了,请纠正我):
使用React流以固定的间隔从外部源获取数据
将结果导入Kafka主题
使用spark流媒体,为消费者创建流媒体上下文
对消耗的数据进行分析
然而,另一个问题是spark中的流api是React流规范的实现吗?它是否有背压处理(Spark流1.5版)?
2条答案
按热度按时间qco9c6ql1#
如果您必须将结果流写入另一个Kafka主题(比如说“topic_x”),首先,您必须在要写入主题的结果流中具有名称为“key”和“value”的列。
有关更多详细信息,请参阅https://spark.apache.org/docs/2.4.1/structured-streaming-kafka-integration.html
vxbzzdmp2#
不,目前,spark streaming的内置接收器API都不是React流实现的实现。但有一个问题,你会想遵循。
但spark streaming 1.5具有基于内部背压的动态节流功能。除了在管道中节流之外,还有一些工作要做。此限制与kafka direct stream api兼容。
您可以在spark流应用程序中编写kafka,下面是一个示例。
(充分披露:我是一些背压工作的实施者之一)