EMR 任务节点中的 Shuffle 日志填满磁盘

问题描述 投票:0回答:1

我在 EMR 6.9 上运行 Spark 3 作业,并且它是连续运行的作业。我注意到随着时间的推移,任务节点的磁盘使用量逐渐增加。我注意到任务节点上有这样的错误 -

2023-04-12 22:02:45,532 WARN org.apache.hadoop.yarn.util.ProcfsBasedProcessTree (Container Monitor): Error reading the stream java.io.IOException: No such process at java.io.FileInputStream.readBytes(Native Method) at java.io.FileInputStream.read(FileInputStream.java:255) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178) at java.io.InputStreamReader.read(InputStreamReader.java:184) at java.io.BufferedReader.fill(BufferedReader.java:161) at java.io.BufferedReader.readLine(BufferedReader.java:324) at java.io.BufferedReader.readLine(BufferedReader.java:389) at org.apache.hadoop.yarn.util.ProcfsBasedProcessTree.constructProcessInfo(ProcfsBasedProcessTree.java:531) at org.apache.hadoop.yarn.util.ProcfsBasedProcessTree.updateProcessTree(ProcfsBasedProcessTree.java:211) at org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainersMonitorImpl$MonitoringThread.run(ContainersMonitorImpl.java:537)

任务似乎死亡并留下洗牌日志,但是任务死亡的原因可能是什么? 重新启动作业会降低磁盘利用率。

apache-spark hadoop-yarn amazon-emr
1个回答
0
投票

从 Java 错误来看,Spark 的临时日志文件变得非常大,并且在某个时间点迫使任务因 IO 异常而崩溃(当文件大小太大时发生 - 这就是您看到磁盘的原因重新启动时使用量会减少)。你可以:

  • 降低日志记录级别
    WARN
    ERROR
    以减少日志文件大小
  • 将 Spark 内存分配设置为更大的值,例如
    -Xmx4096m
  • 为您的任务设置生命周期 - 例如每隔几个小时重新启动一次任务
© www.soinside.com 2019 - 2024. All rights reserved.