by shigemk2

当面は技術的なことしか書かない

mapred.job.reuse.jvm.num.tasks

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を再利用しないようにする。