Apache spark Spark执行内存监控
我想要的是能够监视Spark执行内存,而不是SparkUI中可用的存储内存。我的意思是,执行内存不是执行器内存 我所说的执行内存是指: 此区域用于在执行洗牌、联接、排序和聚合时缓冲中间数据。此区域的大小通过spark.shuffle.memoryFraction(默认值0.2)配置。 根据: 在紧张地寻找答案之后,我只找到了未回答的StackOverflow问题,只与存储内存有关的答案,或者使用Ganglia、使用Cloudera控制台等类型的模糊答案 似乎需要有关堆栈溢出的这些信息,但没有一个令人满意的答案。下面是在搜索监视spark内存时StackOverflow的一些主要帖子 问题 Spark版本>2.0Apache spark Spark执行内存监控,apache-spark,memory,memory-management,unified-memory,Apache Spark,Memory,Memory Management,Unified Memory,我想要的是能够监视Spark执行内存,而不是SparkUI中可用的存储内存。我的意思是,执行内存不是执行器内存 我所说的执行内存是指: 此区域用于在执行洗牌、联接、排序和聚合时缓冲中间数据。此区域的大小通过spark.shuffle.memoryFraction(默认值0.2)配置。 根据: 在紧张地寻找答案之后,我只找到了未回答的StackOverflow问题,只与存储内存有关的答案,或者使用Ganglia、使用Cloudera控制台等类型的模糊答案 似乎需要有关堆栈溢出的这些信息,但没有一个
峰值执行内存
是任务中执行内存使用/占用的可靠估计值吗?例如,如果一个阶段UI说一个任务在峰值使用1GB,而我每个执行器有5个cpu,这是否意味着我需要每个执行器上至少5 Gb的可用执行内存来完成一个阶段回答我自己的问题供将来参考: 我们使用Mesos作为集群管理器。在Mesos UI中,我找到了一个页面,其中列出了给定工作进程上的所有执行器,在那里可以找到执行器的内存使用情况。它似乎是一个总内存使用量存储+执行。我可以清楚地看到,当记忆填满时,执行者就死了 要访问:
- 转到列出所有群集工作程序的代理选项卡
- 选择工人
- 选择带有脚本名称的框架
- 在内部,您将有一个在该特定工作人员上运行的作业的执行者列表李>
- 有关内存使用情况,请参阅:Mem(已使用/已分配)
Spark Cluster
如果您想知道如何通过编程提取这个数字,请参阅我对这个问题的回答:我为executor启用Spark内部度量,我可以为我的研究获取有关JVMHeapMemory、jvm.heap.usage、OnHeapExecutionMemory、OnHeapRoageMemory和OnHeapPunifiedMemory的信息。有关更多信息,请参阅文档()。如果您在web UI中看到它,您可以在SparkListeners中看到它(因为web UI是一组SparkListeners)。我得重新回忆一下,才能用非常准确的话回答这个问题。谢谢你的邀请@杰克拉斯科夫斯基,我在斯巴库伊看不到。我假设SparkListeners中的可用内容比SparkUI中的要多。感谢您的光临。有什么可以为Spark2.x做的来获得内存利用率的吗。以防我们不想依赖RM。