diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/BrokerMgr.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/BrokerMgr.java index e1ec818c20..74a03e5297 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/BrokerMgr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/BrokerMgr.java @@ -27,6 +27,7 @@ import org.apache.doris.common.io.Writable; import org.apache.doris.common.proc.BaseProcResult; import org.apache.doris.common.proc.ProcNodeInterface; import org.apache.doris.common.proc.ProcResult; +import org.apache.doris.common.util.NetUtils; import org.apache.doris.common.util.TimeUtils; import com.google.common.collect.ArrayListMultimap; @@ -48,10 +49,12 @@ import java.util.concurrent.locks.ReentrantLock; */ public class BrokerMgr { public static final ImmutableList BROKER_PROC_NODE_TITLE_NAMES = new ImmutableList.Builder() - .add("Name").add("IP").add("Port").add("Alive") + .add("Name").add("IP").add("HostName").add("Port").add("Alive") .add("LastStartTime").add("LastUpdateTime").add("ErrMsg") .build(); + public static final int HOSTNAME_INDEX = 2; + // we need IP to find the co-location broker. // { BrokerName -> { IP -> [FsBroker] } } private final Map> brokersMap = Maps.newHashMap(); @@ -341,6 +344,7 @@ public class BrokerMgr { List row = Lists.newArrayList(); row.add(brokerName); row.add(broker.ip); + row.add(NetUtils.getHostnameByIp(broker.ip)); row.add(String.valueOf(broker.port)); row.add(String.valueOf(broker.isAlive)); row.add(TimeUtils.longToTimeString(broker.lastStartTime)); diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/proc/BackendsProcDir.java b/fe/fe-core/src/main/java/org/apache/doris/common/proc/BackendsProcDir.java index 559f1e0cd4..4dff354546 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/common/proc/BackendsProcDir.java +++ b/fe/fe-core/src/main/java/org/apache/doris/common/proc/BackendsProcDir.java @@ -25,8 +25,8 @@ import org.apache.doris.common.AnalysisException; import org.apache.doris.common.Pair; import org.apache.doris.common.util.DebugUtil; import org.apache.doris.common.util.ListComparator; +import org.apache.doris.common.util.NetUtils; import org.apache.doris.common.util.TimeUtils; -import org.apache.doris.service.FrontendOptions; import org.apache.doris.system.Backend; import org.apache.doris.system.SystemInfoService; @@ -55,7 +55,6 @@ public class BackendsProcDir implements ProcDirInterface { .add("MaxDiskUsedPct").add("ErrMsg").add("Version").add("Status") .build(); - public static final int IP_INDEX = 2; public static final int HOSTNAME_INDEX = 3; private SystemInfoService clusterInfoService; @@ -120,7 +119,7 @@ public class BackendsProcDir implements ProcDirInterface { backendInfo.add(backend.getOwnerClusterName()); backendInfo.add(backend.getHost()); if (Strings.isNullOrEmpty(clusterName)) { - backendInfo.add(FrontendOptions.getHostnameByIp(backend.getHost())); + backendInfo.add(NetUtils.getHostnameByIp(backend.getHost())); backendInfo.add(String.valueOf(backend.getHeartbeatPort())); backendInfo.add(String.valueOf(backend.getBePort())); backendInfo.add(String.valueOf(backend.getHttpPort())); diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/proc/FrontendsProcNode.java b/fe/fe-core/src/main/java/org/apache/doris/common/proc/FrontendsProcNode.java index dd2277edd4..6bad1aa4f4 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/common/proc/FrontendsProcNode.java +++ b/fe/fe-core/src/main/java/org/apache/doris/common/proc/FrontendsProcNode.java @@ -20,8 +20,8 @@ package org.apache.doris.common.proc; import org.apache.doris.catalog.Catalog; import org.apache.doris.common.Config; import org.apache.doris.common.Pair; +import org.apache.doris.common.util.NetUtils; import org.apache.doris.common.util.TimeUtils; -import org.apache.doris.service.FrontendOptions; import org.apache.doris.system.Frontend; import com.google.common.collect.ImmutableList; @@ -95,7 +95,7 @@ public class FrontendsProcNode implements ProcNodeInterface { info.add(fe.getNodeName()); info.add(fe.getHost()); - info.add(FrontendOptions.getHostnameByIp(fe.getHost())); + info.add(NetUtils.getHostnameByIp(fe.getHost())); info.add(Integer.toString(fe.getEditLogPort())); info.add(Integer.toString(Config.http_port)); diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/util/NetUtils.java b/fe/fe-core/src/main/java/org/apache/doris/common/util/NetUtils.java index ff0d1f861a..6e17e2cde4 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/common/util/NetUtils.java +++ b/fe/fe-core/src/main/java/org/apache/doris/common/util/NetUtils.java @@ -17,14 +17,19 @@ package org.apache.doris.common.util; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.NetworkInterface; import java.net.SocketException; +import java.net.UnknownHostException; import java.util.Enumeration; import java.util.List; public class NetUtils { + private static final Logger LOG = LogManager.getLogger(NetUtils.class); // Target format is "host:port" public static InetSocketAddress createSocketAddr(String target) { @@ -57,4 +62,16 @@ public class NetUtils { } } } + + public static String getHostnameByIp(String ip) { + String hostName; + try { + InetAddress address = InetAddress.getByName(ip); + hostName = address.getHostName(); + } catch (UnknownHostException e) { + LOG.info("unknown host for {}", ip, e); + hostName = "unknown"; + } + return hostName; + } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java b/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java index 189704a364..cc07ca5920 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java @@ -72,6 +72,7 @@ import org.apache.doris.backup.AbstractJob; import org.apache.doris.backup.BackupJob; import org.apache.doris.backup.Repository; import org.apache.doris.backup.RestoreJob; +import org.apache.doris.catalog.BrokerMgr; import org.apache.doris.catalog.Catalog; import org.apache.doris.catalog.Column; import org.apache.doris.catalog.Database; @@ -1326,10 +1327,13 @@ public class ShowExecutor { // Handle show brokers private void handleShowBroker() { ShowBrokerStmt showStmt = (ShowBrokerStmt) stmt; - List> rowSet = Catalog.getCurrentCatalog().getBrokerMgr().getBrokersInfo(); + List> brokersInfo = Catalog.getCurrentCatalog().getBrokerMgr().getBrokersInfo(); + for (List row : brokersInfo) { + row.remove(BrokerMgr.HOSTNAME_INDEX); + } // Only success - resultSet = new ShowResultSet(showStmt.getMetaData(), rowSet); + resultSet = new ShowResultSet(showStmt.getMetaData(), brokersInfo); } // Handle show resources diff --git a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendOptions.java b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendOptions.java index ef08299c1f..ca3f933d79 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendOptions.java +++ b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendOptions.java @@ -19,7 +19,6 @@ package org.apache.doris.service; import org.apache.doris.common.CIDR; import org.apache.doris.common.Config; -import org.apache.doris.common.FeConstants; import org.apache.doris.common.util.NetUtils; import com.google.common.base.Strings; @@ -101,18 +100,6 @@ public class FrontendOptions { return localAddr.getHostName(); } - public static String getHostnameByIp(String ip) { - String hostName = FeConstants.null_string; - try { - InetAddress address = InetAddress.getByName(ip); - hostName = address.getHostName(); - } catch (UnknownHostException e) { - LOG.info("unknown host for {}", ip, e); - hostName = "unknown"; - } - return hostName; - } - private static void analyzePriorityCidrs() { String prior_cidrs = Config.priority_networks; if (Strings.isNullOrEmpty(prior_cidrs)) {