2016-06-28 7 views

答えて

1

私は今日これについて研究しており、RDDブロックはRDDブロックと非RDDブロックの合計であると思われます。でコードをチェックアウト : https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/ui/exec/ExecutorsPage.scala

val rddBlocks = status.numBlocks 

そして、あなたはGithubの上のApacheスパークレポの下のリンクに行く場合:

 /** 
    * Return the number of blocks stored in this block manager in O(RDDs) time. 
    * 
    * @note This is much faster than `this.blocks.size`, which is O(blocks) time. 
    */ 
    def numBlocks: Int = _nonRddBlocks.size + numRddBlocks 
https://github.com/apache/spark/blob/d5b1d5fc80153571c308130833d0c0774de62c92/core/src/main/scala/org/apache/spark/storage/StorageUtils.scala

あなたは、コードの行の下にあります

非rddブロックは、メモリにキャッシュブロックとして格納されるため、ブロードキャスト変数によって作成されます。タスクは、ブロードキャスト変数を介してエグゼキュータにドライバによって送信されます。 これらのシステム作成ブロードキャスト変数は、ContextCleanerサービスを通じて削除され、対応する非RDDブロックが削除されます。 RDDブロックはrdd.unpersist()によって固定されていません。

関連する問題