私は以下のようなパターンを持っています。Javaのメモリ不足エラーでどのタイプのSparkメモリを増やす必要がありますか?
def someFunction(...) : ... =
{
// Somewhere here some large string (still < 1 GB) is made ...
// ... and sometimes I get Java.lang.OutOfMemoryError while building that string
}
....
val RDDb = RDDa.map(x => someFunction(...))
ので、someFunction
の内側に、一箇所に大きな文字列はまだ(< 1ギガバイト)という大きなされていない、作られますが、その文字列を構築しながら、私は時々java.lang.OutOfMemoryError: Java heap space
エラーが発生します。これは、私のエグゼキュータのメモリがかなり大きい場合(8 GB)でも発生します。
this articleによれば、ユーザーメモリーとスパークメモリーがあります。今私の場合では、私は増加する必要があります、ユーザーのメモリまたはスパークメモリですか?
P.S:私は1G生の文字列を簡単に8Gのメモリよりも多くを使用することができるスパークバージョン2.0
あなたはこれを見たことがありますか? http://stackoverflow.com/questions/21138751/spark-java-lang-outofmemoryerror-java-heap-space – borowis
私はSparkバージョン2.0を使用しています。彼らはそのバージョンで新しいメモリ管理システムを持っています。 – pythonic