【问题标题】:How to attach a jar to the spark cluster that is executing the job?如何将 jar 附加到正在执行作业的 spark 集群?
【发布时间】:2018-08-12 04:05:41
【问题描述】:

Spark 流式传输真的很棒。 但是当我使用它时,我遇到了一个问题。

场景:我使用 Spark Streaming 来消费来自 Kafka 的消息。 目前有两个主题,我对它们进行了硬编码。但这不利于扩展性。

例如,如果有一个新主题,我需要为 parquet 模式定义一个 scala 类。然后停止运行的火花并再次启动火花。

我期待的是 spark 仍在运行,我可以添加新的 jar 库并通知 spark 在新 jar 中加载新类。因此 spark 可以消费新的主题消息并将相关的 parquet 写入 HDFS。

非常感谢您能给我一些建议。 我搜索了动态加载,但问题是如何将新 jar 附加到现有正在运行的 spark 而不停止它。

提前谢谢你。

【问题讨论】:

  • This 是你必须在 spark 中追逐和实现的——记住 Spark 是一个分布式框架,jar / code 应该对所有节点都可用!

标签: java scala apache-spark


【解决方案1】:

元数据是您案例的理想解决方案。您需要维护一个元数据服务,该服务由 spark 流应用程序使用,作为其消费者的参考。

这样的东西通过 REST API 公开 -

{
topicName: {},
schema: {},
outputPath:
}

并从自定义 SparkListener 实现中添加触发器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    • 2017-03-14
    • 1970-01-01
    • 2015-05-05
    • 2018-08-24
    • 2016-09-05
    • 1970-01-01
    相关资源
    最近更新 更多