我正在尝试在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,我在工作中正在做一个小组。
def process(in: RDD[(String, String, Int, String)]) = {
in.groupBy(_._4)
}
我是Spark的新手,请帮我找出错误。我现在至少要挣扎一周了。
非常感谢你。
答案 0 :(得分:1)
弹出两个问题:
spark.shuffle.memoryFraction设置为1.为什么选择它而不是保留0.2?这可能会使其他非洗牌行动挨饿
16个核心只有11G可用。只有11G我会将你工作中的工人数量设置为不超过3 - 并且最初(为了超越遗嘱执行人丢失的问题)只需尝试1.有16个执行者,每个人得到700mb - 这就不足为奇了OOME /遗嘱执行人失败了。