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);