3

メモリフットプリントの概念についてはよくわかりません。たとえばの寄木細工のファイルをロードするとき。1GB で、Spark でそれから RDD を作成すると、各 RDD のメモリ フード プリントはどうなるでしょうか?

4

2 に答える 2

5

parquet ファイルから RDD を作成すると、RDD でアクション (最初に収集など) を実行するまで、何もロード/実行されません。

現在、メモリ使用量は時間の経過とともに変化する可能性が高くなります。100 個のパーティションがあり、それらのサイズが等しい (それぞれ 10 MB) とします。たとえば、20 コアのクラスターで実行している場合、いつでも10MB x 20 = 200MBメモリ内にデータを保持するだけで済みます。

これに加えて、Java オブジェクトはより多くのスペースを必要とする傾向があるため、1 GB のファイルが JVM ヒープでどのくらいのスペースを必要とするかを正確に判断するのは簡単ではありません (ファイル全体をロードすると仮定)。2倍かもしれませんし、それ以上かもしれません。

これをテストするためにできるトリックの 1 つは、RDD を強制的にキャッシュすることです。次に、ストレージの下の Spark UI をチェックインして、RDD がキャッシュに使用したスペースを確認できます。

于 2016-05-05T22:06:37.960 に答える
1

マリオス、メモリ プロジェクションでは、Parquet の圧縮を考慮していませんでした。1Gb は非圧縮で 5GB になる可能性があります。

于 2017-08-05T17:40:29.737 に答える