From 699d15a0eca4dc4092a6c0fee4da2fe34e635ea0 Mon Sep 17 00:00:00 2001 From: xiaozhang0319 Date: Sun, 31 Jul 2022 10:36:21 +0800 Subject: [PATCH 1/3] HBASE-27237 Address is shoule be case insensitive --- .../src/main/java/org/apache/hadoop/hbase/net/Address.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/net/Address.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/net/Address.java index 61b445fcefe0..cdcd82472e35 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/net/Address.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/net/Address.java @@ -22,6 +22,7 @@ import org.apache.yetus.audience.InterfaceAudience; import org.apache.hbase.thirdparty.com.google.common.net.HostAndPort; +import java.util.Locale; /** * An immutable type to hold a hostname and port combo, like an Endpoint or @@ -76,7 +77,7 @@ public String getHostName() { */ @Deprecated public String getHostname() { - return this.hostAndPort.getHost(); + return this.hostAndPort.getHost().toLowerCase(Locale.ROOT); } public int getPort() { @@ -85,7 +86,7 @@ public int getPort() { @Override public String toString() { - return this.hostAndPort.toString(); + return this.hostAndPort.toString().toLowerCase(Locale.ROOT); } /** From 3556362c07f59885bd26860309a6426d87d1c66a Mon Sep 17 00:00:00 2001 From: xiaozhang Date: Mon, 1 Aug 2022 23:03:51 +0800 Subject: [PATCH 2/3] Revert "HBASE-27237 Address is shoule be case insensitive" This reverts commit 699d15a0 --- .../src/main/java/org/apache/hadoop/hbase/net/Address.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/net/Address.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/net/Address.java index cdcd82472e35..61b445fcefe0 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/net/Address.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/net/Address.java @@ -22,7 +22,6 @@ import org.apache.yetus.audience.InterfaceAudience; import org.apache.hbase.thirdparty.com.google.common.net.HostAndPort; -import java.util.Locale; /** * An immutable type to hold a hostname and port combo, like an Endpoint or @@ -77,7 +76,7 @@ public String getHostName() { */ @Deprecated public String getHostname() { - return this.hostAndPort.getHost().toLowerCase(Locale.ROOT); + return this.hostAndPort.getHost(); } public int getPort() { @@ -86,7 +85,7 @@ public int getPort() { @Override public String toString() { - return this.hostAndPort.toString().toLowerCase(Locale.ROOT); + return this.hostAndPort.toString(); } /** From f674be7c57fcf97a9d8a4452a1fd7d5483f9d8c9 Mon Sep 17 00:00:00 2001 From: xiaozhang Date: Tue, 2 Aug 2022 14:03:16 +0800 Subject: [PATCH 3/3] HBASE-27237 The servername in the rsgroup table should be lowercase --- .../apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java | 2 +- .../hadoop/hbase/rsgroup/RSGroupAdminServiceImpl.java | 7 ++++--- .../hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java index 35c361be5629..8a4a97162a91 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java @@ -3416,7 +3416,7 @@ public static RSGroupInfo toGroupInfo(RSGroupProtos.RSGroupInfo proto) { RSGroupInfo rsGroupInfo = new RSGroupInfo(proto.getName()); Collection
addresses = proto.getServersList().parallelStream() - .map(serverName -> Address.fromParts(serverName.getHostName(), serverName.getPort())) + .map(serverName -> Address.fromParts(serverName.getHostName().toLowerCase(Locale.ROOT), serverName.getPort())) .collect(Collectors.toList()); rsGroupInfo.addAllServers(addresses); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServiceImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServiceImpl.java index 35824fd36332..7e5fefe58d3a 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServiceImpl.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServiceImpl.java @@ -22,6 +22,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Optional; import java.util.Set; @@ -162,7 +163,7 @@ public void moveServers(RpcController controller, MoveServersRequest request, MoveServersResponse.Builder builder = MoveServersResponse.newBuilder(); Set
hostPorts = Sets.newHashSet(); for (HBaseProtos.ServerName el : request.getServersList()) { - hostPorts.add(Address.fromParts(el.getHostName(), el.getPort())); + hostPorts.add(Address.fromParts(el.getHostName().toLowerCase(Locale.ROOT), el.getPort())); } LOG.info(master.getClientIdAuditPrefix() + " move servers " + hostPorts + " to rsgroup " + request.getTargetGroup()); @@ -357,7 +358,7 @@ public void moveServersAndTables(RpcController controller, MoveServersAndTablesR MoveServersAndTablesResponse.Builder builder = MoveServersAndTablesResponse.newBuilder(); Set
hostPorts = Sets.newHashSet(); for (HBaseProtos.ServerName el : request.getServersList()) { - hostPorts.add(Address.fromParts(el.getHostName(), el.getPort())); + hostPorts.add(Address.fromParts(el.getHostName().toLowerCase(Locale.ROOT), el.getPort())); } Set tables = new HashSet<>(request.getTableNameList().size()); for (HBaseProtos.TableName tableName : request.getTableNameList()) { @@ -388,7 +389,7 @@ public void removeServers(RpcController controller, RemoveServersRequest request RemoveServersResponse.Builder builder = RemoveServersResponse.newBuilder(); Set
servers = Sets.newHashSet(); for (HBaseProtos.ServerName el : request.getServersList()) { - servers.add(Address.fromParts(el.getHostName(), el.getPort())); + servers.add(Address.fromParts(el.getHostName().toLowerCase(Locale.ROOT), el.getPort())); } LOG.info( master.getClientIdAuditPrefix() + " remove decommissioned servers from rsgroup: " + servers); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java index 3b7c30ddb010..f5b5026566e4 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java @@ -761,7 +761,7 @@ private SortedSet
getDefaultServers(List rsGroupInfoList) // Get all online servers from Zookeeper and find out servers in default group SortedSet
defaultServers = Sets.newTreeSet(); for (ServerName serverName : masterServices.getServerManager().getOnlineServers().keySet()) { - Address server = Address.fromParts(serverName.getHostname(), serverName.getPort()); + Address server = Address.fromParts(serverName.getHostnameLowerCase(), serverName.getPort()); if (!serversInOtherGroup.contains(server)) { // not in other groups defaultServers.add(server); }