Spark:Executor Lost Failure(添加groupBy作业后)

时间:2015-11-11 05:31:28

标签: scala hadoop apache-spark out-of-memory executors

我正在尝试在Yarn客户端上运行Spark作业。我有两个节点,每个节点都有以下配置。 enter image description here

我收到“ExecutorLostFailure(遗失执行人1)”。

我尝试了大部分Spark调优配置。我已经减少了一个执行者丢失,因为最初我有6个遗嘱执行人失败。

这些是我的配置(我的spark-submit):

  

HADOOP_USER_NAME = hdfs spark-submit --class genkvs.CreateFieldMappings   --master yarn-client --driver-memory 11g --executor-memory 11G --total-executor-cores 16 --num-executors 15 --conf“spark.executor.extraJavaOptions = -XX:+ UseCompressedOops   -XX:+ PrintGCDetails -XX:+ PrintGCTimeStamps“--conf spark.akka.frameSize = 1000 --conf spark.shuffle.memoryFraction = 1 --conf   spark.rdd.compress = true --conf   spark.core.connection.ack.wait.timeout = 800   my-data / lookup_cache_spark-assembly-1.0-SNAPSHOT.jar -h   hdfs://hdp-node-1.zone24x7.lk:8020 -p 800

我的数据大小为6GB,我在工作中正在做一个小组。

def process(in: RDD[(String, String, Int, String)]) = {
    in.groupBy(_._4)
}

我是Spark的新手,请帮我找出错误。我现在至少要挣扎一周了。

非常感谢你。

1 个答案:

答案 0 :(得分:1)

弹出两个问题:

  • spark.shuffle.memoryFraction设置为1.为什么选择它而不是保留0.2?这可能会使其他非洗牌行动挨饿

  • 16个核心只有11G可用。只有11G我会将你工作中的工人数量设置为不超过3 - 并且最初(为了超越遗嘱执行人丢失的问题)只需尝试1.有16个执行者,每个人得到700mb - 这就不足为奇了OOME /遗嘱执行人失败了。