在 YARN 架构中,ApplicationMaster (AM) 是负责管理单个应用程序生命周期的核心组件。它负责向 ResourceManager 申请资源(Container)、与 NodeManager 通信启动任务、以及监控任务的运行状态。 如果 ApplicationMaster 的内存设置过小,会导致一系列严重的问题,主要可以归结为以下几个方面: 1. 频繁的 Full GC 与性能极度下降 当 AM 内存不足但尚未完全耗尽时,JVM 会频繁触发 Full GC (垃圾回收) 来尝试释放内存。 现象:AM 会出现严重的 "Stop-The-World"(程序暂停)现象。 后果: AM 无法及时处理来自各个 Task/Executor 的心跳信息。 任务调度变慢,整个作业的执行时间被大幅拉长。 ResourceManager 可能会因为长时间收不到 AM 的心跳,误判 AM 已经挂掉。 2. ApplicationMaster 崩溃退出 (OOM) 这是最直接的后果。如果内存实在不够用,AM 会直接抛出 或 异常并崩溃。 后果:YARN 默认会尝试重启失败的 AM(由...