|  | 
|  | 1 | +From ebf82fed4b32988eaf3d6b27438f63dec8afc00a Mon Sep 17 00:00:00 2001 | 
|  | 2 | +From: Andrew Kenworthy <[email protected] > | 
|  | 3 | +Date: Thu, 12 Jun 2025 15:30:15 +0200 | 
|  | 4 | +Subject: Refactoring | 
|  | 5 | + | 
|  | 6 | +--- | 
|  | 7 | + .../apache/hadoop/hbase/ipc/RpcClientFactory.java    |  1 - | 
|  | 8 | + .../java/org/apache/hadoop/hbase/master/HMaster.java |  6 ++++++ | 
|  | 9 | + .../hadoop/hbase/regionserver/HRegionServer.java     | 12 ++++++++---- | 
|  | 10 | + 3 files changed, 14 insertions(+), 5 deletions(-) | 
|  | 11 | + | 
|  | 12 | +diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/RpcClientFactory.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/RpcClientFactory.java | 
|  | 13 | +index 501b6b7637..fa65739c16 100644 | 
|  | 14 | +--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/RpcClientFactory.java | 
|  | 15 | ++++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/RpcClientFactory.java | 
|  | 16 | +@@ -99,7 +99,6 @@ public final class RpcClientFactory { | 
|  | 17 | +    */ | 
|  | 18 | +   public static RpcClient createClient(Configuration conf, String clusterId, | 
|  | 19 | +     SocketAddress localAddr, MetricsConnection metrics, Map<String, byte[]> connectionAttributes) { | 
|  | 20 | +-    new Exception("BATMAN creating client localAddr="+localAddr).printStackTrace(); | 
|  | 21 | +     String rpcClientClass = getRpcClientClass(conf); | 
|  | 22 | +     return ReflectionUtils.instantiateWithCustomCtor( | 
|  | 23 | +       rpcClientClass, new Class[] { Configuration.class, String.class, SocketAddress.class, | 
|  | 24 | +diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java | 
|  | 25 | +index 5719f276bf..be0136193b 100644 | 
|  | 26 | +--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java | 
|  | 27 | ++++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java | 
|  | 28 | +@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.master; | 
|  | 29 | + import static org.apache.hadoop.hbase.HConstants.DEFAULT_HBASE_SPLIT_COORDINATED_BY_ZK; | 
|  | 30 | + import static org.apache.hadoop.hbase.HConstants.HBASE_MASTER_LOGCLEANER_PLUGINS; | 
|  | 31 | + import static org.apache.hadoop.hbase.HConstants.HBASE_SPLIT_WAL_COORDINATED_BY_ZK; | 
|  | 32 | ++import static org.apache.hadoop.hbase.HConstants.MASTER_PORT; | 
|  | 33 | + import static org.apache.hadoop.hbase.master.cleaner.HFileCleaner.CUSTOM_POOL_SIZE; | 
|  | 34 | + import static org.apache.hadoop.hbase.util.DNS.MASTER_HOSTNAME_KEY; | 
|  | 35 | +  | 
|  | 36 | +@@ -559,6 +560,11 @@ public class HMaster extends HRegionServer implements MasterServices { | 
|  | 37 | +     return conf.get(MASTER_HOSTNAME_KEY); | 
|  | 38 | +   } | 
|  | 39 | +  | 
|  | 40 | ++  @Override | 
|  | 41 | ++  protected int getUseThisPortInstead(Configuration conf) { | 
|  | 42 | ++    return conf.getInt(MASTER_PORT, this.rpcServices.getSocketAddress().getPort()); | 
|  | 43 | ++  } | 
|  | 44 | ++ | 
|  | 45 | +   private void registerConfigurationObservers() { | 
|  | 46 | +     configurationManager.registerObserver(this.rpcServices); | 
|  | 47 | +     configurationManager.registerObserver(this); | 
|  | 48 | +diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java | 
|  | 49 | +index d18ad91c3a..80949070fd 100644 | 
|  | 50 | +--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java | 
|  | 51 | ++++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java | 
|  | 52 | +@@ -24,6 +24,7 @@ import static org.apache.hadoop.hbase.HConstants.DEFAULT_HBASE_SPLIT_WAL_MAX_SPL | 
|  | 53 | + import static org.apache.hadoop.hbase.HConstants.DEFAULT_SLOW_LOG_SYS_TABLE_CHORE_DURATION; | 
|  | 54 | + import static org.apache.hadoop.hbase.HConstants.HBASE_SPLIT_WAL_COORDINATED_BY_ZK; | 
|  | 55 | + import static org.apache.hadoop.hbase.HConstants.HBASE_SPLIT_WAL_MAX_SPLITTER; | 
|  | 56 | ++import static org.apache.hadoop.hbase.HConstants.REGIONSERVER_PORT; | 
|  | 57 | + import static org.apache.hadoop.hbase.master.waleventtracker.WALEventTrackerTableCreator.WAL_EVENT_TRACKER_ENABLED_DEFAULT; | 
|  | 58 | + import static org.apache.hadoop.hbase.master.waleventtracker.WALEventTrackerTableCreator.WAL_EVENT_TRACKER_ENABLED_KEY; | 
|  | 59 | + import static org.apache.hadoop.hbase.namequeues.NamedQueueServiceChore.NAMED_QUEUE_CHORE_DURATION_DEFAULT; | 
|  | 60 | +@@ -673,8 +674,8 @@ public class HRegionServer extends Thread | 
|  | 61 | +       this.namedQueueRecorder = NamedQueueRecorder.getInstance(this.conf); | 
|  | 62 | +       rpcServices = createRpcServices(); | 
|  | 63 | +       useThisHostnameInstead = getUseThisHostnameInstead(conf); | 
|  | 64 | +-      useThisPortInstead = Integer.parseInt(System.getenv("HBASE_SERVICE_PORT")); | 
|  | 65 | +-      useThisInfoPortInstead = Integer.parseInt(System.getenv("HBASE_INFO_PORT")); | 
|  | 66 | ++      useThisPortInstead = getUseThisPortInstead(conf); | 
|  | 67 | ++      useThisInfoPortInstead = conf.getInt("hbase.info.port" , this.infoServer != null ? this.infoServer.getPort() : -1); | 
|  | 68 | +  | 
|  | 69 | +       // if use-ip is enabled, we will use ip to expose Master/RS service for client, | 
|  | 70 | +       // see HBASE-27304 for details. | 
|  | 71 | +@@ -782,6 +783,10 @@ public class HRegionServer extends Thread | 
|  | 72 | +     } | 
|  | 73 | +   } | 
|  | 74 | +  | 
|  | 75 | ++  protected int getUseThisPortInstead(Configuration conf) { | 
|  | 76 | ++    return conf.getInt(REGIONSERVER_PORT, this.rpcServices.isa.getPort()); | 
|  | 77 | ++  } | 
|  | 78 | ++ | 
|  | 79 | +   private void setupSignalHandlers() { | 
|  | 80 | +     if (!SystemUtils.IS_OS_WINDOWS) { | 
|  | 81 | +       HBasePlatformDependent.handle("HUP", (number, name) -> { | 
|  | 82 | +@@ -964,7 +969,7 @@ public class HRegionServer extends Thread | 
|  | 83 | +       } | 
|  | 84 | +       // Setup RPC client for master communication | 
|  | 85 | +       this.rpcClient = RpcClientFactory.createClient(conf, clusterId, | 
|  | 86 | +-        new InetSocketAddress(/*this.rpcServices.isa.getAddress(), */0), | 
|  | 87 | ++        new InetSocketAddress(0), | 
|  | 88 | +         clusterConnection.getConnectionMetrics(), Collections.emptyMap()); | 
|  | 89 | +       span.setStatus(StatusCode.OK); | 
|  | 90 | +     } catch (Throwable t) { | 
|  | 91 | +@@ -3081,7 +3086,6 @@ public class HRegionServer extends Thread | 
|  | 92 | +       LOG.info("reportForDuty to master=" + masterServerName + " with isa=" + rpcServices.isa | 
|  | 93 | +         + ", startcode=" + this.startcode); | 
|  | 94 | +       long now = EnvironmentEdgeManager.currentTime(); | 
|  | 95 | +-      int port = rpcServices.isa.getPort(); | 
|  | 96 | +       RegionServerStartupRequest.Builder request = RegionServerStartupRequest.newBuilder(); | 
|  | 97 | +       if (!StringUtils.isBlank(useThisHostnameInstead)) { | 
|  | 98 | +         request.setUseThisHostnameInstead(useThisHostnameInstead); | 
0 commit comments