所以,我有一个更新 HBase 表的 Mapper。在 map() 函数中,我:
1) 实例化一个 HBaseConfiguration
2)实例化一个HTable
3) 多次调用 hTable.put() 来添加行
4) 调用 hTable.flushCommits() 刷新我的更改
5) 调用 HConnectionManager.deleteConnection() 来终止与 HBase 的连接
但是,这似乎效率低下。我想在我的 Mapper 类的构造函数中实例化 HBaseConfiguration 和 HTable。然后我可以让我的映射器类实现 Closeable,在 close() 方法中调用 hTable.flushCommits() 和 HConnectionManager.deleteConnection()。这样,在每次调用 map() 时,我都会缓冲我的 put() 调用,并在调用 close() 时一次刷新所有更改。
但是,只有当 Mapper 对象被重复用于对 map() 的多次调用时,这才是值得的。否则,我不妨不理会我的代码。
所以主要问题是:Mapper 对象是否用于多次调用 map()?
额外的问题是:重写的代码会更有效率吗?