diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/balancer/NameNodeConnector.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/balancer/NameNodeConnector.java index 238457bcb8..34be025203 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/balancer/NameNodeConnector.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/balancer/NameNodeConnector.java @@ -21,6 +21,7 @@ import java.io.IOException; import java.io.OutputStream; import java.net.InetAddress; +import java.net.InetSocketAddress; import java.net.URI; import java.util.ArrayList; import java.util.Arrays; @@ -260,13 +261,15 @@ public BlocksWithLocations getBlocks(DatanodeInfo datanode, long size, long } boolean isRequestStandby = false; NamenodeProtocol nnProxy = null; + InetSocketAddress standbyAddress = null; try { ProxyPair proxyPair = getProxy(); isRequestStandby = proxyPair.isRequestStandby; ClientProtocol proxy = proxyPair.clientProtocol; if (isRequestStandby) { + standbyAddress = RPC.getServerAddress(proxy); nnProxy = NameNodeProxies.createNonHAProxy( - config, RPC.getServerAddress(proxy), NamenodeProtocol.class, + config, standbyAddress, NamenodeProtocol.class, UserGroupInformation.getCurrentUser(), false).getProxy(); } else { nnProxy = namenode; @@ -274,7 +277,8 @@ public BlocksWithLocations getBlocks(DatanodeInfo datanode, long size, long return nnProxy.getBlocks(datanode, size, minBlockSize, timeInterval); } finally { if (isRequestStandby) { - LOG.info("Request #getBlocks to Standby NameNode success."); + LOG.info("Request #getBlocks to Standby NameNode success. " + + "remoteAddress: {}", standbyAddress.getHostString()); } } } @@ -297,15 +301,19 @@ public boolean isUpgrading() throws IOException { public DatanodeStorageReport[] getLiveDatanodeStorageReport() throws IOException { boolean isRequestStandby = false; + InetSocketAddress standbyAddress = null; try { ProxyPair proxyPair = getProxy(); isRequestStandby = proxyPair.isRequestStandby; ClientProtocol proxy = proxyPair.clientProtocol; + if (isRequestStandby) { + standbyAddress = RPC.getServerAddress(proxy); + } return proxy.getDatanodeStorageReport(DatanodeReportType.LIVE); } finally { if (isRequestStandby) { LOG.info("Request #getLiveDatanodeStorageReport to Standby " + - "NameNode success."); + "NameNode success. remoteAddress: {}", standbyAddress.getHostString()); } } } diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancerWithHANameNodes.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancerWithHANameNodes.java index 9b4ba5ccb7..d69051c8d7 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancerWithHANameNodes.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancerWithHANameNodes.java @@ -202,15 +202,19 @@ public void testBalancerRequestSBNWithHA() throws Exception { try { cluster.waitActive(); cluster.transitionToActive(0); + String standbyNameNode = cluster.getNameNode(1). + getNameNodeAddress().getHostString(); Thread.sleep(500); client = NameNodeProxies.createProxy(conf, FileSystem.getDefaultUri(conf), ClientProtocol.class).getProxy(); doTest(conf); // Check getBlocks request to Standby NameNode. assertTrue(log.getOutput().contains( - "Request #getBlocks to Standby NameNode success.")); + "Request #getBlocks to Standby NameNode success. remoteAddress: " + + standbyNameNode)); assertTrue(log.getOutput().contains( - "Request #getLiveDatanodeStorageReport to Standby NameNode success")); + "Request #getLiveDatanodeStorageReport to Standby NameNode success. " + + "remoteAddress: " + standbyNameNode)); } finally { cluster.shutdown(); }