【问题标题】:Make YARN clean up appcache before retry在重试之前让 YARN 清理 appcache
【发布时间】:2017-03-22 05:26:27
【问题描述】:

情况如下:

  1. YARN 应用程序已启动。它已安排好。
  2. 它会在其 appcache 目录中写入很多内容。
  3. 应用程序失败。
  4. YARN 重新启动它。它处于挂起状态,因为任何地方都没有足够的磁盘空间来安排它。磁盘因运行失败而被 appcache 填满。

如果我手动干预并杀死应用程序,磁盘空间就会被清理干净。现在我可以手动重启应用了。

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

我很乐意接受您能提供的任何解决方案。我对YARN了解不多。这是一个 Apache Spark 应用程序,以 spark-submityarn-client 模式下启动。填满磁盘的文件是 shuffle 溢出文件。

【问题讨论】:

    标签: apache-spark hadoop-yarn


    【解决方案1】:

    这就是发生的事情:

    1. 提交yarn应用时it creates a private local resource文件夹(appcache目录)。
    2. 在这个目录内,火花块管理器creates目录用于存储块数据。如前所述:

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

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

      • Shutdown hook。当您终止应用程序时会发生这种情况。
      • 纱线删除服务。它应该在应用程序完成时自动完成。确保yarn.nodemanager.delete.debug-delay-sec=0。否则有一些unresolved yarn bug

    【讨论】:

    • 谢谢!自从我发布这个问题以来已经 1.5 年了,从那时起我还没有真正看到这个问题。所以我不能轻易确认你的答案,但这是有道理的。我唯一的保留是您说 DeletionService 在应用程序完成时进行清理。如果它没有完成,只是失败并重试怎么办?一样的吗?
    猜你喜欢
    • 2013-04-25
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多