检查点对 Apache Spark 有什么作用,它是否会对 RAM 或 CPU 造成任何影响?
问问题
1109 次
1 回答
1
来自 Apache Streaming Documentation - 希望它有帮助:
流式应用程序必须 24/7 全天候运行,因此必须能够应对与应用程序逻辑无关的故障(例如,系统故障、JVM 崩溃等)。为此,Spark Streaming 需要检查点足够的信息到容错存储系统,以便它可以从故障中恢复。检查点有两种类型的数据。
- 元数据检查点 - 将定义流计算的信息保存到 HDFS 等容错存储中。这用于从运行流应用程序驱动程序的节点故障中恢复(稍后详细讨论)。元数据包括:
- 配置 - 用于创建流应用程序的配置。
- DStream 操作 - 定义流应用程序的一组 DStream 操作。
- 不完整的批次
- 作业已排队但尚未完成的批次。
- 数据检查点 - 将生成的 RDD 保存到可靠的存储中。这在一些跨多个批次组合数据的有状态转换中是必要的。在这样的转换中,生成的 RDD 依赖于前一批的 RDD,这导致依赖链的长度随着时间的推移而不断增加。为了避免恢复时间的无限制增加(与依赖链成比例),有状态转换的中间 RDD 会定期检查点到可靠存储(例如 HDFS)以切断依赖链。
总而言之,元数据检查点主要用于从驱动程序故障中恢复,而数据或 RDD 检查点对于使用状态转换的基本功能也是必需的。
于 2016-04-14T19:52:24.140 回答