然后从connection中获取admin对象,再从admin对象中调用listTables时失败,就会一直进行尝试读取数据?如何禁止
时间: 2024-02-27 09:58:39 浏览: 21
是的,当使用Admin对象中的listTables方法时,如果出现异常,HBase会自动进行重试,直到达到最大重试次数或者操作成功为止。
如果不想进行重试,可以在获取Admin对象时,设置相应的Retry策略。在Retry策略中,可以设置最大重试次数和重试时间间隔等参数。将最大重试次数设置为0,即可实现在出现异常时不进行重试的效果。
以下是示例代码:
```java
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum", "localhost");
conf.set("hbase.zookeeper.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");
((ClusterConnection)connection).getConfiguration().set(HConstants.HBASE_CLIENT_RETRY_BACKOFF, "0");
((ClusterConnection)connection).getConfiguration().set(HConstants.HBASE_CLIENT_RPC_MAXATTEMPTS, "1");
// 获取Admin对象
Admin admin = connection.getAdmin();
List<TableDescriptor> tableDescriptors = admin.listTableDescriptors();
// 使用Admin对象进行操作
// 关闭Admin对象和HBase连接
admin.close();
connection.close();
```
在上述代码中,我们使用RetryOneTime策略来设置最大重试次数为0,即不进行重试。同时,通过设置HConstants.HBASE_CLIENT_RETRIES_NUMBER、HConstants.HBASE_CLIENT_PAUSE、HConstants.HBASE_CLIENT_RETRY_BACKOFF和HConstants.HBASE_CLIENT_RPC_MAXATTEMPTS等参数,来确保不进行重试。
需要注意的是,设置最大重试次数为0可能会导致操作失败,因此需要谨慎使用。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)