火花流真的很棒。 但是当我使用它时,遇到了一个问题。
场景:我使用Spark Streaming来消耗来自Kafka的消息。 当前有两个主题,我将它们硬编码。但这对扩展性不好。
例如,如果有一个新主题,我需要为镶木地板架构定义一个scala类。然后停止运行中的火花并再次启动火花。
我期望的是spark仍在运行,我可以添加新的jar库,并通知spark将新类加载到新的jar中。因此spark可以使用新的主题消息并将相关的实木复合地板写入HDFS。
很高兴您可以给我一些建议。 我搜索了动态加载,但问题是如何在不停止的情况下将新的jar连接到现有的运行中的Spark。
谢谢。
答案 0 :(得分:0)
元数据是您案例的理想解决方案。您需要维护元数据服务,火花流应用程序将使用该元数据服务作为其使用者的参考。
类似的事情通过REST API公开-
{
topicName: {},
schema: {},
outputPath:
}
并从自定义SparkListener实现添加触发器。