apache-spark - 如何获取 Spark Executor 使用的内存
问题描述
我试图了解我们的内存配置是否正常,或者我们是否在 Executor 中过度分配了资源,但我无法弄清楚如何获取内存使用情况。请注意,我在通过 Spark REST API 获取信息方面存在限制。
如果我提取执行程序的详细信息(使用 http://host:4072/api/v1/applications/app-20201109081013-5073/allexecutors),我可以看到的是(请注意,为了清楚起见,我删除了一些数据):
{
"id" : "0",
"hostPort" : "",
"isActive" : true,
"memoryUsed" : 50515998177,
"diskUsed" : 0,
"maxMemory" : 10119177830,
"addTime" : "2020-11-09T08:10:15.933GMT",
"memoryMetrics" : {
"usedOnHeapStorageMemory" : 50515998177,
"usedOffHeapStorageMemory" : 0,
"totalOnHeapStorageMemory" : 10119177830,
"totalOffHeapStorageMemory" : 0
}
我可以理解maxMemory
这基本上是分配的内存(由于内存区域拆分,10GB 的 16GB)......但我对我可以看到的 50GB 感到困惑memoryUsed
。这似乎是自启动以来使用的存储内存的总和,因为它一直在增长......相同的信息显示在 Spark UI 的 Executors 选项卡中。
所以问题是:有一种方法可以获得当前使用的存储内存,最后但并非最不重要的一点是,对于执行内存也是如此?
非常感谢
解决方案
推荐阅读
- javascript - Laravel 419 错误使用 Uppy 开源,如何将 csrf 令牌添加到 Uppy?
- kubernetes - 一旦最近的作业通过,如何清理失败的 CronJob 生成的作业
- reactjs - Next.js SSR 也渲染页面道具
- pintos - 如何解决错误无法执行“qemu”
- intellij-idea - 是否可以将 logcat 窗口添加到 WebStorm
- android - 复制粘贴在android webview中不起作用?
- typescript - 打字稿:有什么方法可以在类中定义对象形状?
- debian - 如何在 debian 最小安装上自动运行 openbox
- transparency - 有没有办法从上传的视频中获得透明度?
- matlab - 在 Matlab 中使用卷积对两个不同长度的序列进行互相关