首页 > 解决方案 > Google Dataproc 上的 Spark UI:数字解释

问题描述

我在 Google Dataproc 集群上运行 spark 作业(3 个节点 n1-highmem-4,因此 4 个内核和每个 26GB,主节点类型相同)。关于 Hadoop 和 spark UI 上显示的信息,我有几个问题:

当我检查 Hadoop UI 时,我得到了这个:

Hadoop 用户界面截图

我的问题是:我的总 RAM 应该是 84 (3x26) 那么为什么这里只显示 60Gb 呢?24GB 是否用于其他用途?

2)火花执行器截图

这是显示当前启动的执行程序的屏幕。我的问题是:

3) 在此处输入图像描述

这是“存储”面板的屏幕截图。我看到了我正在处理的数据框。我不明白“内存大小”列。它是用于缓存数据帧的总 RAM 吗?与我加载到数据帧(500GB+)中的行文件的大小相比,它似乎非常低。这是一个错误的解释吗?

感谢任何将阅读本文的人!

标签: apache-sparkpysparkgoogle-cloud-dataproc

解决方案


如果您可以看一下这个答案,它主要回答了您的问题 1 和 2。

总而言之,总内存较少,因为保留了一些内存来运行操作系统和系统守护程序或 Hadoop 守护程序本身,例如Namenode、NodeManager。

与核心类似,在您的情况下,它将是 3 个节点,每个节点运行 2 个执行器,每个执行器使用 2 个核心,应用程序主节点除外。应用master所在的节点,只有一个executor,剩下的core给master。这就是为什么您只看到 5 个执行程序和 10 个核心的原因。

对于您的第三个问题,该数字应该是该 RDD 中的分区使用的内存,在您的情况下,它大约等于分配给每个执行程序的内存,约为 13G。

请注意,Spark 不会一次加载您的 500G 数据,而是将数据加载到分区中,同时加载的分区数取决于您可用的内核数。


推荐阅读