/// <exception cref="System.Exception"/> protected internal virtual void StartServer() { Configuration conf = GetConfig(); YarnRPC rpc = YarnRPC.Create(conf); this.server = (RPC.Server)rpc.GetServer(typeof(ResourceManagerAdministrationProtocol ), this, masterServiceBindAddress, conf, null, conf.GetInt(YarnConfiguration.RmAdminClientThreadCount , YarnConfiguration.DefaultRmAdminClientThreadCount)); // Enable service authorization? if (conf.GetBoolean(CommonConfigurationKeysPublic.HadoopSecurityAuthorization, false )) { RefreshServiceAcls(GetConfiguration(conf, YarnConfiguration.HadoopPolicyConfigurationFile ), RMPolicyProvider.GetInstance()); } if (rmContext.IsHAEnabled()) { RPC.SetProtocolEngine(conf, typeof(HAServiceProtocolPB), typeof(ProtobufRpcEngine )); HAServiceProtocolServerSideTranslatorPB haServiceProtocolXlator = new HAServiceProtocolServerSideTranslatorPB (this); BlockingService haPbService = HAServiceProtocolProtos.HAServiceProtocolService.NewReflectiveBlockingService (haServiceProtocolXlator); server.AddProtocol(RPC.RpcKind.RpcProtocolBuffer, typeof(HAServiceProtocol), haPbService ); } this.server.Start(); conf.UpdateConnectAddr(YarnConfiguration.RmBindHost, YarnConfiguration.RmAdminAddress , YarnConfiguration.DefaultRmAdminAddress, server.GetListenerAddress()); }
private IPEndPoint StartAndGetRPCServerAddress(IPEndPoint serverAddress) { Configuration conf = new Configuration(); try { RPC.SetProtocolEngine(conf, typeof(HAServiceProtocolPB), typeof(ProtobufRpcEngine )); HAServiceProtocolServerSideTranslatorPB haServiceProtocolXlator = new HAServiceProtocolServerSideTranslatorPB (new DummyHAService.MockHAProtocolImpl(this)); BlockingService haPbService = HAServiceProtocolProtos.HAServiceProtocolService.NewReflectiveBlockingService (haServiceProtocolXlator); Server server = new RPC.Builder(conf).SetProtocol(typeof(HAServiceProtocolPB)).SetInstance (haPbService).SetBindAddress(serverAddress.GetHostName()).SetPort(serverAddress. Port).Build(); server.Start(); return(NetUtils.GetConnectAddress(server)); } catch (IOException) { return(null); } }