HDFS-15839. RBF: Cannot get method setBalancerBandwidth on Router Client. Contributed by Yang Yun.
This commit is contained in:
parent
b9b49ed956
commit
2ce5752fa8
|
@ -1183,7 +1183,7 @@ public class RouterClientProtocol implements ClientProtocol {
|
|||
rpcServer.checkOperation(NameNode.OperationCategory.UNCHECKED);
|
||||
|
||||
RemoteMethod method = new RemoteMethod("setBalancerBandwidth",
|
||||
new Class<?>[] {Long.class}, bandwidth);
|
||||
new Class<?>[] {long.class}, bandwidth);
|
||||
final Set<FederationNamespaceInfo> nss = namenodeResolver.getNamespaces();
|
||||
rpcClient.invokeConcurrent(nss, method, true, false);
|
||||
}
|
||||
|
|
|
@ -99,6 +99,7 @@ import org.apache.hadoop.hdfs.protocol.HdfsConstants.SafeModeAction;
|
|||
import org.apache.hadoop.hdfs.security.token.block.ExportedBlockKeys;
|
||||
import org.apache.hadoop.hdfs.server.blockmanagement.BlockManager;
|
||||
import org.apache.hadoop.hdfs.server.blockmanagement.BlockManagerTestUtil;
|
||||
import org.apache.hadoop.hdfs.server.datanode.DataNode;
|
||||
import org.apache.hadoop.hdfs.server.federation.MiniRouterDFSCluster;
|
||||
import org.apache.hadoop.hdfs.server.federation.MiniRouterDFSCluster.NamenodeContext;
|
||||
import org.apache.hadoop.hdfs.server.federation.MiniRouterDFSCluster.RouterContext;
|
||||
|
@ -1934,4 +1935,16 @@ public class TestRouterRpc {
|
|||
.contains("callerContext=clientContext,clientIp:"));
|
||||
assertTrue(verifyFileExists(routerFS, dirPath));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetBalancerBandwidth() throws Exception {
|
||||
long defaultBandwidth =
|
||||
DFSConfigKeys.DFS_DATANODE_BALANCE_BANDWIDTHPERSEC_DEFAULT;
|
||||
long newBandwidth = defaultBandwidth * 2;
|
||||
routerProtocol.setBalancerBandwidth(newBandwidth);
|
||||
ArrayList<DataNode> datanodes = cluster.getCluster().getDataNodes();
|
||||
GenericTestUtils.waitFor(() -> {
|
||||
return datanodes.get(0).getBalancerBandwidth() == newBandwidth;
|
||||
}, 100, 60 * 1000);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue