在EMR群集上运行Spark作业时出现异常“ java.io.IOException:所有数据节点均损坏”

时间:2019-04-30 16:21:35

标签: scala amazon-web-services apache-spark amazon-emr

我们有AWS EMR设置来处理用Scala编写的作业。我们能够在小型数据集上运行作业,但是在大型数据集上运行相同作业时,出现异常“ java.io.IOException:所有数据节点均损坏。”

1 个答案:

答案 0 :(得分:2)

将spark.shuffle.service.enabled设置为true可以为我解决此问题。

AWS EMR的默认配置已将 spark.dynamicAllocation.enabled 设置为true,但将 spark.shuffle.service.enabled 设置为 false

spark.dynamicAllocation.enabled 允许Spark动态将执行程序分配给不同的任务。 spark.shuffle.service.enabled 设置为 false 时,将禁用外部随机播放服务,并且数据仅存储在执行程序上。重新分配执行程序后,数据将丢失,并且出现异常“ java.io.IOException:所有数据节点均损坏”。引发数据请求。