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 2026/09/29 15:21:18 UTC

(hbase) branch branch-3 updated: HBASE-30435 Remove zk dependency in RegionMover (#8713)

This is an automated email from the ASF dual-hosted git repository.

Apache9 pushed a commit to branch branch-3
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-3 by this push:
     new a273048fe50 HBASE-30435 Remove zk dependency in RegionMover (#8713)
a273048fe50 is described below

commit a273048fe50180262d024dc8c45f2be90c3344e5
Author: Duo Zhang <zh...@apache.org>
AuthorDate: Tue Sep 29 22:56:50 2026 +0800

    HBASE-30435 Remove zk dependency in RegionMover (#8713)
    
    Co-authored-by: MiMo V2.6 Pro <mi...@xiaomi.com>
    Signed-off-by: Xiao Liu <li...@apache.org>
    (cherry picked from commit 6799c26515c9597848c6d0600d3a86717f7c91d1)
---
 .../java/org/apache/hadoop/hbase/util/RegionMover.java     | 14 ++------------
 .../org/apache/hadoop/hbase/util/TestRegionMover2.java     | 14 ++------------
 2 files changed, 4 insertions(+), 24 deletions(-)

diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionMover.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionMover.java
index 37c114fca0f..036e72f2d00 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionMover.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionMover.java
@@ -67,13 +67,9 @@ import org.apache.hadoop.hbase.client.RegionInfo;
 import org.apache.hadoop.hbase.client.RegionInfoBuilder;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.master.RackManager;
-import org.apache.hadoop.hbase.master.RegionState;
 import org.apache.hadoop.hbase.master.assignment.AssignmentManager;
 import org.apache.hadoop.hbase.net.Address;
 import org.apache.hadoop.hbase.rsgroup.RSGroupInfo;
-import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;
-import org.apache.hadoop.hbase.zookeeper.ZKWatcher;
-import org.apache.hadoop.hbase.zookeeper.ZNodePaths;
 import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -576,14 +572,8 @@ public class RegionMover extends AbstractHBaseTool implements Closeable {
         }
         // If hbase:meta region was isolated, then it needs to be part of isolateRegionInfoList.
         if (isMetaIsolated) {
-          ZKWatcher zkWatcher = new ZKWatcher(conf, null, null);
-          List<HRegionLocation> result = new ArrayList<>();
-          for (String znode : zkWatcher.getMetaReplicaNodes()) {
-            String path = ZNodePaths.joinZNode(zkWatcher.getZNodePaths().baseZNode, znode);
-            int replicaId = zkWatcher.getZNodePaths().getMetaReplicaIdFromPath(path);
-            RegionState state = MetaTableLocator.getMetaRegionState(zkWatcher, replicaId);
-            result.add(new HRegionLocation(state.getRegion(), state.getServerName()));
-          }
+          List<HRegionLocation> result =
+            conn.getRegionLocator(TableName.META_TABLE_NAME).getAllRegionLocations();
           ServerName metaSeverName = result.get(0).getServerName();
           // For isolating hbase:meta, it should move explicitly in Ack mode,
           // hence the forceMoveRegionByAck = true.
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestRegionMover2.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestRegionMover2.java
index 6e245b8deff..dd0bb24b06a 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestRegionMover2.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestRegionMover2.java
@@ -40,7 +40,6 @@ import org.apache.hadoop.hbase.client.RegionInfoBuilder;
 import org.apache.hadoop.hbase.client.Table;
 import org.apache.hadoop.hbase.client.TableDescriptor;
 import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
-import org.apache.hadoop.hbase.master.RegionState;
 import org.apache.hadoop.hbase.master.assignment.AssignmentManager;
 import org.apache.hadoop.hbase.master.assignment.TransitRegionStateProcedure;
 import org.apache.hadoop.hbase.master.procedure.ProcedureSyncWait;
@@ -48,9 +47,6 @@ import org.apache.hadoop.hbase.regionserver.HRegion;
 import org.apache.hadoop.hbase.regionserver.HRegionServer;
 import org.apache.hadoop.hbase.testclassification.LargeTests;
 import org.apache.hadoop.hbase.testclassification.MiscTests;
-import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;
-import org.apache.hadoop.hbase.zookeeper.ZKWatcher;
-import org.apache.hadoop.hbase.zookeeper.ZNodePaths;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeAll;
@@ -345,14 +341,8 @@ public class TestRegionMover2 {
   }
 
   public ServerName findMetaRSLocation() throws Exception {
-    ZKWatcher zkWatcher = new ZKWatcher(TEST_UTIL.getConfiguration(), null, null);
-    List<HRegionLocation> result = new ArrayList<>();
-    for (String znode : zkWatcher.getMetaReplicaNodes()) {
-      String path = ZNodePaths.joinZNode(zkWatcher.getZNodePaths().baseZNode, znode);
-      int replicaId = zkWatcher.getZNodePaths().getMetaReplicaIdFromPath(path);
-      RegionState state = MetaTableLocator.getMetaRegionState(zkWatcher, replicaId);
-      result.add(new HRegionLocation(state.getRegion(), state.getServerName()));
-    }
+    List<HRegionLocation> result =
+      TEST_UTIL.getConnection().getRegionLocator(TableName.META_TABLE_NAME).getAllRegionLocations();
     return result.get(0).getServerName();
   }