HTablePoolMap / Reduceジョブのコンテキストでは、使用しても大幅な改善は得られないと思います。
何HTablePoolがあなたをもたらすのか:
- スレッドセーフ:テーブルにを
HTablePool使用するSynchronizedMapため、マルチスレッドアプリケーションのコンテキストではこれが便利です。ただし、Map / Reduceジョブのコンテキストでは、複数のノードがあり、タスクは独立しているため、これは実際には役に立ちません。
- プールされたオブジェクト
HTable:プールであるため、毎回をインスタンス化する必要がなくなります。これは、たとえばHBaseに継続的にアクセスする同時リクエストがある場合に有効なステートメントですが、タスクごとに1回テーブルをインスタンス化するため、Map/Reduceジョブにはそれほど多くありません。
ですから、それは実際にはユースケースに依存すると思います。あなたが言ったようにMap / Reduceジョブを使用している場合は、すべてのタスクのメソッドHTablePoolをインスタンス化してsetup閉じる必要があるため、おそらくそれは価値がありません。 cleanup。
私が使用を検討する唯一のユースケースはHTablePool、多数の同時リクエストを伴う高頻度のマルチスレッドアプリケーションです。この場合、プールの使用は間違いなく適切なユースケースです。