我有一个问题。我使用 Java 程序在我的 HBase 中写入数据。我在那里有 HTable 对象,我调用了以下方法(伪代码):
// creates a Put object with new data
Put put = createNewPutObject();
htable.put(put);
htable.flushCommits();
clearBufferOnFail 设置为 true:
this.htable.setAutoFlush(false, true);
代码的第一部分被一遍又一遍地调用。我们做一些事情,创建一个 Put 对象,刷新 htable,做更多的事情,创建一个 Put 对象......等等。
如果我的 HTable 对象失去与 HBase 的连接会怎样?这是内部处理的吗?或者我是否需要关闭我的 HTable 对象并打开一个新的 HTable 对象?到目前为止,我认为连接是通过连接池在内部从 HTable 对象处理的,所以我必须做任何事情。我认为捕获异常然后重试就足够了。由于 clearBufferOnFail 设置为 true,因此不会写入重复的数据。
但是会不会有太多的连接以某种方式打开?还是这一切都处理好了?