我试图找出执行者用于Spark Streaming作业的内存。对于数据,我使用Spark AllExecutors的rest端点
并且只是为每个执行者总结度量totalDuration * spark.executor.memory
,然后将最终总和作为内存使用量。
但对于全天运行的应用来说,这个问题非常小,逻辑也有问题。我也在使用动态分配和executorIdleTimeout是5秒。
此外,我还假设如果某个执行程序由于空闲超时而被删除,然后被分配给其他任务,则其totalDuration将增加执行程序执行此新任务所花费的时间。
但不寻常的是,随着执行持续时间的增加,内存使用量指标正在下降。