HadoopMapper
クラスのすべてのインスタンスでメモリを割り当てることを避け、GC に依存してこのメモリをクリーンアップするために、メソッドで読み取りと書き込みにアクセスする静的オブジェクトを使用しますmap
。
スレッドセーフを気にする必要がありますか?
HadoopMapper
クラスのすべてのインスタンスでメモリを割り当てることを避け、GC に依存してこのメモリをクリーンアップするために、メソッドで読み取りと書き込みにアクセスする静的オブジェクトを使用しますmap
。
スレッドセーフを気にする必要がありますか?
デフォルトでは、各マップ タスクは独自の JVM で実行されます。したがって、静的オブジェクトを使用してもメリットはありません。実際にパフォーマンスの問題に直面しない限り、奇妙なことをしないことをお勧めします。
エンノとケツァルコアトルが言ったことに付け加えます。JVM で map タスクが実行されるたびに、Mapper クラスのオブジェクトが 1 つ作成され、入力ごとに (つまり、TextInputFormat を使用する場合はファイルの行ごとに) map fn が呼び出されます。ただし、マップ fn を並列ではなく順番に呼び出します。したがって、使用しているオブジェクトのスレッド セーフの問題はないはずです。
よろしく、マニッシュ