Skip to content

Commit 99fd166

Browse files
committed
patch and entrypoint refactoring
1 parent 9ef046c commit 99fd166

File tree

2 files changed

+103
-5
lines changed

2 files changed

+103
-5
lines changed

hbase/stackable/bin/hbase-entrypoint.sh

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@ HBASE_ROLE_NAME="$1"
1616
HBASE_ROLE_SERVICE_NAME="$2"
1717
# 16010 for master, 16020 for regionservers etc.
1818
HBASE_ROLE_SERVICE_PORT="$3"
19-
# ui-http or ui-https
19+
# master, regionserver, rest_http, rest_https
2020
HBASE_PORT_NAME="$4"
21+
# ui-http or ui-https
22+
HBASE_UI_PORT_NAME="$5"
2123

2224
HBASE_ROLE_SERVICE_HOST="${HOSTNAME}.${HBASE_ROLE_SERVICE_NAME}"
2325

@@ -78,11 +80,9 @@ fi
7880
# Service endpoints
7981
HBASE_SERVICE_HOST=$(cat /stackable/listener/default-address/address)
8082
HBASE_SERVICE_PORT=$(cat /stackable/listener/default-address/ports/"${HBASE_PORT_NAME}")
81-
HBASE_INFO_PORT=$(cat /stackable/listener/default-address/ports/ui-http)
83+
HBASE_INFO_PORT=$(cat /stackable/listener/default-address/ports/"${HBASE_UI_PORT_NAME}")
8284
HBASE_LISTENER_ENDPOINT="$HBASE_SERVICE_HOST:$HBASE_INFO_PORT"
83-
export HBASE_SERVICE_HOST
84-
export HBASE_SERVICE_PORT
85-
export HBASE_INFO_PORT
85+
8686
sed -i -e s/\$\{HBASE_SERVICE_HOST\}/"${HBASE_SERVICE_HOST}"/g /stackable/conf/hbase-site.xml
8787
sed -i -e s/\$\{HBASE_SERVICE_PORT\}/"${HBASE_SERVICE_PORT}"/g /stackable/conf/hbase-site.xml
8888
sed -i -e s/\$\{HBASE_LISTENER_ENDPOINT\}/"${HBASE_LISTENER_ENDPOINT}"/g /stackable/conf/hbase-site.xml
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
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

Comments
 (0)