Spark Streaming目录填满磁盘

Spark Streaming directory fills disk

我有一个流式作业,旨在通过使用 mapWithState 的单个步骤连续 运行,因此需要配置检查点。我用一个本地目录设置它,因为在这个阶段这只是 运行 在单个节点上。

我观察到检查点目录不断快速增长。在几天的时间里,它增长到超过一百万个文件并耗尽了磁盘上的 inode。

问题:

  1. 这是预期的行为吗?
  2. 假设没有,我如何隔离可能导致快照未被 p运行ed 的原因?

错误是 sparkContext.checkpoint(checkpointDir) 而不是 sparkStreamingContext.checkpoint(checkpointDir) 启用了检查点。

前者足以使 Spark 运行 成为有状态流,而不是抱怨未启用检查点,但未调用流式检查点的适当逻辑,因为 sparkStreamingContext.checkpointDir 为空。