我正在阅读有关Spark内存管理的演示文稿,想知道如何获得良好的执行器内存使用图形(类似于演示文稿中提到的内容),以更好地理解内存不足错误。此外,在Spark执行器中分析非堆内存使用的最佳方法是什么?如何找到随时间变化而产生的非堆内存使用量?
我尝试了Ganglia,但它只提供节点级别的指标。使用节点级别的指标很难理解执行器级别的内存使用情况。
我尝试了Ganglia,但它只提供节点级别的指标。使用节点级别的指标很难理解执行器级别的内存使用情况。
我一直在思考类似的工具!
我认为org.apache.spark.scheduler.SparkListener是访问Apache Spark中所有低级别指标的接口,其中onExecutorMetricsUpdate
是开发更高级别监控工具时要查看的方法。
你还可以使用JMX接口来监视JVM,但可能过于低级,并且肯定缺乏关于Spark如何使用资源的上下文信息。