org.apache.hadoop.yarn.api.ApplicationClientProtocol.forceKillApplication()方法的使用及代码示例

x33g5p2x  于2022-01-16 转载在 其他  
字(14.5k)|赞(0)|评价(0)|浏览(194)

本文整理了Java中org.apache.hadoop.yarn.api.ApplicationClientProtocol.forceKillApplication()方法的一些代码示例,展示了ApplicationClientProtocol.forceKillApplication()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ApplicationClientProtocol.forceKillApplication()方法的具体详情如下:
包路径:org.apache.hadoop.yarn.api.ApplicationClientProtocol
类名称:ApplicationClientProtocol
方法名:forceKillApplication

ApplicationClientProtocol.forceKillApplication介绍

[英]The interface used by clients to request the ResourceManager to abort submitted application.

The client, via KillApplicationRequest provides the ApplicationId of the application to be aborted.

In secure mode,the ResourceManager verifies access to the application, queue etc. before terminating the application.

Currently, the ResourceManager returns an empty response on success and throws an exception on rejecting the request.
[中]客户端用于请求ResourceManager中止提交的应用程序的接口。
客户端通过KillApplicationRequest提供要中止的应用程序的ApplicationId。
在安全模式下,ResourceManager在终止应用程序之前验证对应用程序、队列等的访问。
当前,ResourceManager在成功时返回空响应,在拒绝请求时抛出异常。

代码示例

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-router

@Override
public KillApplicationResponse forceKillApplication(
  KillApplicationRequest request) throws YarnException, IOException {
 return clientRMProxy.forceKillApplication(request);
}

代码示例来源:origin: org.springframework.data/spring-yarn-core

@Override
  public KillApplicationResponse doInYarn(ApplicationClientProtocol proxy) throws YarnException, IOException {
    KillApplicationRequest request = Records.newRecord(KillApplicationRequest.class);
    request.setApplicationId(applicationId);
    return proxy.forceKillApplication(request);
  }
});

代码示例来源:origin: alibaba/mpich2-yarn

/**
 * Kill a submitted application by sending a call to the ASM
 * @param applicationsManager Client<->RM
 * @param appId Application Id to be killed.
 * @throws YarnException, IOException
 */
public static void killApplication(ApplicationClientProtocol applicationsManager, ApplicationId appId)
  throws YarnException, IOException {
 KillApplicationRequest request = Records.newRecord(KillApplicationRequest.class);
 // TODO clarify whether multiple jobs with the same app id can be submitted
 // and be running at the same time. If yes, can we kill a particular attempt only?
 request.setApplicationId(appId);
 LOG.info("Killing appliation with id: " + appId.toString());
 // Response can be ignored as it is non-null on success or throws an exception in case of failures
 applicationsManager.forceKillApplication(request);
}

代码示例来源:origin: apache/hama

public void kill() throws YarnException, IOException {
 if (submitClient != null) {
  KillApplicationRequest killRequest = Records
    .newRecord(KillApplicationRequest.class);
  killRequest.setApplicationId(submitClient.getId());
  applicationsManager.forceKillApplication(killRequest);
 }
}

代码示例来源:origin: org.apache.slider/slider-core

/**
 * Kill a running application
 * @param applicationId app Id
 * @param reason reason: reason for log
 * @return the response
 * @throws YarnException YARN problems
 * @throws IOException IO problems
 */
public  KillApplicationResponse killRunningApplication(ApplicationId applicationId,
                            String reason)
  throws YarnException, IOException {
 Preconditions.checkArgument(applicationId != null, "Null application Id");
 log.info("Killing application {} - {}", applicationId.getClusterTimestamp(),
      reason);
 KillApplicationRequest request =
  Records.newRecord(KillApplicationRequest.class);
 request.setApplicationId(applicationId);
 return getRmClient().forceKillApplication(request);
}

代码示例来源:origin: apache/incubator-slider

/**
 * Kill a running application
 * @param applicationId app Id
 * @param reason reason: reason for log
 * @return the response
 * @throws YarnException YARN problems
 * @throws IOException IO problems
 */
public  KillApplicationResponse killRunningApplication(ApplicationId applicationId,
                            String reason)
  throws YarnException, IOException {
 Preconditions.checkArgument(applicationId != null, "Null application Id");
 log.info("Killing application {} - {}", applicationId.getClusterTimestamp(),
      reason);
 KillApplicationRequest request =
  Records.newRecord(KillApplicationRequest.class);
 request.setApplicationId(applicationId);
 return getRmClient().forceKillApplication(request);
}

代码示例来源:origin: com.github.jiayuhan-it/hadoop-yarn-common

@Override
public KillApplicationResponseProto forceKillApplication(RpcController arg0,
  KillApplicationRequestProto proto) throws ServiceException {
 KillApplicationRequestPBImpl request = new KillApplicationRequestPBImpl(proto);
 try {
  KillApplicationResponse response = real.forceKillApplication(request);
  return ((KillApplicationResponsePBImpl)response).getProto();
 } catch (YarnException e) {
  throw new ServiceException(e);
 } catch (IOException e) {
  throw new ServiceException(e);
 }
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-common

@Override
public KillApplicationResponseProto forceKillApplication(RpcController arg0,
  KillApplicationRequestProto proto) throws ServiceException {
 KillApplicationRequestPBImpl request = new KillApplicationRequestPBImpl(proto);
 try {
  KillApplicationResponse response = real.forceKillApplication(request);
  return ((KillApplicationResponsePBImpl)response).getProto();
 } catch (YarnException e) {
  throw new ServiceException(e);
 } catch (IOException e) {
  throw new ServiceException(e);
 }
}

代码示例来源:origin: ch.cern.hadoop/hadoop-yarn-common

@Override
public KillApplicationResponseProto forceKillApplication(RpcController arg0,
  KillApplicationRequestProto proto) throws ServiceException {
 KillApplicationRequestPBImpl request = new KillApplicationRequestPBImpl(proto);
 try {
  KillApplicationResponse response = real.forceKillApplication(request);
  return ((KillApplicationResponsePBImpl)response).getProto();
 } catch (YarnException e) {
  throw new ServiceException(e);
 } catch (IOException e) {
  throw new ServiceException(e);
 }
}

代码示例来源:origin: ch.cern.hadoop/hadoop-yarn-server-resourcemanager

public KillApplicationResponse killApp(ApplicationId appId) throws Exception {
 ApplicationClientProtocol client = getClientRMService();
 KillApplicationRequest req = KillApplicationRequest.newInstance(appId);
 return client.forceKillApplication(req);
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-resourcemanager

public KillApplicationResponse killApp(ApplicationId appId) throws Exception {
 ApplicationClientProtocol client = getClientRMService();
 KillApplicationRequest req = KillApplicationRequest.newInstance(appId);
 KillApplicationResponse response = client.forceKillApplication(req);
 drainEventsImplicitly();
 return response;
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-resourcemanager

private void verifyKillAppFailure(String submitter, String killer,
  String queueName, boolean setupACLs) throws Exception {
 ApplicationId applicationId =
   submitAppAndGetAppId(submitter, queueName, setupACLs);
 final KillApplicationRequest finishAppRequest =
   KillApplicationRequest.newInstance(applicationId);
 ApplicationClientProtocol killerClient = getRMClientForUser(killer);
 // Kill app as the killer
 try {
  killerClient.forceKillApplication(finishAppRequest);
  Assert.fail("App killing by the enemy should fail!!");
 } catch (YarnException e) {
  LOG.info("Got exception while killing app as the enemy", e);
  Assert.assertTrue(e.getMessage().contains(
   "User " + killer + " cannot perform operation MODIFY_APP on "
     + applicationId));
 }
 getRMClientForUser(submitter).forceKillApplication(finishAppRequest);
}

代码示例来源:origin: ch.cern.hadoop/hadoop-yarn-server-resourcemanager

private void verifyKillAppFailure(String submitter, String killer,
  String queueName, boolean setupACLs) throws Exception {
 ApplicationId applicationId =
   submitAppAndGetAppId(submitter, queueName, setupACLs);
 final KillApplicationRequest finishAppRequest =
   KillApplicationRequest.newInstance(applicationId);
 ApplicationClientProtocol killerClient = getRMClientForUser(killer);
 // Kill app as the killer
 try {
  killerClient.forceKillApplication(finishAppRequest);
  Assert.fail("App killing by the enemy should fail!!");
 } catch (YarnException e) {
  LOG.info("Got exception while killing app as the enemy", e);
  Assert.assertTrue(e.getMessage().contains(
   "User " + killer + " cannot perform operation MODIFY_APP on "
     + applicationId));
 }
 getRMClientForUser(submitter).forceKillApplication(finishAppRequest);
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-resourcemanager

private void verifyKillAppSuccess(String submitter, String killer,
  String queueName, boolean setupACLs) throws Exception {
 ApplicationId applicationId =
   submitAppAndGetAppId(submitter, queueName, setupACLs);
 final KillApplicationRequest finishAppRequest =
   KillApplicationRequest.newInstance(applicationId);
 ApplicationClientProtocol ownerClient = getRMClientForUser(killer);
 // Kill app as killer
 ownerClient.forceKillApplication(finishAppRequest);
 resourceManager.waitForState(applicationId, RMAppState.KILLED);
}

代码示例来源:origin: ch.cern.hadoop/hadoop-yarn-server-resourcemanager

private void verifyKillAppSuccess(String submitter, String killer,
  String queueName, boolean setupACLs) throws Exception {
 ApplicationId applicationId =
   submitAppAndGetAppId(submitter, queueName, setupACLs);
 final KillApplicationRequest finishAppRequest =
   KillApplicationRequest.newInstance(applicationId);
 ApplicationClientProtocol ownerClient = getRMClientForUser(killer);
 // Kill app as killer
 ownerClient.forceKillApplication(finishAppRequest);
 resourceManager.waitForState(applicationId, RMAppState.KILLED);
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-resourcemanager

private void verifyOwnerAccess() throws Exception {
 AccessControlList viewACL = new AccessControlList("");
 viewACL.addGroup(FRIENDLY_GROUP);
 AccessControlList modifyACL = new AccessControlList("");
 modifyACL.addUser(FRIEND);
 ApplicationId applicationId = submitAppAndGetAppId(viewACL, modifyACL);
 final GetApplicationReportRequest appReportRequest = recordFactory
   .newRecordInstance(GetApplicationReportRequest.class);
 appReportRequest.setApplicationId(applicationId);
 final KillApplicationRequest finishAppRequest = recordFactory
   .newRecordInstance(KillApplicationRequest.class);
 finishAppRequest.setApplicationId(applicationId);
 // View as owner
 rmClient.getApplicationReport(appReportRequest);
 // List apps as owner
 Assert.assertEquals("App view by owner should list the apps!!", 1,
   rmClient.getApplications(
     recordFactory.newRecordInstance(GetApplicationsRequest.class))
     .getApplicationList().size());
 // Kill app as owner
 rmClient.forceKillApplication(finishAppRequest);
 resourceManager.waitForState(applicationId, RMAppState.KILLED);
}

代码示例来源:origin: ch.cern.hadoop/hadoop-yarn-server-resourcemanager

private void verifyOwnerAccess() throws Exception {
 AccessControlList viewACL = new AccessControlList("");
 viewACL.addGroup(FRIENDLY_GROUP);
 AccessControlList modifyACL = new AccessControlList("");
 modifyACL.addUser(FRIEND);
 ApplicationId applicationId = submitAppAndGetAppId(viewACL, modifyACL);
 final GetApplicationReportRequest appReportRequest = recordFactory
   .newRecordInstance(GetApplicationReportRequest.class);
 appReportRequest.setApplicationId(applicationId);
 final KillApplicationRequest finishAppRequest = recordFactory
   .newRecordInstance(KillApplicationRequest.class);
 finishAppRequest.setApplicationId(applicationId);
 // View as owner
 rmClient.getApplicationReport(appReportRequest);
 // List apps as owner
 Assert.assertEquals("App view by owner should list the apps!!", 1,
   rmClient.getApplications(
     recordFactory.newRecordInstance(GetApplicationsRequest.class))
     .getApplicationList().size());
 // Kill app as owner
 rmClient.forceKillApplication(finishAppRequest);
 resourceManager.waitForState(applicationId, RMAppState.KILLED);
}

代码示例来源:origin: ch.cern.hadoop/hadoop-yarn-server-resourcemanager

private void verifySuperUserAccess() throws Exception {
 AccessControlList viewACL = new AccessControlList("");
 viewACL.addGroup(FRIENDLY_GROUP);
 AccessControlList modifyACL = new AccessControlList("");
 modifyACL.addUser(FRIEND);
 ApplicationId applicationId = submitAppAndGetAppId(viewACL, modifyACL);
 final GetApplicationReportRequest appReportRequest = recordFactory
   .newRecordInstance(GetApplicationReportRequest.class);
 appReportRequest.setApplicationId(applicationId);
 final KillApplicationRequest finishAppRequest = recordFactory
   .newRecordInstance(KillApplicationRequest.class);
 finishAppRequest.setApplicationId(applicationId);
 ApplicationClientProtocol superUserClient = getRMClientForUser(SUPER_USER);
 // View as the superUser
 superUserClient.getApplicationReport(appReportRequest);
 // List apps as superUser
 Assert.assertEquals("App view by super-user should list the apps!!", 2,
   superUserClient.getApplications(
     recordFactory.newRecordInstance(GetApplicationsRequest.class))
     .getApplicationList().size());
 // Kill app as the superUser
 superUserClient.forceKillApplication(finishAppRequest);
 resourceManager.waitForState(applicationId, RMAppState.KILLED);
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-resourcemanager

private void verifyFriendAccess() throws Exception {
 AccessControlList viewACL = new AccessControlList("");
 viewACL.addGroup(FRIENDLY_GROUP);
 AccessControlList modifyACL = new AccessControlList("");
 modifyACL.addUser(FRIEND);
 ApplicationId applicationId = submitAppAndGetAppId(viewACL, modifyACL);
 final GetApplicationReportRequest appReportRequest = recordFactory
   .newRecordInstance(GetApplicationReportRequest.class);
 appReportRequest.setApplicationId(applicationId);
 final KillApplicationRequest finishAppRequest = recordFactory
   .newRecordInstance(KillApplicationRequest.class);
 finishAppRequest.setApplicationId(applicationId);
 ApplicationClientProtocol friendClient = getRMClientForUser(FRIEND);
 // View as the friend
 friendClient.getApplicationReport(appReportRequest);
 // List apps as friend
 Assert.assertEquals("App view by a friend should list the apps!!", 3,
   friendClient.getApplications(
     recordFactory.newRecordInstance(GetApplicationsRequest.class))
     .getApplicationList().size());
 // Kill app as the friend
 friendClient.forceKillApplication(finishAppRequest);
 resourceManager.waitForState(applicationId, RMAppState.KILLED);
}

代码示例来源:origin: ch.cern.hadoop/hadoop-yarn-server-resourcemanager

private void verifyFriendAccess() throws Exception {
 AccessControlList viewACL = new AccessControlList("");
 viewACL.addGroup(FRIENDLY_GROUP);
 AccessControlList modifyACL = new AccessControlList("");
 modifyACL.addUser(FRIEND);
 ApplicationId applicationId = submitAppAndGetAppId(viewACL, modifyACL);
 final GetApplicationReportRequest appReportRequest = recordFactory
   .newRecordInstance(GetApplicationReportRequest.class);
 appReportRequest.setApplicationId(applicationId);
 final KillApplicationRequest finishAppRequest = recordFactory
   .newRecordInstance(KillApplicationRequest.class);
 finishAppRequest.setApplicationId(applicationId);
 ApplicationClientProtocol friendClient = getRMClientForUser(FRIEND);
 // View as the friend
 friendClient.getApplicationReport(appReportRequest);
 // List apps as friend
 Assert.assertEquals("App view by a friend should list the apps!!", 3,
   friendClient.getApplications(
     recordFactory.newRecordInstance(GetApplicationsRequest.class))
     .getApplicationList().size());
 // Kill app as the friend
 friendClient.forceKillApplication(finishAppRequest);
 resourceManager.waitForState(applicationId, RMAppState.KILLED);
}

相关文章

微信公众号

最新文章

更多

ApplicationClientProtocol类方法