Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Spark执行内存监控_Apache Spark_Memory_Memory Management_Unified Memory - Fatal编程技术网

Apache spark Spark执行内存监控

Apache 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控制台等类型的模糊答案 似乎需要有关堆栈溢出的这些信息,但没有一个

我想要的是能够监视Spark执行内存,而不是SparkUI中可用的存储内存。我的意思是,执行内存不是执行器内存

我所说的执行内存是指:

此区域用于在执行洗牌、联接、排序和聚合时缓冲中间数据。此区域的大小通过spark.shuffle.memoryFraction(默认值0.2)配置。 根据:

在紧张地寻找答案之后,我只找到了未回答的StackOverflow问题,只与存储内存有关的答案,或者使用Ganglia、使用Cloudera控制台等类型的模糊答案

似乎需要有关堆栈溢出的这些信息,但没有一个令人满意的答案。下面是在搜索监视spark内存时StackOverflow的一些主要帖子

问题

Spark版本>2.0

  • 是否可以监视Spark作业的执行内存?通过监控,我的意思是至少可以看到使用/可用,就像SparkUI的executor选项卡中每个executor的存储内存一样。是还是不是

  • 我可以用SparkListeners(@JacekLaskowski?)来做吗?历史服务器呢?或者唯一的方法是通过外部工具?格拉法纳,神经节,其他?如果是外部工具,请您指向教程或提供一些更详细的指南

  • 我看到这似乎还不可能监视执行内存。这似乎也是相关的

  • 峰值执行内存
    是任务中执行内存使用/占用的可靠估计值吗?例如,如果一个阶段UI说一个任务在峰值使用1GB,而我每个执行器有5个cpu,这是否意味着我需要每个执行器上至少5 Gb的可用执行内存来完成一个阶段

  • 我们是否可以使用其他代理来了解执行内存

  • 有没有办法知道执行内存何时开始消耗存储内存?当我的缓存表从SparkUI的存储选项卡中消失或只剩下一部分时,是否意味着它被执行内存逐出


  • 回答我自己的问题供将来参考:

    我们使用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。