gpt4 book ai didi

apache-spark - 如何配置检查点以重新部署 Spark 流应用程序?

转载 作者:行者123 更新时间:2023-12-04 05:05:05 25 4
gpt4 key购买 nike

我正在使用 Spark 流来计算唯一用户。我用 updateStateByKey ,所以我需要配置一个检查点目录。我还在启动应用程序时从检查点加载数据,如 the example in the doc :

// Function to create and setup a new StreamingContext
def functionToCreateContext(): StreamingContext = {
val ssc = new StreamingContext(...) // new context
val lines = ssc.socketTextStream(...) // create DStreams
...
ssc.checkpoint(checkpointDirectory) // set checkpoint directory
ssc
}

// Get StreamingContext from checkpoint data or create a new one
val context = StreamingContext.getOrCreate(checkpointDirectory, functionToCreateContext _)

那么问题来了,如果我的代码改了,那么我重新部署代码,不管代码改了多少,checkpoint都会被加载吗?或者我需要使用我自己的逻辑来持久化我的数据并在下次运行时加载它们。

如果我使用我自己的逻辑来保存和加载 DStream,那么如果应用程序在失败时重新启动,数据不会从检查点目录和我自己的数据库加载吗?

最佳答案

检查点本身包括您的元数据、rdd、dag 甚至您的逻辑。如果您更改逻辑并尝试从最后一个检查点运行它,您很可能会遇到异常。
如果你想使用你自己的逻辑将你的数据保存在某个地方作为检查点,你可能需要实现一个 Spark Action 来将你的检查点数据推送到任何数据库,在下一次运行中,将检查点数据作为初始 RDD 加载(如果你正在使用 updateStateByKey API)并继续您的逻辑。

关于apache-spark - 如何配置检查点以重新部署 Spark 流应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32622949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com