|
@@ -59,6 +59,9 @@ import org.apache.hadoop.hdfs.protocol.HdfsConstants.DatanodeReportType;
|
|
|
import org.apache.hadoop.hdfs.protocol.HdfsConstants.SafeModeAction;
|
|
|
import org.apache.hadoop.hdfs.protocol.HdfsConstants.UpgradeAction;
|
|
|
import org.apache.hadoop.hdfs.protocol.proto.NamenodeProtocolProtos.NamenodeProtocolService;
|
|
|
+import org.apache.hadoop.hdfs.protocol.proto.DatanodeProtocolProtos.DatanodeProtocolService;
|
|
|
+import org.apache.hadoop.hdfs.protocolPB.DatanodeProtocolPB;
|
|
|
+import org.apache.hadoop.hdfs.protocolPB.DatanodeProtocolServerSideTranslatorPB;
|
|
|
import org.apache.hadoop.hdfs.protocolPB.NamenodeProtocolPB;
|
|
|
import org.apache.hadoop.hdfs.protocolPB.NamenodeProtocolServerSideTranslatorPB;
|
|
|
import org.apache.hadoop.hdfs.protocolR23Compatible.ClientNamenodeWireProtocol;
|
|
@@ -142,6 +145,11 @@ class NameNodeRpcServer implements NamenodeProtocols {
|
|
|
clientProtocolServerTranslator =
|
|
|
new ClientNamenodeProtocolServerSideTranslatorR23(this);
|
|
|
|
|
|
+ DatanodeProtocolServerSideTranslatorPB dnProtoPbTranslator =
|
|
|
+ new DatanodeProtocolServerSideTranslatorPB(this);
|
|
|
+ BlockingService dnProtoPbService = DatanodeProtocolService
|
|
|
+ .newReflectiveBlockingService(dnProtoPbTranslator);
|
|
|
+
|
|
|
NamenodeProtocolServerSideTranslatorPB namenodeProtocolXlator =
|
|
|
new NamenodeProtocolServerSideTranslatorPB(this);
|
|
|
BlockingService service = NamenodeProtocolService
|
|
@@ -159,8 +167,6 @@ class NameNodeRpcServer implements NamenodeProtocols {
|
|
|
dnSocketAddr.getHostName(), dnSocketAddr.getPort(),
|
|
|
serviceHandlerCount,
|
|
|
false, conf, namesystem.getDelegationTokenSecretManager());
|
|
|
- this.serviceRpcServer.addProtocol(RpcKind.RPC_WRITABLE,
|
|
|
- DatanodeProtocol.class, this);
|
|
|
this.serviceRpcServer.addProtocol(RpcKind.RPC_WRITABLE,
|
|
|
RefreshAuthorizationPolicyProtocol.class, this);
|
|
|
this.serviceRpcServer.addProtocol(RpcKind.RPC_WRITABLE,
|
|
@@ -169,6 +175,8 @@ class NameNodeRpcServer implements NamenodeProtocols {
|
|
|
GetUserMappingsProtocol.class, this);
|
|
|
DFSUtil.addPBProtocol(conf, NamenodeProtocolPB.class, service,
|
|
|
serviceRpcServer);
|
|
|
+ DFSUtil.addPBProtocol(conf, DatanodeProtocolPB.class, dnProtoPbService,
|
|
|
+ serviceRpcServer);
|
|
|
|
|
|
this.serviceRPCAddress = this.serviceRpcServer.getListenerAddress();
|
|
|
nn.setRpcServiceServerAddress(conf, serviceRPCAddress);
|
|
@@ -183,8 +191,6 @@ class NameNodeRpcServer implements NamenodeProtocols {
|
|
|
clientProtocolServerTranslator, socAddr.getHostName(),
|
|
|
socAddr.getPort(), handlerCount, false, conf,
|
|
|
namesystem.getDelegationTokenSecretManager());
|
|
|
- this.clientRpcServer.addProtocol(RpcKind.RPC_WRITABLE,
|
|
|
- DatanodeProtocol.class, this);
|
|
|
this.clientRpcServer.addProtocol(RpcKind.RPC_WRITABLE,
|
|
|
RefreshAuthorizationPolicyProtocol.class, this);
|
|
|
this.clientRpcServer.addProtocol(RpcKind.RPC_WRITABLE,
|
|
@@ -193,7 +199,8 @@ class NameNodeRpcServer implements NamenodeProtocols {
|
|
|
GetUserMappingsProtocol.class, this);
|
|
|
DFSUtil.addPBProtocol(conf, NamenodeProtocolPB.class, service,
|
|
|
clientRpcServer);
|
|
|
-
|
|
|
+ DFSUtil.addPBProtocol(conf, DatanodeProtocolPB.class, dnProtoPbService,
|
|
|
+ clientRpcServer);
|
|
|
|
|
|
// set service-level authorization security policy
|
|
|
if (serviceAuthEnabled =
|