然后从connection中获取admin对象,再从admin对象中调用listTables时失败,就会一直进行尝试读取数据?如何禁止
时间: 2024-02-27 13:58:39
浏览: 15
是的,当使用Admin[对象](https://geek.csdn.net/educolumn/04c51611e4b730957464192e0307b82c?spm=1055.2569.3001.10083)中的listTables方法时,如果出现异常,HBase会自动进行重试,直到达到最大重试次数或者操作成功为止。
如果不想进行重试,可以在获取Admin[对象](https://geek.csdn.net/educolumn/04c51611e4b730957464192e0307b82c?spm=1055.2569.3001.10083)时,设置相应的Retry[策略](https://geek.csdn.net/educolumn/06da626ca8219c1b9b6fba41572b8cf2?spm=1055.2569.3001.10083)。在Retry策略中,可以设置最大重试次数和重试时间间隔等参数。将最大重试次数设置为0,即可实现在出现异常时不进行重试的效果。
以下是示例代码:
```java
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.[zookeeper](https://geek.csdn.net/edu/47a0da7218b411332ba4349ff5e2a4c2?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NDQ0MDg2MiwiZXhwIjoxNzA3MzcxOTM4LCJpYXQiOjE3MDY3NjcxMzgsInVzZXJuYW1lIjoid2VpeGluXzY4NjQ1NjQ1In0.RrTYEnMNYPC7AQdoij4SBb0kKEgHoyvF-bZOG2eGQvc&spm=1055.2569.3001.10083).quorum", "localhost");
conf.set("hbase.[zookeeper](https://geek.csdn.net/edu/47a0da7218b411332ba4349ff5e2a4c2?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NDQ0MDg2MiwiZXhwIjoxNzA3MzcxOTM4LCJpYXQiOjE3MDY3NjcxMzgsInVzZXJuYW1lIjoid2VpeGluXzY4NjQ1NjQ1In0.RrTYEnMNYPC7AQdoij4SBb0kKEgHoyvF-bZOG2eGQvc&spm=1055.2569.3001.10083).property.clientPort", "2181");
// 创建HBase连接
Connection connection = ConnectionFactory.createConnection(conf);
// 设置Retry策略,最大重试次数为0,不进行重试
RetryPolicy retryPolicy = new RetryOneTime(0);
((ClusterConnection)connection).getConfiguration().set(HConstants.HBASE_CLIENT_RETRIES_NUMBER, "0");
((ClusterConnection)connection).getConfiguration().set(HConstants.HBASE_CLIENT_PAUSE, "1");
((Clust
```
相关推荐

















