HDFS-16584.Record StandbyNameNode information when Balancer is running. (#4333). Contributed by JiangHua Zhu.
Signed-off-by: litao <tomleescut@gmail.com> Signed-off-by: He Xiaoqiao <hexiaoqiao@apache.org>
This commit is contained in:
parent
93a13202d7
commit
4fd4208439
|
@ -21,6 +21,7 @@ import java.io.Closeable;
|
|||
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 class NameNodeConnector implements Closeable {
|
|||
}
|
||||
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 class NameNodeConnector implements Closeable {
|
|||
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 class NameNodeConnector implements Closeable {
|
|||
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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -202,15 +202,19 @@ public class TestBalancerWithHANameNodes {
|
|||
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();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue