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

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

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

scala amazon-web-services apache-spark amazon-emr
1个回答
2
投票

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

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

spark.dynamicAllocation.enabled允许Spark将执行程序动态分配给不同的任务。设置为false时,spark.shuffle.service.enabled禁用外部shuffle服务,数据仅存储在执行程序中。重新分配执行程序时,数据将丢失,并且异常“java.io.IOException:所有数据节点都很糟糕”。被抛出数据请求。

© www.soinside.com 2019 - 2024. All rights reserved.