当 spark 使用 saveAsTextFile 将大文件写入 HDFS 时,出现错误:java.lang.IllegalArgumentException: Self-suppression not permitted at java.lang.Throwable.addSuppressed(Throwable.java:1043)Caused by: java.io.IOException: All datanodes DatanodeInfoWithStorage
我已经寻找了解决方案,但我没有找到正确的解决方案,我不知道为什么。
是什么导致了这些错误,我该如何修复它们?
最佳答案
错误 self-suppression not permitted
不是这里的实际错误。
当运行时尝试从代码中抛出多个 THROWABLE
实例时,JVM 会抛出此错误。
为此,JDK-7 向 Throwable 引入了“suppressedExceptions”以抑制先前的异常并保留最近的异常。
所以 Java 尝试 - throwable.addSuppressed(throwable)
- 这是无效的并且 Throwable 实例本身抛出 IllegalArgumentException 并且真正的异常以这种方式丢失。
从日志中的这个: Caused by: java.io.IOException: All datanodes DatanodeInfoWithStorag
看来,datanode 存在一些问题。
如果您查看集群中正在运行的服务,并检查所有数据节点和守护进程是否运行良好;事情可能会走上正轨。
问题可能是:
关于apache-spark - Spark中 "self-suppression not permitted"的主要原因是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44490579/