HDFS-14116. [SBN read] Fix class cast error in NNThroughputBenchmark with ObserverReadProxyProvider. Contributed by Chao Sun.

This commit is contained in:
Chao Sun 2018-12-17 16:32:54 -08:00 committed by Chen Liang
parent 6c1bf61628
commit 7a650b018c
2 changed files with 9 additions and 9 deletions

View File

@ -70,7 +70,6 @@ import java.util.Random;
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.TimeoutException; import java.util.concurrent.TimeoutException;
import java.util.concurrent.atomic.AtomicBoolean;
import com.google.common.base.Charsets; import com.google.common.base.Charsets;
import com.google.common.base.Joiner; import com.google.common.base.Joiner;
@ -2010,18 +2009,17 @@ public class DFSTestUtil {
* Get the RefreshUserMappingsProtocol RPC proxy for the NN associated with * Get the RefreshUserMappingsProtocol RPC proxy for the NN associated with
* this DFSClient object * this DFSClient object
* *
* @param nameNodeUri the URI of the NN to get a proxy for. * @param nnAddr the address of the NN to get a proxy for.
* *
* @return the RefreshUserMappingsProtocol RPC proxy associated with this * @return the RefreshUserMappingsProtocol RPC proxy associated with this
* DFSClient object * DFSClient object
*/ */
@VisibleForTesting @VisibleForTesting
public static RefreshUserMappingsProtocol getRefreshUserMappingsProtocolProxy( public static RefreshUserMappingsProtocol getRefreshUserMappingsProtocolProxy(
Configuration conf, URI nameNodeUri) throws IOException { Configuration conf, InetSocketAddress nnAddr) throws IOException {
final AtomicBoolean nnFallbackToSimpleAuth = new AtomicBoolean(false); return NameNodeProxies.createNonHAProxy(
return NameNodeProxies.createProxy(conf, conf, nnAddr, RefreshUserMappingsProtocol.class,
nameNodeUri, RefreshUserMappingsProtocol.class, UserGroupInformation.getCurrentUser(), false).getProxy();
nnFallbackToSimpleAuth).getProxy();
} }
/** /**

View File

@ -20,6 +20,7 @@ package org.apache.hadoop.hdfs.server.namenode;
import java.io.File; import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.URI; import java.net.URI;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@ -1523,10 +1524,11 @@ public class NNThroughputBenchmark implements Tool {
nameNodeProto = DFSTestUtil.getNamenodeProtocolProxy(config, nnUri, nameNodeProto = DFSTestUtil.getNamenodeProtocolProxy(config, nnUri,
UserGroupInformation.getCurrentUser()); UserGroupInformation.getCurrentUser());
clientProto = dfs.getClient().getNamenode(); clientProto = dfs.getClient().getNamenode();
InetSocketAddress nnAddr = DFSUtilClient.getNNAddress(nnUri);
dataNodeProto = new DatanodeProtocolClientSideTranslatorPB( dataNodeProto = new DatanodeProtocolClientSideTranslatorPB(
DFSUtilClient.getNNAddress(nnUri), config); nnAddr, config);
refreshUserMappingsProto = refreshUserMappingsProto =
DFSTestUtil.getRefreshUserMappingsProtocolProxy(config, nnUri); DFSTestUtil.getRefreshUserMappingsProtocolProxy(config, nnAddr);
getBlockPoolId(dfs); getBlockPoolId(dfs);
} }
// run each benchmark // run each benchmark