Apache Spark 在EMR任务节点中打乱填充磁盘的日志

q3qa4bjr  于 12个月前  发布在  Apache
关注(0)|答案(1)|浏览(123)

我在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)

看起来任务死了,留下了shuffle日志,但是什么可能是任务死的原因呢?重新启动作业会降低磁盘利用率。

ggazkfy8

ggazkfy81#

从Java错误看,Spark的临时日志文件变得非常大,并且在某个时间点强制任务崩溃并出现IO异常(当文件大小为too large时发生-这就是您在重启时看到磁盘使用量减少的原因)。您可以:

  • lower logging levelWARNERROR以减小日志文件大小
  • 将内存分配设置为较大的值,例如-Xmx4096m
  • 设置任务的生命周期-例如,每隔几个小时重新启动任务

相关问题