4

我正在尝试在 Yarn 客户端上运行 Spark 作业。我有两个节点,每个节点都有以下配置。 在此处输入图像描述

我收到“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,我正在做一个 groupBy 我的工作。

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

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

非常感谢您提前。

4

1 回答 1

1

弹出两个问题:

  • spark.shuffle.memoryFraction 设置为 1。为什么选择它而不是保留默认值 0.2 ?这可能会饿死其他非洗牌操作

  • 您只有 11G 可用于 16 个内核。如果只有 11G,我会将您工作中的工作人员数量设置为不超过 3 - 最初(为了解决执行者丢失的问题)只需尝试 1。有 16 个执行者,每个执行者得到 700mb - 那么他们得到的也就不足为奇了OOME / 执行者丢失。

于 2015-11-11T05:37:45.807 回答