<p>在来自<a href="https://stackoverflow.com/questions/39260820/is-sparks-kmeans-unable-to-handle-bigdata">S. Owen</a>的Spark dev邮件列表中,有几个与此问题相关的JIRA票据,例如:</p>
<ol>
<li><a href="https://issues.apache.org/jira/browse/YARN-2523?jql=text%20~%20%22ResourceManager%20UI%20showing%20negative%22" rel="nofollow noreferrer">ResourceManager UI showing negative value</a></li>
<li><a href="https://issues.apache.org/jira/browse/YARN-1697?jql=text%20~%20%22negative%22" rel="nofollow noreferrer">NodeManager reports negative running containers</a></li>
</ol>
<p>此行为通常发生在(多个)执行器在失败后重新启动时发生。在</p>
<hr/>
<p>当应用程序使用太多执行器时,也会发生这种行为。使用<code>coalesce()</code>修复此情况。在</p>
<p>确切地说,在<a href="https://stackoverflow.com/questions/39401690/prepare-my-bigdata-with-spark-via-python">Prepare my bigdata with Spark via Python</a>中,我有超过40万个分区。我使用了<code>data.coalesce(1024)</code>,正如在RDD重新分区中所描述的那样,我能够绕过Spark UI bug。当涉及到分布式计算和Spark时,分区是一个非常重要的概念。在</p>
<p>在我的问题中,我还使用了1-2k执行器,所以它一定是相关的。在</p>
<p>注意:分区太少,您可能会遇到这种情况<a href="https://stackoverflow.com/questions/28967111/spark-java-error-size-exceeds-integer-max-value">Spark Java Error: Size exceeds Integer.MAX_VALUE</a>。在</p>