当前位置: 首页>>代码示例>>Java>>正文


Java ContainerStatus类代码示例

本文整理汇总了Java中org.apache.hadoop.yarn.api.records.ContainerStatus的典型用法代码示例。如果您正苦于以下问题:Java ContainerStatus类的具体用法?Java ContainerStatus怎么用?Java ContainerStatus使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


ContainerStatus类属于org.apache.hadoop.yarn.api.records包,在下文中一共展示了ContainerStatus类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testAMRMClientAsyncShutDown

import org.apache.hadoop.yarn.api.records.ContainerStatus; //导入依赖的package包/类
@Test (timeout = 10000)
public void testAMRMClientAsyncShutDown() throws Exception {
  Configuration conf = new Configuration();
  TestCallbackHandler callbackHandler = new TestCallbackHandler();
  @SuppressWarnings("unchecked")
  AMRMClient<ContainerRequest> client = mock(AMRMClientImpl.class);

  createAllocateResponse(new ArrayList<ContainerStatus>(),
    new ArrayList<Container>(), null);
  when(client.allocate(anyFloat())).thenThrow(
    new ApplicationAttemptNotFoundException("app not found, shut down"));

  AMRMClientAsync<ContainerRequest> asyncClient =
      AMRMClientAsync.createAMRMClientAsync(client, 10, callbackHandler);
  asyncClient.init(conf);
  asyncClient.start();

  asyncClient.registerApplicationMaster("localhost", 1234, null);

  Thread.sleep(50);

  verify(client, times(1)).allocate(anyFloat());
  asyncClient.stop();
}
 
开发者ID:naver,项目名称:hadoop,代码行数:25,代码来源:TestAMRMClientAsync.java

示例2: publishContainerEndEvent

import org.apache.hadoop.yarn.api.records.ContainerStatus; //导入依赖的package包/类
private static void publishContainerEndEvent(
    final TimelineClient timelineClient, ContainerStatus container,
    String domainId, UserGroupInformation ugi) {
  final TimelineEntity entity = new TimelineEntity();
  entity.setEntityId(container.getContainerId().toString());
  entity.setEntityType(DSEntity.DS_CONTAINER.toString());
  entity.setDomainId(domainId);
  entity.addPrimaryFilter("user", ugi.getShortUserName());
  TimelineEvent event = new TimelineEvent();
  event.setTimestamp(System.currentTimeMillis());
  event.setEventType(DSEvent.DS_CONTAINER_END.toString());
  event.addEventInfo("State", container.getState().name());
  event.addEventInfo("Exit Status", container.getExitStatus());
  entity.addEvent(event);
  try {
    timelineClient.putEntities(entity);
  } catch (YarnException | IOException e) {
    LOG.error("Container end event could not be published for "
        + container.getContainerId().toString(), e);
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:22,代码来源:ApplicationMaster.java

示例3: testAMCrashAtAllocated

import org.apache.hadoop.yarn.api.records.ContainerStatus; //导入依赖的package包/类
@Test
public void testAMCrashAtAllocated() {
  Container amContainer = allocateApplicationAttempt();
  String containerDiagMsg = "some error";
  int exitCode = 123;
  ContainerStatus cs =
      BuilderUtils.newContainerStatus(amContainer.getId(),
        ContainerState.COMPLETE, containerDiagMsg, exitCode);
  NodeId anyNodeId = NodeId.newInstance("host", 1234);
  applicationAttempt.handle(new RMAppAttemptContainerFinishedEvent(
    applicationAttempt.getAppAttemptId(), cs, anyNodeId));
  assertEquals(YarnApplicationAttemptState.ALLOCATED,
      applicationAttempt.createApplicationAttemptState());
  sendAttemptUpdateSavedEvent(applicationAttempt);
  assertEquals(RMAppAttemptState.FAILED,
    applicationAttempt.getAppAttemptState());
  verifyTokenCount(applicationAttempt.getAppAttemptId(), 1);
  verifyApplicationAttemptFinished(RMAppAttemptState.FAILED);
  boolean shouldCheckURL = (applicationAttempt.getTrackingUrl() != null);
  verifyAMCrashAtAllocatedDiagnosticInfo(applicationAttempt.getDiagnostics(),
    exitCode, shouldCheckURL);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:23,代码来源:TestRMAppAttemptTransitions.java

示例4: onContainerStatusReceived

import org.apache.hadoop.yarn.api.records.ContainerStatus; //导入依赖的package包/类
@SuppressWarnings("deprecation")
@Override
public void onContainerStatusReceived(ContainerId containerId,
    ContainerStatus containerStatus) {
  if (containerId.getId() >= expectedSuccess) {
    errorMsgs.add("Container " + containerId +
        " should throw the exception onContainerStatusReceived");
    return;
  }
  actualQuerySuccess.addAndGet(1);
  actualQuerySuccessArray.set(containerId.getId(), 1);
  // move on to the following success tests
  asyncClient.stopContainerAsync(containerId, nodeId);

  // Shouldn't crash the test thread
  throw new RuntimeException("Ignorable Exception");
}
 
开发者ID:naver,项目名称:hadoop,代码行数:18,代码来源:TestNMClientAsync.java

示例5: newAllocateResponse

import org.apache.hadoop.yarn.api.records.ContainerStatus; //导入依赖的package包/类
public static AllocateResponse newAllocateResponse(int responseId,
    List<ContainerStatus> completedContainers,
    List<Container> allocatedContainers, List<NodeReport> updatedNodes,
    Resource availResources, AMCommand command, int numClusterNodes,
    PreemptionMessage preempt) {
  AllocateResponse response = recordFactory
      .newRecordInstance(AllocateResponse.class);
  response.setNumClusterNodes(numClusterNodes);
  response.setResponseId(responseId);
  response.setCompletedContainersStatuses(completedContainers);
  response.setAllocatedContainers(allocatedContainers);
  response.setUpdatedNodes(updatedNodes);
  response.setAvailableResources(availResources);
  response.setAMCommand(command);
  response.setPreemptionMessage(preempt);

  return response;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:19,代码来源:BuilderUtils.java

示例6: getNodeStatus

import org.apache.hadoop.yarn.api.records.ContainerStatus; //导入依赖的package包/类
private NodeStatus getNodeStatus() {
  NodeStatus status = recordFactory.newRecordInstance(NodeStatus.class);
  status.setContainersStatuses(new ArrayList<ContainerStatus>());
  status.setKeepAliveApplications(new ArrayList<ApplicationId>());

  status.setNodeHealthStatus(getNodeHealthStatus());
  status.setNodeId(getNodeId());
  status.setResponseId(1);
  return status;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:11,代码来源:TestYarnServerApiClasses.java

示例7: getContainerStatuses

import org.apache.hadoop.yarn.api.records.ContainerStatus; //导入依赖的package包/类
/**
 * Get a list of container statuses running on this NodeManager
 */
@Override
public GetContainerStatusesResponse getContainerStatuses(
    GetContainerStatusesRequest request) throws YarnException, IOException {

  List<ContainerStatus> succeededRequests = new ArrayList<ContainerStatus>();
  Map<ContainerId, SerializedException> failedRequests =
      new HashMap<ContainerId, SerializedException>();
  UserGroupInformation remoteUgi = getRemoteUgi();
  NMTokenIdentifier identifier = selectNMTokenIdentifier(remoteUgi);
  for (ContainerId id : request.getContainerIds()) {
    try {
      ContainerStatus status = getContainerStatusInternal(id, identifier);
      succeededRequests.add(status);
    } catch (YarnException e) {
      failedRequests.put(id, SerializedException.newInstance(e));
    }
  }
  return GetContainerStatusesResponse.newInstance(succeededRequests,
    failedRequests);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:24,代码来源:ContainerManagerImpl.java

示例8: testGetContainerStatus

import org.apache.hadoop.yarn.api.records.ContainerStatus; //导入依赖的package包/类
private void testGetContainerStatus(Container container, int index,
    ContainerState state, String diagnostics, List<Integer> exitStatuses)
        throws YarnException, IOException {
  while (true) {
    try {
      ContainerStatus status = nmClient.getContainerStatus(
          container.getId(), container.getNodeId());
      // NodeManager may still need some time to get the stable
      // container status
      if (status.getState() == state) {
        assertEquals(container.getId(), status.getContainerId());
        assertTrue("" + index + ": " + status.getDiagnostics(),
            status.getDiagnostics().contains(diagnostics));
        
        assertTrue("Exit Statuses are supposed to be in: " + exitStatuses +
            ", but the actual exit status code is: " + status.getExitStatus(),
            exitStatuses.contains(status.getExitStatus()));
        break;
      }
      Thread.sleep(100);
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:26,代码来源:TestNMClient.java

示例9: getContainerStatuses

import org.apache.hadoop.yarn.api.records.ContainerStatus; //导入依赖的package包/类
@Override
synchronized public GetContainerStatusesResponse getContainerStatuses(
    GetContainerStatusesRequest request) throws YarnException {
  List<ContainerStatus> statuses = new ArrayList<ContainerStatus>();
  for (ContainerId containerId : request.getContainerIds()) {
    List<Container> appContainers =
        containers.get(containerId.getApplicationAttemptId()
          .getApplicationId());
    Container container = null;
    for (Container c : appContainers) {
      if (c.getId().equals(containerId)) {
        container = c;
      }
    }
    if (container != null
        && containerStatusMap.get(container).getState() != null) {
      statuses.add(containerStatusMap.get(container));
    }
  }
  return GetContainerStatusesResponse.newInstance(statuses, null);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:22,代码来源:NodeManager.java

示例10: waitForContainerState

import org.apache.hadoop.yarn.api.records.ContainerStatus; //导入依赖的package包/类
public static void waitForContainerState(ContainerManagementProtocol containerManager,
      ContainerId containerID, ContainerState finalState, int timeOutMax)
      throws InterruptedException, YarnException, IOException {
List<ContainerId> list = new ArrayList<ContainerId>();
list.add(containerID);
GetContainerStatusesRequest request =
    GetContainerStatusesRequest.newInstance(list);
ContainerStatus containerStatus =
    containerManager.getContainerStatuses(request).getContainerStatuses()
      .get(0);
int timeoutSecs = 0;
  while (!containerStatus.getState().equals(finalState)
      && timeoutSecs++ < timeOutMax) {
      Thread.sleep(1000);
      LOG.info("Waiting for container to get into state " + finalState
          + ". Current state is " + containerStatus.getState());
      containerStatus = containerManager.getContainerStatuses(request).getContainerStatuses().get(0);
    }
    LOG.info("Container state is " + containerStatus.getState());
    Assert.assertEquals("ContainerState is not correct (timedout)",
        finalState, containerStatus.getState());
  }
 
开发者ID:naver,项目名称:hadoop,代码行数:23,代码来源:BaseContainerManagerTest.java

示例11: getAppToContainerStatusMap

import org.apache.hadoop.yarn.api.records.ContainerStatus; //导入依赖的package包/类
private Map<ApplicationId, List<ContainerStatus>> getAppToContainerStatusMap(
    List<ContainerStatus> containers) {
  Map<ApplicationId, List<ContainerStatus>> map =
      new HashMap<ApplicationId, List<ContainerStatus>>();
  for (ContainerStatus cs : containers) {
    ApplicationId applicationId =
        cs.getContainerId().getApplicationAttemptId().getApplicationId();
    List<ContainerStatus> appContainers = map.get(applicationId);
    if (appContainers == null) {
      appContainers = new ArrayList<ContainerStatus>();
      map.put(applicationId, appContainers);
    }
    appContainers.add(cs);
  }
  return map;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:17,代码来源:TestNodeStatusUpdater.java

示例12: getContainers

import org.apache.hadoop.yarn.api.records.ContainerStatus; //导入依赖的package包/类
@Override
public ConcurrentMap<ContainerId, Container> getContainers() {
  if (heartBeatID == 0) {
    return containers;
  } else if (heartBeatID == 1) {
    ContainerStatus containerStatus2 =
        createContainerStatus(2, ContainerState.RUNNING);
    putMockContainer(containerStatus2);

    ContainerStatus containerStatus3 =
        createContainerStatus(3, ContainerState.COMPLETE);
    putMockContainer(containerStatus3);
    return containers;
  } else if (heartBeatID == 2) {
    ContainerStatus containerStatus4 =
        createContainerStatus(4, ContainerState.RUNNING);
    putMockContainer(containerStatus4);

    ContainerStatus containerStatus5 =
        createContainerStatus(5, ContainerState.COMPLETE);
    putMockContainer(containerStatus5);
    return containers;
  } else if (heartBeatID == 3 || heartBeatID == 4) {
    return containers;
  } else {
    containers.clear();
    return containers;
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:30,代码来源:TestNodeStatusUpdater.java

示例13: newInstance

import org.apache.hadoop.yarn.api.records.ContainerStatus; //导入依赖的package包/类
@Private
@Unstable
public static AllocateResponse newInstance(int responseId,
    List<ContainerStatus> completedContainers,
    List<Container> allocatedContainers, List<NodeReport> updatedNodes,
    Resource availResources, AMCommand command, int numClusterNodes,
    PreemptionMessage preempt, List<NMToken> nmTokens, Token amRMToken,
    List<ContainerResourceIncrease> increasedContainers,
    List<ContainerResourceDecrease> decreasedContainers) {
  AllocateResponse response =
      newInstance(responseId, completedContainers, allocatedContainers,
        updatedNodes, availResources, command, numClusterNodes, preempt,
        nmTokens, increasedContainers, decreasedContainers);
  response.setAMRMToken(amRMToken);
  return response;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:17,代码来源:AllocateResponse.java

示例14: getAMContainerCrashedDiagnostics

import org.apache.hadoop.yarn.api.records.ContainerStatus; //导入依赖的package包/类
private String getAMContainerCrashedDiagnostics(
    RMAppAttemptContainerFinishedEvent finishEvent) {
  ContainerStatus status = finishEvent.getContainerStatus();
  StringBuilder diagnosticsBuilder = new StringBuilder();
  diagnosticsBuilder.append("AM Container for ").append(
    finishEvent.getApplicationAttemptId()).append(
    " exited with ").append(" exitCode: ").append(status.getExitStatus()).
    append("\n");
  if (this.getTrackingUrl() != null) {
    diagnosticsBuilder.append("For more detailed output,").append(
      " check application tracking page:").append(
      this.getTrackingUrl()).append(
      "Then, click on links to logs of each attempt.\n");
  }
  diagnosticsBuilder.append("Diagnostics: ").append(status.getDiagnostics())
      .append("Failing this attempt");
  return diagnosticsBuilder.toString();
}
 
开发者ID:naver,项目名称:hadoop,代码行数:19,代码来源:RMAppAttemptImpl.java

示例15: transition

import org.apache.hadoop.yarn.api.records.ContainerStatus; //导入依赖的package包/类
@Override
public RMAppAttemptState transition(RMAppAttemptImpl appAttempt,
    RMAppAttemptEvent event) {

  RMAppAttemptContainerFinishedEvent containerFinishedEvent =
      (RMAppAttemptContainerFinishedEvent) event;
  ContainerStatus containerStatus =
      containerFinishedEvent.getContainerStatus();

  // Is this container the AmContainer? If the finished container is same as
  // the AMContainer, AppAttempt fails
  if (appAttempt.masterContainer != null
      && appAttempt.masterContainer.getId().equals(
          containerStatus.getContainerId())) {
    appAttempt.sendAMContainerToNM(appAttempt, containerFinishedEvent);

    // Remember the follow up transition and save the final attempt state.
    appAttempt.rememberTargetTransitionsAndStoreState(event,
        transitionToDo, RMAppAttemptState.FAILED, RMAppAttemptState.FAILED);
    return RMAppAttemptState.FINAL_SAVING;
  }

  // Add all finished containers so that they can be acked to NM
  addJustFinishedContainer(appAttempt, containerFinishedEvent);
  return this.currentState;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:27,代码来源:RMAppAttemptImpl.java


注:本文中的org.apache.hadoop.yarn.api.records.ContainerStatus类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。