You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2020/08/25 08:53:20 UTC
[hbase] branch branch-2 updated: HBASE-24944 Remove
MetaTableAccessor.getTableRegionsAndLocations in hbase-rest module (#2302)
This is an automated email from the ASF dual-hosted git repository.
zhangduo pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2 by this push:
new 4e50269 HBASE-24944 Remove MetaTableAccessor.getTableRegionsAndLocations in hbase-rest module (#2302)
4e50269 is described below
commit 4e50269889ef1fc675cb11bc681013d5906f059c
Author: Duo Zhang <zh...@apache.org>
AuthorDate: Tue Aug 25 16:18:42 2020 +0800
HBASE-24944 Remove MetaTableAccessor.getTableRegionsAndLocations in hbase-rest module (#2302)
Signed-off-by: Guanghao Zhang <zg...@apache.org>
---
.../apache/hadoop/hbase/rest/RegionsResource.java | 29 +++++++++++-----------
1 file changed, 14 insertions(+), 15 deletions(-)
diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RegionsResource.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RegionsResource.java
index 8e93acf..c3eed6a 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RegionsResource.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RegionsResource.java
@@ -19,6 +19,8 @@
package org.apache.hadoop.hbase.rest;
+import java.io.IOException;
+import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.ws.rs.core.CacheControl;
@@ -26,19 +28,16 @@ import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.ResponseBuilder;
import javax.ws.rs.core.UriInfo;
-import java.io.IOException;
-import java.util.List;
-
-import org.apache.hadoop.hbase.MetaTableAccessor;
+import org.apache.hadoop.hbase.HRegionLocation;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.TableNotFoundException;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.hadoop.hbase.client.RegionLocator;
import org.apache.hadoop.hbase.rest.model.TableInfoModel;
import org.apache.hadoop.hbase.rest.model.TableRegionModel;
-import org.apache.hadoop.hbase.util.Pair;
import org.apache.yetus.audience.InterfaceAudience;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -78,16 +77,16 @@ public class RegionsResource extends ResourceBase {
TableName tableName = TableName.valueOf(tableResource.getName());
TableInfoModel model = new TableInfoModel(tableName.getNameAsString());
- Connection connection = ConnectionFactory.createConnection(servlet.getConfiguration());
- List<Pair<RegionInfo, ServerName>> regions = MetaTableAccessor
- .getTableRegionsAndLocations(connection, tableName);
- connection.close();
- for (Pair<RegionInfo,ServerName> e: regions) {
- RegionInfo hri = e.getFirst();
- ServerName addr = e.getSecond();
- model.add(
- new TableRegionModel(tableName.getNameAsString(), hri.getRegionId(),
- hri.getStartKey(), hri.getEndKey(), addr.getHostAndPort()));
+ List<HRegionLocation> locs;
+ try (Connection connection = ConnectionFactory.createConnection(servlet.getConfiguration());
+ RegionLocator locator = connection.getRegionLocator(tableName)) {
+ locs = locator.getAllRegionLocations();
+ }
+ for (HRegionLocation loc : locs) {
+ RegionInfo hri = loc.getRegion();
+ ServerName addr = loc.getServerName();
+ model.add(new TableRegionModel(tableName.getNameAsString(), hri.getRegionId(),
+ hri.getStartKey(), hri.getEndKey(), addr.getAddress().toString()));
}
ResponseBuilder response = Response.ok(model);
response.cacheControl(cacheControl);