我们在Red Hat 4.4.7上使用Spark 1.6和JVM 1.6来运行我们的火花流应用程序/作业。我们的一些流媒体作业使用复杂的状态,我们有scala案例类来表示它们。但在测试作业的升级周期时,我们面临的问题如下。由于流媒体作业将永远运行,因此需要帮助设计易于升级的应用程序。
我正在检查作业无法从检查点重新启动的确切用例。
在做了一些谷歌搜索后,处理问题的一般准则似乎是,
由于信息分散在整个网络上,我觉得很难得出结论。以下是我的问题,
答案 0 :(得分:1)
考虑一个像jvm / scala / spark / etc这样的环境升级的情况......无论有什么变化,都无法保证检查点永远可靠。
检查点旨在帮助仅在故障/崩溃的不幸事件中恢复,而不是设计用作数据存储!!!
最好的选择是定期将数据刷新到可靠的存储(HDFS / DB / etc ...),并在任何形式的升级时读取与初始RDD相同的数据。
答案 1 :(得分:0)
&#34;最好的选择是定期将数据刷新到可靠的存储(HDFS / DB / etc ...),并在任何形式的升级时读取与初始RDD相同的内容&#34; < / p>
如何定期将Spark State数据刷新到外部商店?是否有可以提供对Spark StateRDD的访问的API调用?