在重试之前让YARN清理appcache

Dan*_*bos 10 hadoop-yarn apache-spark

情况如下:

  1. YARN应用程序已启动.它被安排好了.
  2. 它在appcache目录中写了很多东西.
  3. 应用程序失败.
  4. YARN重启它.它正在等待,因为没有足够的磁盘空间来安排它.磁盘由失败的运行中的appcache填充.

如果我手动干预并终止应用程序,则清理磁盘空间.现在我可以手动重启应用程序,这很好.

我希望我能告诉自动重试清理磁盘.或者,我认为它可以将使用过的磁盘计为新分配的一部分,因为它无论如何都属于应用程序.

我很乐意接受你能提供的任何解决方案.我不太了解YARN.这是一个以spark-submitin yarn-client模式启动的Apache Spark应用程序.填满磁盘的文件是shuffle溢出文件.

pru*_*nko 4

所以会发生这样的事情:

  1. 当您提交纱线应用程序时,它会创建一个私有本地资源文件夹(appcache 目录)。
  2. 在此目录中,spark 块管理器创建用于存储块数据的目录。如上所述:

使用外部洗牌服务时,本地目录不会在 JVM 退出时被删除。

  1. 可以通过以下方式清理该目录:

    • 关机钩子。这是当你终止应用程序时会发生的情况。
    • 纱线删除服务。它应该在应用程序完成时自动完成。确保yarn.nodemanager.delete.debug-delay-sec=0。否则会有一些未解决的纱线错误