そのため、HBaseテーブルを更新するマッパーがあります。map()関数では、I:
1)HBaseConfigurationをインスタンス化します
2)HTableをインスタンス化します
3)hTable.put()を何度も呼び出して、行を追加します
4)hTable.flushCommits()を呼び出して、変更をフラッシュします
5)HConnectionManager.deleteConnection()を呼び出して、HBaseへの接続を切断します
ただし、これは非効率的なようです。MapperクラスのコンストラクターでHBaseConfigurationとHTableをインスタンス化したいと思います。次に、close()メソッドでhTable.flushCommits()とHConnectionManager.deleteConnection()を呼び出して、マッパークラスにCloseableを実装させることができます。そうすれば、map()を呼び出すたびに、put()呼び出しをバッファリングし、close()が呼び出されたときに、すべての変更を一度にフラッシュします。
ただし、これは、Mapperオブジェクトがmap()への複数の呼び出しに再利用される場合にのみ価値があります。それ以外の場合は、コードをそのままにしておくこともできます。
したがって、主な質問は次のとおりです。Mapperオブジェクトはmap()の複数の呼び出しに使用されますか?
ボーナスの質問は:書き直されたコードはより効率的でしょうか?