在没有停机的情况下,在Spark-Streaming中对生产进行一些更改的过程是什么?
答案 0 :(得分:1)
如果您正在寻找升级应用程序代码,请参阅spark-streaming文档。
升级应用程序代码如果正在运行Spark Streaming应用程序 需要使用新的应用程序代码进行升级,然后有两个 可能的机制。
升级的Spark Streaming应用程序已启动并运行 与现有应用程序并行。一旦新的(接收 与旧的数据相同的数据已经预热并准备好接头 时间,旧的可以被打倒。请注意,这可以完成 用于支持将数据发送到两个目标的数据源 (即早期和升级的应用程序)。
现有应用程序正常关闭(请参阅 StreamingContext.stop(...)或JavaStreamingContext.stop(...)for 优雅的关闭选项,确保收到的数据 在关机前完全处理。然后升级的应用程序 可以启动,它将从同一点开始处理 早期的申请中断了。请注意,这只能通过以下方式完成 支持源端缓冲的输入源(如Kafka和 Flume)因为数据需要在之前的应用程序中进行缓冲 down并且升级的应用程序尚未启动。并重新启动 无法完成升级前代码的早期检查点信息。该 检查点信息基本上包含序列化 Scala / Java / Python对象并试图用new反序列化对象, 修改后的类可能会导致错误。在这种情况下,要么开始 已升级的应用程序具有不同的检查点目录,或删除 以前的检查点目录。
https://spark.apache.org/docs/latest/streaming-programming-guide.html