【发布时间】:2017-04-21 12:05:42
【问题描述】:
我正在使用 HDP 2.5,以纱线集群模式运行 spark-submit。
我尝试使用数据框交叉连接生成数据。 即
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 的 Storage 选项卡上看不到任何内容。 日志取自 HDP 2.5 上的 yarn 资源管理器 UI
编辑
查看容器日志,好像是java.lang.OutOfMemoryError: GC overhead limit exceeded
我知道如何增加内存,但我已经没有任何内存了。 如何在不出现此错误的情况下使用 4 个数据框进行笛卡尔/产品连接。
【问题讨论】:
-
如果数据帧的大小如您所建议的那样(5e6、100、100、100),笛卡尔积将有大约 5e12 条记录,即 5 万亿。您没有提到列数,但是如果您有一个整数列,则需要 TB 的存储空间。如果您有多个列,则连接的数据库可能需要数百或数千 TB。这真的是你想要的吗?
-
1 列。这是一个数据生成器实用程序,内存爆炸。
标签: apache-spark hive hadoop-yarn hortonworks-data-platform