1

我正在使用 YourKit 进行内存分析,为了简化 Spark 应用程序的问题,我在 DirectRunner 模式下运行该应用程序。我正在测试的机器有 32 个内核。捕获的快照如下所示:

在此处输入图像描述

“direct-runner-worker”有 32 个线程,我似乎错误地假设直接运行器只占用一个线程。我的问题是 - 并行化线程的数量不应该有限制吗?在快照中,线程占用 250 到 350 MB,这将不可避免地崩溃。

另一个问题是我不确定我是否应该遵循http://spark.apache.org/developer-tools.html#profiling对于我的情况,文档似乎是针对使用 SparkCluster 运行的应用程序,但因为我使用的是 DirectRunner (出于调试目的)那么也许我所做的一切都足够好 - 有没有人有这方面的经验?

任何指针表示赞赏!:)

PS:我对 2.15 亿个对象的创建感到震惊,但这应该会随着线程数的增加而下降。但是,每个线程约 600 万个对象似乎很多。

4

0 回答 0