2017-04-18 10 views
0

HadoopコンテナにはRAMが必要です。実際にデータサイズが0.5GBのデータをテストするために使用しているデータサイズitsefは、実際には倍増しています。なぜHadoopにその量のRAMが必要なのですか?

物理メモリとコンテナからの仮想メモリの概念は何ですか:物理メモリで100MBの500MB、仮想メモリで2.5GBを超えるような例外が発生することがあります。通常、オペレーティングシステム全体を実行し、すべてのデータをRAMメモリに保存するには2GBが十分であれば、なぜhadoopが仮想メモリの制限を超えているのですか?なぜ2GBで十分ではありませんか?

+0

私は、ストレージよりもRAMの多いハープクラスターを見たことがありません。 4 TBのRAMを購入することはできますか?そして、それを同じ4TBディスクと同じマザーボードに入れますか? –

+0

@ cricket_007慎重に読んでください私は0.5GBのデータサイズでタスクをテストするために実行しているストレージサイズではなく、データサイズに言及しました。私はより明確にするためにサイズを言及するでしょう。 –

+0

Sparkなどを実行していない限り、一度にすべてのデータをメモリに格納する必要はありません。コンテナのサイズを超えている場合は、クラスタで意味のある糸構成ファイルを編集するだけで済みます。 2Gはデフォルトの最大値です、私は –

答えて

0

マッパーまたはレデューサータスクを実行するJavaのオーバーヘッドがあるため、基本的にはより多くのRAMが必要です。そのプロセスのJavaヒープ+ JVM。

で発見この絵:

https://documentation.altiscale.com/heapsize-for-mappers-and-reducers

はおそらく最高はこれを説明しています。

また、Hadoop(Java)で使用されるデータ構造が.5GB(例として)より多く、そのデータがより多く使用され、そのデータが処理に使用される一時的なデータ構造結果はより多く使用されます。そして、Javaはガベージコレクション コレクションを使用しているので、ガベージコレクションが発生するまで、これらの表現はすべてヒープを使用している可能性があります。

関連する問題