私はエラーに直面しています:Javaヒープスペースとエラー:GCオーバーヘッド制限を超えました
それで、hadoop-env.sh を調べ始めました。
これまでのところ私が理解していることです。間違っている場合は修正してください。
if HADOOP_HEAPSIZE=7168 in hadoop-env.sh
これにより、データノードで datanode デーモンと tasktracker デーモンが呼び出され、それぞれに 7GB のメモリが割り当てられます (datanode(7GB)+ tasktracker(7GB) = 14GB)。
と
mapred.tasktracker.reduce.tasks.maximum = 3
mapred.tasktracker.map.tasks.maximum = 6 and
mapred.child.java.opts -Xmx1024m
したがって、これは 1GB のメモリで 9 つの子 JVM を呼び出すので、合計で 9GB になります。
しかし、tasktracker は 7GB のメモリで呼び出されるため、競合が発生します。tasktracker と tasktracker によって呼び出される子 JVMS の最大メモリは 7GB ですが、9G を消費しています。
ヒープ領域エラーが発生しましたが、私の計算は正しいですか?