gpt4 book ai didi

apache-spark - yarn 上产生 Spark ,容器退出,退出代码为非零143

转载 作者:行者123 更新时间:2023-12-04 06:32:40 28 4
gpt4 key购买 nike

我正在使用HDP 2.5,将spark-submit作为 yarn 簇模式运行。

我试图使用数据帧交叉连接生成数据。
IE

val generatedData = df1.join(df2).join(df3).join(df4)
generatedData.saveAsTable(...)....

df1 存储级别为MEMORY_AND_DISK

df2,df3,df4 存储级别为MEMORY_ONLY

df1具有更多记录,即500万条记录,而df2至df4具有最多100条记录。
这样,使用BroadcastNestedLoopJoin解释计划,我的解释平原将获得更好的性能。

由于某种原因,它总是失败。我不知道如何调试它以及内存在哪里爆炸。

错误日志输出:
16/12/06 19:44:08 WARN YarnAllocator: Container marked as failed: container_e33_1480922439133_0845_02_000002 on host: hdp4. Exit status: 143. Diagnostics: Container killed on request. Exit code is 143
Container exited with a non-zero exit code 143
Killed by external signal

16/12/06 19:44:08 WARN YarnSchedulerBackend$YarnSchedulerEndpoint: Container marked as failed: container_e33_1480922439133_0845_02_000002 on host: hdp4. Exit status: 143. Diagnostics: Container killed on request. Exit code is 143
Container exited with a non-zero exit code 143
Killed by external signal

16/12/06 19:44:08 ERROR YarnClusterScheduler: Lost executor 1 on hdp4: Container marked as failed: container_e33_1480922439133_0845_02_000002 on host: hdp4. Exit status: 143. Diagnostics: Container killed on request. Exit code is 143
Container exited with a non-zero exit code 143
Killed by external signal

16/12/06 19:44:08 WARN TaskSetManager: Lost task 1.0 in stage 12.0 (TID 19, hdp4): ExecutorLostFailure (executor 1 exited caused by one of the running tasks) Reason: Container marked as failed: container_e33_1480922439133_0845_02_000002 on host: hdp4. Exit status: 143. Diagnostics: Container killed on request. Exit code is 143
Container exited with a non-zero exit code 143
Killed by external signal

在出现此错误之前,我没有看到任何WARN或ERROR日志。
问题是什么?我应该在哪里寻找内存消耗?
我在SparkUI的 存储选项卡上看不到任何内容。
该日志取自HDP 2.5上的 yarn 资源管理器UI

编辑
查看容器日志,似乎是一个 java.lang.OutOfMemoryError: GC overhead limit exceeded
我知道如何增加内存,但是我没有任何内存了。
如何在没有出现此错误的情况下,对4个数据框进行笛卡尔/乘积合并。

最佳答案

我也遇到了这个问题,并尝试通过引用一些博客来解决它。
1.运行spark add conf bellow:

--conf 'spark.driver.extraJavaOptions=-XX:+UseCompressedOops -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps' \
--conf 'spark.executor.extraJavaOptions=-XX:+UseCompressedOops -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC ' \

  • 当使用jvm GC时,您将得到以下消息:

  • Heap after GC invocations=157 (full 98):
    PSYoungGen total 940544K, used 853456K [0x0000000781800000, 0x00000007c0000000, 0x00000007c0000000)
    eden space 860160K, 99% used [0x0000000781800000,0x00000007b5974118,0x00000007b6000000)
    from space 80384K, 0% used [0x00000007b6000000,0x00000007b6000000,0x00000007bae80000)
    to space 77824K, 0% used [0x00000007bb400000,0x00000007bb400000,0x00000007c0000000)
    ParOldGen total 2048000K, used 2047964K [0x0000000704800000, 0x0000000781800000, 0x0000000781800000)
    object space 2048000K, 99% used [0x0000000704800000,0x00000007817f7148,0x0000000781800000)
    Metaspace used 43044K, capacity 43310K, committed 44288K, reserved 1087488K
    class space used 6618K, capacity 6701K, committed 6912K, reserved 1048576K
    }

  • PSYoungGen和ParOldGen都为99%,那么您将得到java.lang.OutOfMemoryError:超出了GC开销限制
    如果创建了更多对象。
  • 在有更多内存资源可用时,尝试为执行程序或驱动程序添加更多内存:

  • --executor-memory 10000m \
    --driver-memory 10000m \


  • 就我而言:PSYoungGen的内存小于ParOldGen,这导致许多年轻对象进入ParOldGen内存区域并最终进入
    ParOldGen不可用。因此java.lang.OutOfMemoryError:出现Java堆空间错误。
  • 为执行者添加conf:

  • 'spark.executor.extraJavaOptions=-XX:NewRatio=1 -XX:+UseCompressedOops -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps '



    -XX:NewRatio = rate
    速率= ParOldGen/PSYoungGen

    这取决于你。你可以尝试GC策略,如
    -XX:+UseSerialGC :Serial Collector 
    -XX:+UseParallelGC :Parallel Collector
    -XX:+UseParallelOldGC :Parallel Old collector
    -XX:+UseConcMarkSweepGC :Concurrent Mark Sweep

    Java Concurrent and Parallel GC
  • 如果第4步和第6步均已完成,但仍然出现错误,则应考虑更改代码。例如,减少ML模型中的迭代器时间。
  • 关于apache-spark - yarn 上产生 Spark ,容器退出,退出代码为非零143,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41002340/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com