mapred.job.reuse.jvm.num.tasks
If you have very small tasks that are definitely running after each other, it is useful to set this property to -1 (meaning that a spawned JVM will be reused unlimited times). So you just spawn (number of task in your cluster available to your job)-JVMs instead of (number of tasks)-JVMs.
タスクがものすごく小さかったら、-1
にして常に再利用するのをすすめる。 1にすると再利用しない。
Amazon EMR は mapred.job.reuse.jvm.num.tasks の値を 20 に設定しますが、これはブートスラップアクションによってオーバーライドすることができます。値を -1 にすると 1 つのジョブ内でいつまでも再利用が行われ、1 にするとタスクは再利用されません。
タスク間でJVMを共有してフレームワークのオーバーヘッドを低下させる意図。JVMの起動にはコストがかかるので、多くの小さいファイルを処理する場合はJVMを何度も再利用して起動のコストを下げる。 処理に時間がかかる場合は、すべてのメモリが確実に解放されるようにJVMを再利用しないようにする。