From 758584bb4f4f1ba965afa82c815d707d2555d3e1 Mon Sep 17 00:00:00 2001 From: zhangkangwei Date: Tue, 15 Oct 2024 16:02:11 +0800 Subject: [PATCH 1/4] HDDS-11563. [OM/SCM/DN] WebUI Display Namespace --- .../java/org/apache/hadoop/ozone/DNMXBean.java | 2 ++ .../org/apache/hadoop/ozone/DNMXBeanImpl.java | 4 ++++ .../hadoop/ozone/HddsDatanodeService.java | 18 ++++++++++++++++-- .../webapps/static/templates/overview.html | 4 ++++ .../hadoop/hdds/scm/server/SCMMXBean.java | 1 + .../scm/server/StorageContainerManager.java | 4 ++++ .../org/apache/hadoop/ozone/om/OMMXBean.java | 2 ++ .../apache/hadoop/ozone/om/OzoneManager.java | 5 +++++ 8 files changed, 38 insertions(+), 2 deletions(-) diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/DNMXBean.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/DNMXBean.java index d36fcdb6fc7..5163abd41de 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/DNMXBean.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/DNMXBean.java @@ -26,4 +26,6 @@ */ @InterfaceAudience.Private public interface DNMXBean extends ServiceRuntimeInfo { + + String getNamespace(); } diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/DNMXBeanImpl.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/DNMXBeanImpl.java index f7b484c6bb3..cd69a84a8d9 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/DNMXBeanImpl.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/DNMXBeanImpl.java @@ -29,4 +29,8 @@ public DNMXBeanImpl( VersionInfo versionInfo) { super(versionInfo); } + + public String getNamespace() { + return ""; + } } diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java index 6b32b74dc7c..4598d9ca346 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java @@ -22,6 +22,7 @@ import java.io.IOException; import java.net.InetAddress; import java.util.Arrays; +import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -40,6 +41,7 @@ import org.apache.hadoop.hdds.protocol.DatanodeDetails; import org.apache.hadoop.hdds.protocol.SecretKeyProtocol; import org.apache.hadoop.hdds.protocolPB.SCMSecurityProtocolClientSideTranslatorPB; +import org.apache.hadoop.hdds.scm.ScmConfigKeys; import org.apache.hadoop.hdds.security.SecurityConfig; import org.apache.hadoop.hdds.security.symmetric.DefaultSecretKeyClient; import org.apache.hadoop.hdds.security.symmetric.SecretKeyClient; @@ -73,6 +75,7 @@ import static org.apache.hadoop.hdds.protocol.DatanodeDetails.Port.Name.HTTP; import static org.apache.hadoop.hdds.protocol.DatanodeDetails.Port.Name.HTTPS; +import static org.apache.hadoop.hdds.scm.ScmConfigKeys.OZONE_SCM_SERVICE_IDS_KEY; import static org.apache.hadoop.hdds.utils.HddsServerUtil.getRemoteUser; import static org.apache.hadoop.hdds.utils.HddsServerUtil.getScmSecurityClientWithMaxRetry; import static org.apache.hadoop.ozone.OzoneConfigKeys.HDDS_DATANODE_PLUGINS_KEY; @@ -116,8 +119,7 @@ public class HddsDatanodeService extends GenericCli implements ServicePlugin { private final Map ratisMetricsMap = new ConcurrentHashMap<>(); private List ratisReporterList = null; - private DNMXBeanImpl serviceRuntimeInfo = - new DNMXBeanImpl(HddsVersionInfo.HDDS_VERSION_INFO) { }; + private DNMXBeanImpl serviceRuntimeInfo; private ObjectName dnInfoBeanName; private HddsDatanodeClientProtocolServer clientProtocolServer; private OzoneAdmins admins; @@ -210,6 +212,18 @@ public void start(OzoneConfiguration configuration) { } public void start() { + serviceRuntimeInfo = new DNMXBeanImpl(HddsVersionInfo.HDDS_VERSION_INFO) { + @Override + public String getNamespace() { + String localScmServiceId = conf.getTrimmed( + ScmConfigKeys.OZONE_SCM_DEFAULT_SERVICE_ID); + if (localScmServiceId == null) { + Collection scmServiceIds = conf.getTrimmedStringCollection(OZONE_SCM_SERVICE_IDS_KEY); + return String.join(",", scmServiceIds); + } + return localScmServiceId; + } + }; serviceRuntimeInfo.setStartTime(); ratisReporterList = RatisDropwizardExports diff --git a/hadoop-hdds/framework/src/main/resources/webapps/static/templates/overview.html b/hadoop-hdds/framework/src/main/resources/webapps/static/templates/overview.html index 30e2d26f56f..15f46a6bdc2 100644 --- a/hadoop-hdds/framework/src/main/resources/webapps/static/templates/overview.html +++ b/hadoop-hdds/framework/src/main/resources/webapps/static/templates/overview.html @@ -17,6 +17,10 @@

Overview

+ + + + diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMMXBean.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMMXBean.java index 75a5193116c..56149e108de 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMMXBean.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMMXBean.java @@ -31,6 +31,7 @@ @InterfaceAudience.Private public interface SCMMXBean extends ServiceRuntimeInfo { + String getNamespace(); /** * Get the SCM RPC server port that used to listen to datanode requests. * @return SCM datanode RPC server port diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java index ba52b7fcc5f..9390318a29f 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java @@ -2063,6 +2063,10 @@ public StatefulServiceStateManager getStatefulServiceStateManager() { return statefulServiceStateManager; } + @Override + public String getNamespace() { + return scmHANodeDetails.getLocalNodeDetails().getServiceId(); + } /** * Get the safe mode status of all rules. * diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OMMXBean.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OMMXBean.java index 54e81f8825d..342b501b84d 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OMMXBean.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OMMXBean.java @@ -28,6 +28,8 @@ @InterfaceAudience.Private public interface OMMXBean extends ServiceRuntimeInfo { + String getNamespace(); + String getRpcPort(); List> getRatisRoles(); diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java index e2acafdd242..3410635868f 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java @@ -3061,6 +3061,11 @@ private void unregisterMXBean() { } } + @Override + public String getNamespace() { + return omNodeDetails.getServiceId(); + } + @Override public String getRpcPort() { return "" + omRpcAddress.getPort(); From 68e54bd21908131db09aa9d91a11b37e7ed79725 Mon Sep 17 00:00:00 2001 From: zhangkangwei Date: Thu, 17 Oct 2024 17:33:37 +0800 Subject: [PATCH 2/4] HDDS-11563. Optimize code structure --- .../main/java/org/apache/hadoop/ozone/DNMXBean.java | 2 -- .../java/org/apache/hadoop/ozone/DNMXBeanImpl.java | 4 ---- .../org/apache/hadoop/ozone/HddsDatanodeService.java | 11 ++--------- .../apache/hadoop/hdds/server/ServiceRuntimeInfo.java | 9 +++++++++ .../org/apache/hadoop/hdds/scm/server/SCMMXBean.java | 1 - .../java/org/apache/hadoop/ozone/om/OMMXBean.java | 2 -- 6 files changed, 11 insertions(+), 18 deletions(-) diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/DNMXBean.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/DNMXBean.java index 5163abd41de..d36fcdb6fc7 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/DNMXBean.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/DNMXBean.java @@ -26,6 +26,4 @@ */ @InterfaceAudience.Private public interface DNMXBean extends ServiceRuntimeInfo { - - String getNamespace(); } diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/DNMXBeanImpl.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/DNMXBeanImpl.java index cd69a84a8d9..f7b484c6bb3 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/DNMXBeanImpl.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/DNMXBeanImpl.java @@ -29,8 +29,4 @@ public DNMXBeanImpl( VersionInfo versionInfo) { super(versionInfo); } - - public String getNamespace() { - return ""; - } } diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java index 4598d9ca346..489439c003c 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java @@ -22,7 +22,6 @@ import java.io.IOException; import java.net.InetAddress; import java.util.Arrays; -import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -41,7 +40,7 @@ import org.apache.hadoop.hdds.protocol.DatanodeDetails; import org.apache.hadoop.hdds.protocol.SecretKeyProtocol; import org.apache.hadoop.hdds.protocolPB.SCMSecurityProtocolClientSideTranslatorPB; -import org.apache.hadoop.hdds.scm.ScmConfigKeys; +import org.apache.hadoop.hdds.scm.ha.SCMHAUtils; import org.apache.hadoop.hdds.security.SecurityConfig; import org.apache.hadoop.hdds.security.symmetric.DefaultSecretKeyClient; import org.apache.hadoop.hdds.security.symmetric.SecretKeyClient; @@ -215,13 +214,7 @@ public void start() { serviceRuntimeInfo = new DNMXBeanImpl(HddsVersionInfo.HDDS_VERSION_INFO) { @Override public String getNamespace() { - String localScmServiceId = conf.getTrimmed( - ScmConfigKeys.OZONE_SCM_DEFAULT_SERVICE_ID); - if (localScmServiceId == null) { - Collection scmServiceIds = conf.getTrimmedStringCollection(OZONE_SCM_SERVICE_IDS_KEY); - return String.join(",", scmServiceIds); - } - return localScmServiceId; + return SCMHAUtils.getScmServiceId(conf); } }; serviceRuntimeInfo.setStartTime(); diff --git a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/ServiceRuntimeInfo.java b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/ServiceRuntimeInfo.java index bcd75f3f215..efb3da99036 100644 --- a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/ServiceRuntimeInfo.java +++ b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/ServiceRuntimeInfo.java @@ -33,6 +33,15 @@ */ public interface ServiceRuntimeInfo { + /** + * Gets the namespace of Hadoop. + * + * @return the namespace + */ + default String getNamespace() { + return ""; + }; + /** * Gets the version of Hadoop. * diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMMXBean.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMMXBean.java index 56149e108de..75a5193116c 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMMXBean.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMMXBean.java @@ -31,7 +31,6 @@ @InterfaceAudience.Private public interface SCMMXBean extends ServiceRuntimeInfo { - String getNamespace(); /** * Get the SCM RPC server port that used to listen to datanode requests. * @return SCM datanode RPC server port diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OMMXBean.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OMMXBean.java index 342b501b84d..54e81f8825d 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OMMXBean.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OMMXBean.java @@ -28,8 +28,6 @@ @InterfaceAudience.Private public interface OMMXBean extends ServiceRuntimeInfo { - String getNamespace(); - String getRpcPort(); List> getRatisRoles(); From 7899c876cdfa12986a4f8e520a98eaf39367d814 Mon Sep 17 00:00:00 2001 From: zhangkangwei Date: Thu, 17 Oct 2024 19:17:36 +0800 Subject: [PATCH 3/4] HDDS-11563. Conditional display namespace --- .../src/main/resources/webapps/static/templates/overview.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hadoop-hdds/framework/src/main/resources/webapps/static/templates/overview.html b/hadoop-hdds/framework/src/main/resources/webapps/static/templates/overview.html index 15f46a6bdc2..7ff118b330e 100644 --- a/hadoop-hdds/framework/src/main/resources/webapps/static/templates/overview.html +++ b/hadoop-hdds/framework/src/main/resources/webapps/static/templates/overview.html @@ -17,7 +17,7 @@

Overview

Namespace:{{$ctrl.jmx.Namespace}}
Started: {{$ctrl.jmx.StartedTimeInMillis | date : 'medium'}}
- + From 4eadf2005ec42022e30e7db65b5557147924be06 Mon Sep 17 00:00:00 2001 From: zhangkangwei Date: Thu, 17 Oct 2024 19:25:36 +0800 Subject: [PATCH 4/4] HDDS-11563. Fix some comments and unused import --- .../main/java/org/apache/hadoop/ozone/HddsDatanodeService.java | 1 - .../java/org/apache/hadoop/hdds/server/ServiceRuntimeInfo.java | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java index 489439c003c..96800b8291c 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java @@ -74,7 +74,6 @@ import static org.apache.hadoop.hdds.protocol.DatanodeDetails.Port.Name.HTTP; import static org.apache.hadoop.hdds.protocol.DatanodeDetails.Port.Name.HTTPS; -import static org.apache.hadoop.hdds.scm.ScmConfigKeys.OZONE_SCM_SERVICE_IDS_KEY; import static org.apache.hadoop.hdds.utils.HddsServerUtil.getRemoteUser; import static org.apache.hadoop.hdds.utils.HddsServerUtil.getScmSecurityClientWithMaxRetry; import static org.apache.hadoop.ozone.OzoneConfigKeys.HDDS_DATANODE_PLUGINS_KEY; diff --git a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/ServiceRuntimeInfo.java b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/ServiceRuntimeInfo.java index efb3da99036..5f1e0463267 100644 --- a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/ServiceRuntimeInfo.java +++ b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/ServiceRuntimeInfo.java @@ -34,7 +34,7 @@ public interface ServiceRuntimeInfo { /** - * Gets the namespace of Hadoop. + * Gets the namespace of Ozone. * * @return the namespace */
Namespace: {{$ctrl.jmx.Namespace}}