Sha*_*shi 1 apache-spark spark-streaming spark-dataframe
我必须使用以下用例设计一个Spark Streaming应用程序。我正在为此寻找最佳方法。
我有一个将数据推入1000多个不同主题的应用程序,每个主题都有不同的用途。Spark流式处理将从每个主题接收数据,并且在处理之后,它将回写到相应的另一个主题。
Ex.
Input Type 1 Topic --> Spark Streaming --> Output Type 1 Topic
Input Type 2 Topic --> Spark Streaming --> Output Type 2 Topic
Input Type 3 Topic --> Spark Streaming --> Output Type 3 Topic
.
.
.
Input Type N Topic --> Spark Streaming --> Output Type N Topic and so on.
Run Code Online (Sandbox Code Playgroud)
我需要回答以下问题。
你们还有其他问题吗?
非常感谢您的回应。
您将必须使用推荐的“直接方法”而不是Receiver方法,否则您的应用程序将使用1000个以上的内核,如果您没有更多的内核,它将能够从Kafka的主题中接收数据,但不能处理它们。从Spark Streaming Doc:
请注意,如果要在流应用程序中并行接收多个数据流,则可以创建多个输入DStream(在“性能调整”部分中进一步讨论)。这将创建多个接收器,这些接收器将同时接收多个数据流。但是请注意,Spark工作者/执行程序是一项长期运行的任务,因此它占用了分配给Spark Streaming应用程序的核心之一。
您可以在Kafka Integration(Kafka 0.8中有一个,而0.10中有一个)文档中如何查看消息属于哪个主题
如果客户端添加新主题或分区,则需要更新Spark Streaming的主题conf,然后重新部署它。如果您使用Kafka 0.10,则还可以使用RegEx作为主题名称,请参阅《消费者策略》。我已经从Kafka 0.8中删除的主题中进行了阅读,没有任何问题,请继续进行验证(“信任,但请进行验证”)
请参阅Spark Streaming的有关Fault Tolerance的文档,还可以在--supervise将应用程序提交到集群时使用该模式,请参阅Deploying文档以获取更多信息。
为了实现一次语义,我建议Spark Streaming的主要提交者提供以下Github:https : //github.com/koeninger/kafka-exactly-once
奖励,类似StackOverFlow的好帖子:Spark:并行处理多个kafka主题
Bonus2:注意即将发布的Spark 2.2和结构化流组件
| 归档时间: |
|
| 查看次数: |
766 次 |
| 最近记录: |