Ren*_*ien 5 hadoop scala out-of-memory executors apache-spark
I\xe2\x80\x99m 尝试在 Yarn 客户端上运行 Spark 作业。我有两个节点,每个节点都有以下配置。\n
I\xe2\x80\x99m 得到 \xe2\x80\x9cExecutorLostFailure (执行器 1 丢失)\xe2\x80\x9d。
\n\n我已经尝试了大部分 Spark 调优配置。我已经减少到 1 个执行程序丢失,因为最初我有 6 个执行程序失败。
\n\n这些是我的配置(我的火花提交):
\n\n\n\n\nHADOOP_USER_NAME=hdfs Spark-submit --class genkvs.CreateFieldMappings\n --master 纱线客户端 --driver-内存 11g --executor-内存 11G --total-executor-cores 16 --num-executors 15 --conf " Spark.executor.extraJavaOptions=-XX:+UseCompressedOops\n -XX:+PrintGCDetails -XX:+PrintGCTimeStamps" --conf Spark.akka.frameSize=1000 --conf Spark.shuffle.memoryFraction=1 --conf\n Spark .rdd.compress=true --conf\n spark.core.connection.ack.wait.timeout=800\n my-data/lookup_cache_spark- assembly-1.0-SNAPSHOT.jar -h\n hdfs://hdp-node -1.zone24x7.lk:8020 -p 800
\n
我的数据大小是 6GB,我在工作中执行 groupBy 操作。
\n\ndef process(in: RDD[(String, String, Int, String)]) = {\n in.groupBy(_._4)\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我\xe2\x80\x99m是Spark的新手,请帮我找出我的错误。我\xe2\x80\x99m已经挣扎了至少一周了。
\n\n预先非常感谢您。
\n弹出两个问题:
Spark.shuffle.memoryFraction 设置为 1。为什么选择它而不是保留默认值 0.2 ?这可能会使其他非洗牌操作挨饿
您只有 11G 可供 16 个核心使用。如果只有 11G,我会将您工作中的工作人员数量设置为不超过 3 个 - 最初(为了解决执行程序丢失的问题)只需尝试 1。如果有 16 个执行程序,每个执行程序的大小约为 700mb - 那么他们得到的大小就不足为奇了OOME/执行者丢失。