我正在使用spark流应用程序(spark 2.1)使用kafka(0.10.1)主题中的数据。我想订阅新主题而不重新启动流上下文。有没有办法做到这一点?
我可以在apachespark项目中看到一张jira的票(https://issues.apache.org/jira/browse/spark-10320),即使它在2.0版本中是关闭的,我也找不到任何文档或示例来实现这一点。如果你们中有人对此很熟悉,请给我提供相同的文档链接或示例。提前谢谢。
我正在使用spark流应用程序(spark 2.1)使用kafka(0.10.1)主题中的数据。我想订阅新主题而不重新启动流上下文。有没有办法做到这一点?
我可以在apachespark项目中看到一张jira的票(https://issues.apache.org/jira/browse/spark-10320),即使它在2.0版本中是关闭的,我也找不到任何文档或示例来实现这一点。如果你们中有人对此很熟悉,请给我提供相同的文档链接或示例。提前谢谢。
3条答案
按热度按时间yzckvree1#
我发现这个解决方案更适合我的目的。我们可以用不同的数据流共享一个streamingcontext示例。为了更好地管理,我们可以使用相同的流上下文为每个主题创建单独的“dstream”示例,您可以将此“dstream”示例与其主题名称一起存储在Map中,以便以后您可以停止或取消订阅该特定主题。为了清楚起见,请参阅下面的代码。
o3imoua42#
spark 2.0.x和kafka 0.10.x之间的集成支持订阅模式。根据文件:
subscribepattern允许您使用regex指定感兴趣的主题。请注意,与0.8集成不同,使用subscribe或subscribepattern应该响应在运行流期间添加分区。
您可以使用regex模式来注册所有您想要的主题。
ha5z0ras3#
您可以订阅多个主题,如topic1、topic2等
更多信息,Kafka指南