• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java AppAttemptRemovedSchedulerEvent类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: testAppAdditionAndRemoval

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.AppAttemptRemovedSchedulerEvent; //导入依赖的package包/类
@Test
public void testAppAdditionAndRemoval() throws Exception {
  scheduler.init(conf);
  scheduler.start();
  scheduler.reinitialize(conf, resourceManager.getRMContext());
  ApplicationAttemptId attemptId =createAppAttemptId(1, 1);
  AppAddedSchedulerEvent appAddedEvent = new AppAddedSchedulerEvent(attemptId.getApplicationId(), "default",
    "user1");
  scheduler.handle(appAddedEvent);
  AppAttemptAddedSchedulerEvent attemptAddedEvent =
      new AppAttemptAddedSchedulerEvent(createAppAttemptId(1, 1), false);
  scheduler.handle(attemptAddedEvent);

  // Scheduler should have two queues (the default and the one created for user1)
  assertEquals(2, scheduler.getQueueManager().getLeafQueues().size());

  // That queue should have one app
  assertEquals(1, scheduler.getQueueManager().getLeafQueue("user1", true)
      .getNumRunnableApps());

  AppAttemptRemovedSchedulerEvent appRemovedEvent1 = new AppAttemptRemovedSchedulerEvent(
      createAppAttemptId(1, 1), RMAppAttemptState.FINISHED, false);

  // Now remove app
  scheduler.handle(appRemovedEvent1);

  // Queue should have no apps
  assertEquals(0, scheduler.getQueueManager().getLeafQueue("user1", true)
      .getNumRunnableApps());
}
 
开发者ID:naver,项目名称:hadoop,代码行数:31,代码来源:TestFairScheduler.java


示例2: testMaxRunningAppsHierarchicalQueues

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.AppAttemptRemovedSchedulerEvent; //导入依赖的package包/类
@Test
public void testMaxRunningAppsHierarchicalQueues() throws Exception {
  conf.set(FairSchedulerConfiguration.ALLOCATION_FILE, ALLOC_FILE);
  MockClock clock = new MockClock();
  scheduler.setClock(clock);

  PrintWriter out = new PrintWriter(new FileWriter(ALLOC_FILE));
  out.println("<?xml version=\"1.0\"?>");
  out.println("<allocations>");
  out.println("<queue name=\"queue1\">");
  out.println("  <maxRunningApps>3</maxRunningApps>");
  out.println("  <queue name=\"sub1\"></queue>");
  out.println("  <queue name=\"sub2\"></queue>");
  out.println("  <queue name=\"sub3\">");
  out.println("    <maxRunningApps>1</maxRunningApps>");
  out.println("  </queue>");
  out.println("</queue>");
  out.println("</allocations>");
  out.close();

  scheduler.init(conf);
  scheduler.start();
  scheduler.reinitialize(conf, resourceManager.getRMContext());

  // exceeds no limits
  ApplicationAttemptId attId1 = createSchedulingRequest(1024, "queue1.sub1", "user1");
  verifyAppRunnable(attId1, true);
  verifyQueueNumRunnable("queue1.sub1", 1, 0);
  clock.tick(10);
  // exceeds no limits
  ApplicationAttemptId attId2 = createSchedulingRequest(1024, "queue1.sub3", "user1");
  verifyAppRunnable(attId2, true);
  verifyQueueNumRunnable("queue1.sub3", 1, 0);
  clock.tick(10);
  // exceeds no limits
  ApplicationAttemptId attId3 = createSchedulingRequest(1024, "queue1.sub2", "user1");
  verifyAppRunnable(attId3, true);
  verifyQueueNumRunnable("queue1.sub2", 1, 0);
  clock.tick(10);
  // exceeds queue1 limit
  ApplicationAttemptId attId4 = createSchedulingRequest(1024, "queue1.sub2", "user1");
  verifyAppRunnable(attId4, false);
  verifyQueueNumRunnable("queue1.sub2", 1, 1);
  clock.tick(10);
  // exceeds sub3 limit
  ApplicationAttemptId attId5 = createSchedulingRequest(1024, "queue1.sub3", "user1");
  verifyAppRunnable(attId5, false);
  verifyQueueNumRunnable("queue1.sub3", 1, 1);
  clock.tick(10);
  
  // Even though the app was removed from sub3, the app from sub2 gets to go
  // because it came in first
  AppAttemptRemovedSchedulerEvent appRemovedEvent1 =
      new AppAttemptRemovedSchedulerEvent(attId2, RMAppAttemptState.FINISHED, false);
  scheduler.handle(appRemovedEvent1);
  verifyAppRunnable(attId4, true);
  verifyQueueNumRunnable("queue1.sub2", 2, 0);
  verifyAppRunnable(attId5, false);
  verifyQueueNumRunnable("queue1.sub3", 0, 1);

  // Now test removal of a non-runnable app
  AppAttemptRemovedSchedulerEvent appRemovedEvent2 =
      new AppAttemptRemovedSchedulerEvent(attId5, RMAppAttemptState.KILLED, true);
  scheduler.handle(appRemovedEvent2);
  assertEquals(0, scheduler.maxRunningEnforcer.usersNonRunnableApps
      .get("user1").size());
  // verify app gone in queue accounting
  verifyQueueNumRunnable("queue1.sub3", 0, 0);
  // verify it doesn't become runnable when there would be space for it
  AppAttemptRemovedSchedulerEvent appRemovedEvent3 =
      new AppAttemptRemovedSchedulerEvent(attId4, RMAppAttemptState.FINISHED, true);
  scheduler.handle(appRemovedEvent3);
  verifyQueueNumRunnable("queue1.sub2", 1, 0);
  verifyQueueNumRunnable("queue1.sub3", 0, 0);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:76,代码来源:TestFairScheduler.java


示例3: testAppAdditionAndRemoval

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.AppAttemptRemovedSchedulerEvent; //导入依赖的package包/类
@Test
public void testAppAdditionAndRemoval() throws Exception {
  ApplicationAttemptId attemptId = createAppAttemptId(1, 1);
  AppAddedSchedulerEvent appAddedEvent =
      new AppAddedSchedulerEvent(attemptId.getApplicationId(), "default",
          "user1");
  scheduler.handle(appAddedEvent);
  AppAttemptAddedSchedulerEvent attemptAddedEvent =
      new AppAttemptAddedSchedulerEvent(createAppAttemptId(1, 1), false);
  scheduler.handle(attemptAddedEvent);

  // Scheduler should have two queues (the default and the one created for
  // user1)
  assertEquals(2, scheduler.getQueueManager().getLeafQueues().size());

  // That queue should have one app
  assertEquals(1, scheduler.getQueueManager().getLeafQueue("user1", true)
      .getNumRunnableApps());

  AppAttemptRemovedSchedulerEvent appRemovedEvent1 =
      new AppAttemptRemovedSchedulerEvent(createAppAttemptId(1, 1),
          RMAppAttemptState.FINISHED, false);

  // Now remove app
  scheduler.handle(appRemovedEvent1);

  // Queue should have no apps
  assertEquals(0, scheduler.getQueueManager().getLeafQueue("user1", true)
      .getNumRunnableApps());
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:31,代码来源:TestAppRunnability.java


示例4: testAppAdditionAndRemoval

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.AppAttemptRemovedSchedulerEvent; //导入依赖的package包/类
@Test
public void testAppAdditionAndRemoval() throws Exception {
  scheduler.reinitialize(conf, resourceManager.getRMContext());
  ApplicationAttemptId attemptId =createAppAttemptId(1, 1);
  AppAddedSchedulerEvent appAddedEvent = new AppAddedSchedulerEvent(attemptId.getApplicationId(), "default",
    "user1");
  scheduler.handle(appAddedEvent);
  AppAttemptAddedSchedulerEvent attemptAddedEvent =
      new AppAttemptAddedSchedulerEvent(createAppAttemptId(1, 1), false);
  scheduler.handle(attemptAddedEvent);

  // Scheduler should have two queues (the default and the one created for user1)
  assertEquals(2, scheduler.getQueueManager().getLeafQueues().size());

  // That queue should have one app
  assertEquals(1, scheduler.getQueueManager().getLeafQueue("user1", true)
      .getRunnableAppSchedulables().size());

  AppAttemptRemovedSchedulerEvent appRemovedEvent1 = new AppAttemptRemovedSchedulerEvent(
      createAppAttemptId(1, 1), RMAppAttemptState.FINISHED, false);

  // Now remove app
  scheduler.handle(appRemovedEvent1);

  // Queue should have no apps
  assertEquals(0, scheduler.getQueueManager().getLeafQueue("user1", true)
      .getRunnableAppSchedulables().size());
}
 
开发者ID:Seagate,项目名称:hadoop-on-lustre2,代码行数:29,代码来源:TestFairScheduler.java


示例5: testUserAndQueueMaxRunningApps

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.AppAttemptRemovedSchedulerEvent; //导入依赖的package包/类
@Test
public void testUserAndQueueMaxRunningApps() throws Exception {
  conf.set(FairSchedulerConfiguration.ALLOCATION_FILE, ALLOC_FILE);

  PrintWriter out = new PrintWriter(new FileWriter(ALLOC_FILE));
  out.println("<?xml version=\"1.0\"?>");
  out.println("<allocations>");
  out.println("<queue name=\"queue1\">");
  out.println("<maxRunningApps>2</maxRunningApps>");
  out.println("</queue>");
  out.println("<user name=\"user1\">");
  out.println("<maxRunningApps>1</maxRunningApps>");
  out.println("</user>");
  out.println("</allocations>");
  out.close();

  scheduler.init(conf);
  scheduler.start();
  scheduler.reinitialize(conf, resourceManager.getRMContext());

  // exceeds no limits
  ApplicationAttemptId attId1 = createSchedulingRequest(1024, "queue1", "user1");
  verifyAppRunnable(attId1, true);
  verifyQueueNumRunnable("queue1", 1, 0);
  // exceeds user limit
  ApplicationAttemptId attId2 = createSchedulingRequest(1024, "queue2", "user1");
  verifyAppRunnable(attId2, false);
  verifyQueueNumRunnable("queue2", 0, 1);
  // exceeds no limits
  ApplicationAttemptId attId3 = createSchedulingRequest(1024, "queue1", "user2");
  verifyAppRunnable(attId3, true);
  verifyQueueNumRunnable("queue1", 2, 0);
  // exceeds queue limit
  ApplicationAttemptId attId4 = createSchedulingRequest(1024, "queue1", "user2");
  verifyAppRunnable(attId4, false);
  verifyQueueNumRunnable("queue1", 2, 1);
  
  // Remove app 1 and both app 2 and app 4 should becomes runnable in its place
  AppAttemptRemovedSchedulerEvent appRemovedEvent1 =
      new AppAttemptRemovedSchedulerEvent(attId1, RMAppAttemptState.FINISHED, false);
  scheduler.handle(appRemovedEvent1);
  verifyAppRunnable(attId2, true);
  verifyQueueNumRunnable("queue2", 1, 0);
  verifyAppRunnable(attId4, true);
  verifyQueueNumRunnable("queue1", 2, 0);
  
  // A new app to queue1 should not be runnable
  ApplicationAttemptId attId5 = createSchedulingRequest(1024, "queue1", "user2");
  verifyAppRunnable(attId5, false);
  verifyQueueNumRunnable("queue1", 2, 1);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:52,代码来源:TestFairScheduler.java


示例6: testSchedulingOnRemovedNode

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.AppAttemptRemovedSchedulerEvent; //导入依赖的package包/类
@Test
public void testSchedulingOnRemovedNode() throws Exception {
  // Disable continuous scheduling, will invoke continuous scheduling manually
  scheduler.init(conf);
  scheduler.start();
  Assert.assertTrue("Continuous scheduling should be disabled.",
      !scheduler.isContinuousSchedulingEnabled());

  ApplicationAttemptId id11 = createAppAttemptId(1, 1);
  createMockRMApp(id11);

  scheduler.addApplication(id11.getApplicationId(), "root.queue1", "user1",
      false);
  scheduler.addApplicationAttempt(id11, false, false);

  List<ResourceRequest> ask1 = new ArrayList<>();
  ResourceRequest request1 =
      createResourceRequest(1024, 8, 8, ResourceRequest.ANY, 1, 1, true);

  ask1.add(request1);
  scheduler.allocate(id11, ask1, new ArrayList<ContainerId>(), null,
      null);

  String hostName = "127.0.0.1";
  RMNode node1 = MockNodes.newNodeInfo(1,
    Resources.createResource(8 * 1024, 8, 8), 1, hostName);
  NodeAddedSchedulerEvent nodeEvent1 = new NodeAddedSchedulerEvent(node1);
  scheduler.handle(nodeEvent1);

  FSSchedulerNode node = (FSSchedulerNode)scheduler.getSchedulerNode(
    node1.getNodeID());

  NodeRemovedSchedulerEvent removeNode1 =
      new NodeRemovedSchedulerEvent(node1);
  scheduler.handle(removeNode1);

  scheduler.attemptScheduling(node);

  AppAttemptRemovedSchedulerEvent appRemovedEvent1 =
      new AppAttemptRemovedSchedulerEvent(id11,
          RMAppAttemptState.FINISHED, false);
  scheduler.handle(appRemovedEvent1);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:44,代码来源:TestFairScheduler.java


示例7: testFairShareResetsToZeroWhenAppsComplete

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.AppAttemptRemovedSchedulerEvent; //导入依赖的package包/类
@Test
public void testFairShareResetsToZeroWhenAppsComplete() throws IOException {
  int nodeCapacity = 16 * 1024;
  createClusterWithQueuesAndOneNode(nodeCapacity, "fair");

  // Run apps in childA1,childA2 which are under parentA
  ApplicationAttemptId app1 = createSchedulingRequest(2 * 1024,
      "root.parentA.childA1", "user1");
  ApplicationAttemptId app2 = createSchedulingRequest(3 * 1024,
      "root.parentA.childA2", "user2");

  scheduler.update();

  // Verify if both the active queues under parentA get 50% fair
  // share
  for (int i = 1; i <= 2; i++) {
    assertEquals(
        50,
        (double) scheduler.getQueueManager()
            .getLeafQueue("root.parentA.childA" + i, false).getFairShare()
            .getMemory()
            / nodeCapacity * 100, .9);
  }
  // Let app under childA1 complete. This should cause the fair share
  // of queue childA1 to be reset to zero,since the queue has no apps running.
  // Queue childA2's fair share would increase to 100% since its the only
  // active queue.
  AppAttemptRemovedSchedulerEvent appRemovedEvent1 = new AppAttemptRemovedSchedulerEvent(
      app1, RMAppAttemptState.FINISHED, false);

  scheduler.handle(appRemovedEvent1);
  scheduler.update();

  assertEquals(
      0,
      (double) scheduler.getQueueManager()
          .getLeafQueue("root.parentA.childA1", false).getFairShare()
          .getMemory()
          / nodeCapacity * 100, 0);
  assertEquals(
      100,
      (double) scheduler.getQueueManager()
          .getLeafQueue("root.parentA.childA2", false).getFairShare()
          .getMemory()
          / nodeCapacity * 100, 0.1);

  verifySteadyFairShareMemory(scheduler.getQueueManager().getLeafQueues(),
      nodeCapacity);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:50,代码来源:TestFairSchedulerFairShare.java


示例8: testMaxRunningAppsHierarchicalQueues

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.AppAttemptRemovedSchedulerEvent; //导入依赖的package包/类
@Test
public void testMaxRunningAppsHierarchicalQueues() throws Exception {
  conf.set(FairSchedulerConfiguration.ALLOCATION_FILE, ALLOC_FILE);
  ControlledClock clock = new ControlledClock();
  scheduler.setClock(clock);

  PrintWriter out = new PrintWriter(new FileWriter(ALLOC_FILE));
  out.println("<?xml version=\"1.0\"?>");
  out.println("<allocations>");
  out.println("<queue name=\"queue1\">");
  out.println("  <maxRunningApps>3</maxRunningApps>");
  out.println("  <queue name=\"sub1\"></queue>");
  out.println("  <queue name=\"sub2\"></queue>");
  out.println("  <queue name=\"sub3\">");
  out.println("    <maxRunningApps>1</maxRunningApps>");
  out.println("  </queue>");
  out.println("</queue>");
  out.println("</allocations>");
  out.close();

  scheduler.init(conf);
  scheduler.start();
  scheduler.reinitialize(conf, resourceManager.getRMContext());

  // exceeds no limits
  ApplicationAttemptId attId1 = createSchedulingRequest(1024, "queue1.sub1", "user1");
  verifyAppRunnable(attId1, true);
  verifyQueueNumRunnable("queue1.sub1", 1, 0);
  clock.tickSec(10);
  // exceeds no limits
  ApplicationAttemptId attId2 = createSchedulingRequest(1024, "queue1.sub3", "user1");
  verifyAppRunnable(attId2, true);
  verifyQueueNumRunnable("queue1.sub3", 1, 0);
  clock.tickSec(10);
  // exceeds no limits
  ApplicationAttemptId attId3 = createSchedulingRequest(1024, "queue1.sub2", "user1");
  verifyAppRunnable(attId3, true);
  verifyQueueNumRunnable("queue1.sub2", 1, 0);
  clock.tickSec(10);
  // exceeds queue1 limit
  ApplicationAttemptId attId4 = createSchedulingRequest(1024, "queue1.sub2", "user1");
  verifyAppRunnable(attId4, false);
  verifyQueueNumRunnable("queue1.sub2", 1, 1);
  clock.tickSec(10);
  // exceeds sub3 limit
  ApplicationAttemptId attId5 = createSchedulingRequest(1024, "queue1.sub3", "user1");
  verifyAppRunnable(attId5, false);
  verifyQueueNumRunnable("queue1.sub3", 1, 1);
  clock.tickSec(10);

  // Even though the app was removed from sub3, the app from sub2 gets to go
  // because it came in first
  AppAttemptRemovedSchedulerEvent appRemovedEvent1 =
      new AppAttemptRemovedSchedulerEvent(attId2, RMAppAttemptState.FINISHED, false);
  scheduler.handle(appRemovedEvent1);
  verifyAppRunnable(attId4, true);
  verifyQueueNumRunnable("queue1.sub2", 2, 0);
  verifyAppRunnable(attId5, false);
  verifyQueueNumRunnable("queue1.sub3", 0, 1);

  // Now test removal of a non-runnable app
  AppAttemptRemovedSchedulerEvent appRemovedEvent2 =
      new AppAttemptRemovedSchedulerEvent(attId5, RMAppAttemptState.KILLED, true);
  scheduler.handle(appRemovedEvent2);
  assertEquals(0, scheduler.maxRunningEnforcer.usersNonRunnableApps
      .get("user1").size());
  // verify app gone in queue accounting
  verifyQueueNumRunnable("queue1.sub3", 0, 0);
  // verify it doesn't become runnable when there would be space for it
  AppAttemptRemovedSchedulerEvent appRemovedEvent3 =
      new AppAttemptRemovedSchedulerEvent(attId4, RMAppAttemptState.FINISHED, true);
  scheduler.handle(appRemovedEvent3);
  verifyQueueNumRunnable("queue1.sub2", 1, 0);
  verifyQueueNumRunnable("queue1.sub3", 0, 0);
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:76,代码来源:TestFairScheduler.java


示例9: testSchedulingOnRemovedNode

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.AppAttemptRemovedSchedulerEvent; //导入依赖的package包/类
@Test
public void testSchedulingOnRemovedNode() throws Exception {
  // Disable continuous scheduling, will invoke continuous scheduling manually
  scheduler.init(conf);
  scheduler.start();
  Assert.assertTrue("Continuous scheduling should be disabled.",
      !scheduler.isContinuousSchedulingEnabled());

  ApplicationAttemptId id11 = createAppAttemptId(1, 1);
  createMockRMApp(id11);

  scheduler.addApplication(id11.getApplicationId(), "root.queue1", "user1",
      false);
  scheduler.addApplicationAttempt(id11, false, false);

  List<ResourceRequest> ask1 = new ArrayList<>();
  ResourceRequest request1 =
      createResourceRequest(1024, 8, ResourceRequest.ANY, 1, 1, true);

  ask1.add(request1);
  scheduler.allocate(id11, ask1, new ArrayList<ContainerId>(), null,
      null, null, null);

  String hostName = "127.0.0.1";
  RMNode node1 = MockNodes.newNodeInfo(1,
    Resources.createResource(8 * 1024, 8), 1, hostName);
  NodeAddedSchedulerEvent nodeEvent1 = new NodeAddedSchedulerEvent(node1);
  scheduler.handle(nodeEvent1);

  FSSchedulerNode node = (FSSchedulerNode)scheduler.getSchedulerNode(
    node1.getNodeID());

  NodeRemovedSchedulerEvent removeNode1 =
      new NodeRemovedSchedulerEvent(node1);
  scheduler.handle(removeNode1);

  scheduler.attemptScheduling(node);

  AppAttemptRemovedSchedulerEvent appRemovedEvent1 =
      new AppAttemptRemovedSchedulerEvent(id11,
          RMAppAttemptState.FINISHED, false);
  scheduler.handle(appRemovedEvent1);
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:44,代码来源:TestFairScheduler.java


示例10: testSchedulingOnRemovedNode

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.AppAttemptRemovedSchedulerEvent; //导入依赖的package包/类
@Test
public void testSchedulingOnRemovedNode() throws Exception {
  // Disable continuous scheduling, will invoke continuous scheduling manually
  scheduler.init(conf);
  scheduler.start();
  Assert.assertTrue("Continuous scheduling should be disabled.",
      !scheduler.isContinuousSchedulingEnabled());

  ApplicationAttemptId id11 = createAppAttemptId(1, 1);
  createMockRMApp(id11);

  scheduler.addApplication(id11.getApplicationId(), "root.queue1", "user1",
      false);
  scheduler.addApplicationAttempt(id11, false, false);

  List<ResourceRequest> ask1 = new ArrayList<>();
  ResourceRequest request1 =
      createResourceRequest(1024, 8, ResourceRequest.ANY, 1, 1, true);

  ask1.add(request1);
  scheduler.allocate(id11, ask1, new ArrayList<ContainerId>(), null,
      null);

  String hostName = "127.0.0.1";
  RMNode node1 = MockNodes.newNodeInfo(1,
    Resources.createResource(8 * 1024, 8), 1, hostName);
  NodeAddedSchedulerEvent nodeEvent1 = new NodeAddedSchedulerEvent(node1);
  scheduler.handle(nodeEvent1);

  FSSchedulerNode node = (FSSchedulerNode)scheduler.getSchedulerNode(
    node1.getNodeID());

  NodeRemovedSchedulerEvent removeNode1 =
      new NodeRemovedSchedulerEvent(node1);
  scheduler.handle(removeNode1);

  scheduler.attemptScheduling(node);

  AppAttemptRemovedSchedulerEvent appRemovedEvent1 =
      new AppAttemptRemovedSchedulerEvent(id11,
          RMAppAttemptState.FINISHED, false);
  scheduler.handle(appRemovedEvent1);
}
 
开发者ID:yncxcw,项目名称:big-c,代码行数:44,代码来源:TestFairScheduler.java


示例11: testFairShareResetsToZeroWhenAppsComplete

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.AppAttemptRemovedSchedulerEvent; //导入依赖的package包/类
@Test
public void testFairShareResetsToZeroWhenAppsComplete() throws IOException {
  int nodeCapacity = 16 * 1024;
  createClusterWithQueuesAndOneNode(nodeCapacity, "fair");

  // Run apps in childA1,childA2 which are under parentA
  ApplicationAttemptId app1 = createSchedulingRequest(2 * 1024,
      "root.parentA.childA1", "user1");
  ApplicationAttemptId app2 = createSchedulingRequest(3 * 1024,
      "root.parentA.childA2", "user2");

  scheduler.update();

  // Verify if both the active queues under parentA get 50% fair
  // share
  for (int i = 1; i <= 2; i++) {
    assertEquals(
        50,
        (double) scheduler.getQueueManager()
            .getLeafQueue("root.parentA.childA" + i, false).getFairShare()
            .getMemorySize()
            / nodeCapacity * 100, .9);
  }
  // Let app under childA1 complete. This should cause the fair share
  // of queue childA1 to be reset to zero,since the queue has no apps running.
  // Queue childA2's fair share would increase to 100% since its the only
  // active queue.
  AppAttemptRemovedSchedulerEvent appRemovedEvent1 = new AppAttemptRemovedSchedulerEvent(
      app1, RMAppAttemptState.FINISHED, false);

  scheduler.handle(appRemovedEvent1);
  scheduler.update();

  assertEquals(
      0,
      (double) scheduler.getQueueManager()
          .getLeafQueue("root.parentA.childA1", false).getFairShare()
          .getMemorySize()
          / nodeCapacity * 100, 0);
  assertEquals(
      100,
      (double) scheduler.getQueueManager()
          .getLeafQueue("root.parentA.childA2", false).getFairShare()
          .getMemorySize()
          / nodeCapacity * 100, 0.1);

  verifySteadyFairShareMemory(scheduler.getQueueManager().getLeafQueues(),
      nodeCapacity);
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:50,代码来源:TestFairSchedulerFairShare.java


示例12: handle

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.AppAttemptRemovedSchedulerEvent; //导入依赖的package包/类
@Override
public void handle(SchedulerEvent event) {
  switch(event.getType()) {
  case NODE_ADDED:
  {
    NodeAddedSchedulerEvent nodeAddedEvent = (NodeAddedSchedulerEvent)event;
    addNode(nodeAddedEvent.getAddedRMNode());
  }
  break;
  case NODE_REMOVED:
  {
    NodeRemovedSchedulerEvent nodeRemovedEvent = (NodeRemovedSchedulerEvent)event;
    removeNode(nodeRemovedEvent.getRemovedRMNode());
  }
  break;
  case NODE_UPDATE:
  {
    NodeUpdateSchedulerEvent nodeUpdatedEvent = 
    (NodeUpdateSchedulerEvent)event;
    nodeUpdate(nodeUpdatedEvent.getRMNode());
  }
  break;
  case APP_ADDED:
  {
    AppAddedSchedulerEvent appAddedEvent = (AppAddedSchedulerEvent) event;
    addApplication(appAddedEvent.getApplicationId(),
      appAddedEvent.getQueue(), appAddedEvent.getUser());
  }
  break;
  case APP_REMOVED:
  {
    AppRemovedSchedulerEvent appRemovedEvent = (AppRemovedSchedulerEvent)event;
    doneApplication(appRemovedEvent.getApplicationID(),
      appRemovedEvent.getFinalState());
  }
  break;
  case APP_ATTEMPT_ADDED:
  {
    AppAttemptAddedSchedulerEvent appAttemptAddedEvent =
        (AppAttemptAddedSchedulerEvent) event;
    addApplicationAttempt(appAttemptAddedEvent.getApplicationAttemptId(),
      appAttemptAddedEvent.getTransferStateFromPreviousAttempt());
  }
  break;
  case APP_ATTEMPT_REMOVED:
  {
    AppAttemptRemovedSchedulerEvent appAttemptRemovedEvent =
        (AppAttemptRemovedSchedulerEvent) event;
    try {
      doneApplicationAttempt(
        appAttemptRemovedEvent.getApplicationAttemptID(),
        appAttemptRemovedEvent.getFinalAttemptState(),
        appAttemptRemovedEvent.getKeepContainersAcrossAppAttempts());
    } catch(IOException ie) {
      LOG.error("Unable to remove application "
          + appAttemptRemovedEvent.getApplicationAttemptID(), ie);
    }
  }
  break;
  case CONTAINER_EXPIRED:
  {
    ContainerExpiredSchedulerEvent containerExpiredEvent = 
        (ContainerExpiredSchedulerEvent) event;
    ContainerId containerid = containerExpiredEvent.getContainerId();
    containerCompleted(getRMContainer(containerid), 
        SchedulerUtils.createAbnormalContainerStatus(
            containerid, 
            SchedulerUtils.EXPIRED_CONTAINER),
        RMContainerEventType.EXPIRE);
  }
  break;
  default:
    LOG.error("Invalid eventtype " + event.getType() + ". Ignoring!");
  }
}
 
开发者ID:Seagate,项目名称:hadoop-on-lustre2,代码行数:76,代码来源:FifoScheduler.java


示例13: handle

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.AppAttemptRemovedSchedulerEvent; //导入依赖的package包/类
@Override
public void handle(SchedulerEvent event) {
  switch (event.getType()) {
  case NODE_ADDED:
    if (!(event instanceof NodeAddedSchedulerEvent)) {
      throw new RuntimeException("Unexpected event type: " + event);
    }
    NodeAddedSchedulerEvent nodeAddedEvent = (NodeAddedSchedulerEvent)event;
    addNode(nodeAddedEvent.getAddedRMNode());
    break;
  case NODE_REMOVED:
    if (!(event instanceof NodeRemovedSchedulerEvent)) {
      throw new RuntimeException("Unexpected event type: " + event);
    }
    NodeRemovedSchedulerEvent nodeRemovedEvent = (NodeRemovedSchedulerEvent)event;
    removeNode(nodeRemovedEvent.getRemovedRMNode());
    break;
  case NODE_UPDATE:
    if (!(event instanceof NodeUpdateSchedulerEvent)) {
      throw new RuntimeException("Unexpected event type: " + event);
    }
    NodeUpdateSchedulerEvent nodeUpdatedEvent = (NodeUpdateSchedulerEvent)event;
    nodeUpdate(nodeUpdatedEvent.getRMNode());
    break;
  case APP_ADDED:
    if (!(event instanceof AppAddedSchedulerEvent)) {
      throw new RuntimeException("Unexpected event type: " + event);
    }
    AppAddedSchedulerEvent appAddedEvent = (AppAddedSchedulerEvent) event;
    addApplication(appAddedEvent.getApplicationId(),
      appAddedEvent.getQueue(), appAddedEvent.getUser());
    break;
  case APP_REMOVED:
    if (!(event instanceof AppRemovedSchedulerEvent)) {
      throw new RuntimeException("Unexpected event type: " + event);
    }
    AppRemovedSchedulerEvent appRemovedEvent = (AppRemovedSchedulerEvent)event;
    removeApplication(appRemovedEvent.getApplicationID(),
      appRemovedEvent.getFinalState());
    break;
  case APP_ATTEMPT_ADDED:
    if (!(event instanceof AppAttemptAddedSchedulerEvent)) {
      throw new RuntimeException("Unexpected event type: " + event);
    }
    AppAttemptAddedSchedulerEvent appAttemptAddedEvent =
        (AppAttemptAddedSchedulerEvent) event;
    addApplicationAttempt(appAttemptAddedEvent.getApplicationAttemptId(),
      appAttemptAddedEvent.getTransferStateFromPreviousAttempt());
    break;
  case APP_ATTEMPT_REMOVED:
    if (!(event instanceof AppAttemptRemovedSchedulerEvent)) {
      throw new RuntimeException("Unexpected event type: " + event);
    }
    AppAttemptRemovedSchedulerEvent appAttemptRemovedEvent =
        (AppAttemptRemovedSchedulerEvent) event;
    removeApplicationAttempt(
        appAttemptRemovedEvent.getApplicationAttemptID(),
        appAttemptRemovedEvent.getFinalAttemptState(),
        appAttemptRemovedEvent.getKeepContainersAcrossAppAttempts());
    break;
  case CONTAINER_EXPIRED:
    if (!(event instanceof ContainerExpiredSchedulerEvent)) {
      throw new RuntimeException("Unexpected event type: " + event);
    }
    ContainerExpiredSchedulerEvent containerExpiredEvent =
        (ContainerExpiredSchedulerEvent)event;
    ContainerId containerId = containerExpiredEvent.getContainerId();
    completedContainer(getRMContainer(containerId),
        SchedulerUtils.createAbnormalContainerStatus(
            containerId,
            SchedulerUtils.EXPIRED_CONTAINER),
        RMContainerEventType.EXPIRE);
    break;
  default:
    LOG.error("Unknown event arrived at FairScheduler: " + event.toString());
  }
}
 
开发者ID:Seagate,项目名称:hadoop-on-lustre2,代码行数:78,代码来源:FairScheduler.java


示例14: handle

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.AppAttemptRemovedSchedulerEvent; //导入依赖的package包/类
@Override
public void handle(SchedulerEvent event) {
  switch(event.getType()) {
  case NODE_ADDED:
  {
    NodeAddedSchedulerEvent nodeAddedEvent = (NodeAddedSchedulerEvent)event;
    addNode(nodeAddedEvent.getAddedRMNode());
  }
  break;
  case NODE_REMOVED:
  {
    NodeRemovedSchedulerEvent nodeRemovedEvent = (NodeRemovedSchedulerEvent)event;
    removeNode(nodeRemovedEvent.getRemovedRMNode());
  }
  break;
  case NODE_UPDATE:
  {
    NodeUpdateSchedulerEvent nodeUpdatedEvent = (NodeUpdateSchedulerEvent)event;
    RMNode node = nodeUpdatedEvent.getRMNode();
    nodeUpdate(node);
    if (!scheduleAsynchronously) {
      allocateContainersToNode(getNode(node.getNodeID()));
    }
  }
  break;
  case APP_ADDED:
  {
    AppAddedSchedulerEvent appAddedEvent = (AppAddedSchedulerEvent) event;
    addApplication(appAddedEvent.getApplicationId(),
      appAddedEvent.getQueue(), appAddedEvent.getUser());
  }
  break;
  case APP_REMOVED:
  {
    AppRemovedSchedulerEvent appRemovedEvent = (AppRemovedSchedulerEvent)event;
    doneApplication(appRemovedEvent.getApplicationID(),
      appRemovedEvent.getFinalState());
  }
  break;
  case APP_ATTEMPT_ADDED:
  {
    AppAttemptAddedSchedulerEvent appAttemptAddedEvent =
        (AppAttemptAddedSchedulerEvent) event;
    addApplicationAttempt(appAttemptAddedEvent.getApplicationAttemptId(),
      appAttemptAddedEvent.getTransferStateFromPreviousAttempt());
  }
  break;
  case APP_ATTEMPT_REMOVED:
  {
    AppAttemptRemovedSchedulerEvent appAttemptRemovedEvent =
        (AppAttemptRemovedSchedulerEvent) event;
    doneApplicationAttempt(appAttemptRemovedEvent.getApplicationAttemptID(),
      appAttemptRemovedEvent.getFinalAttemptState(),
      appAttemptRemovedEvent.getKeepContainersAcrossAppAttempts());
  }
  break;
  case CONTAINER_EXPIRED:
  {
    ContainerExpiredSchedulerEvent containerExpiredEvent = 
        (ContainerExpiredSchedulerEvent) event;
    ContainerId containerId = containerExpiredEvent.getContainerId();
    completedContainer(getRMContainer(containerId), 
        SchedulerUtils.createAbnormalContainerStatus(
            containerId, 
            SchedulerUtils.EXPIRED_CONTAINER), 
        RMContainerEventType.EXPIRE);
  }
  break;
  default:
    LOG.error("Invalid eventtype " + event.getType() + ". Ignoring!");
  }
}
 
开发者ID:Seagate,项目名称:hadoop-on-lustre2,代码行数:73,代码来源:CapacityScheduler.java


示例15: testUserAndQueueMaxRunningApps

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.AppAttemptRemovedSchedulerEvent; //导入依赖的package包/类
@Test
public void testUserAndQueueMaxRunningApps() throws Exception {
  conf.set(FairSchedulerConfiguration.ALLOCATION_FILE, ALLOC_FILE);

  PrintWriter out = new PrintWriter(new FileWriter(ALLOC_FILE));
  out.println("<?xml version=\"1.0\"?>");
  out.println("<allocations>");
  out.println("<queue name=\"queue1\">");
  out.println("<maxRunningApps>2</maxRunningApps>");
  out.println("</queue>");
  out.println("<user name=\"user1\">");
  out.println("<maxRunningApps>1</maxRunningApps>");
  out.println("</user>");
  out.println("</allocations>");
  out.close();
  
  scheduler.reinitialize(conf, resourceManager.getRMContext());
  
  // exceeds no limits
  ApplicationAttemptId attId1 = createSchedulingRequest(1024, "queue1", "user1");
  verifyAppRunnable(attId1, true);
  verifyQueueNumRunnable("queue1", 1, 0);
  // exceeds user limit
  ApplicationAttemptId attId2 = createSchedulingRequest(1024, "queue2", "user1");
  verifyAppRunnable(attId2, false);
  verifyQueueNumRunnable("queue2", 0, 1);
  // exceeds no limits
  ApplicationAttemptId attId3 = createSchedulingRequest(1024, "queue1", "user2");
  verifyAppRunnable(attId3, true);
  verifyQueueNumRunnable("queue1", 2, 0);
  // exceeds queue limit
  ApplicationAttemptId attId4 = createSchedulingRequest(1024, "queue1", "user2");
  verifyAppRunnable(attId4, false);
  verifyQueueNumRunnable("queue1", 2, 1);
  
  // Remove app 1 and both app 2 and app 4 should becomes runnable in its place
  AppAttemptRemovedSchedulerEvent appRemovedEvent1 =
      new AppAttemptRemovedSchedulerEvent(attId1, RMAppAttemptState.FINISHED, false);
  scheduler.handle(appRemovedEvent1);
  verifyAppRunnable(attId2, true);
  verifyQueueNumRunnable("queue2", 1, 0);
  verifyAppRunnable(attId4, true);
  verifyQueueNumRunnable("queue1", 2, 0);
  
  // A new app to queue1 should not be runnable
  ApplicationAttemptId attId5 = createSchedulingRequest(1024, "queue1", "user2");
  verifyAppRunnable(attId5, false);
  verifyQueueNumRunnable("queue1", 2, 1);
}
 
开发者ID:Seagate,项目名称:hadoop-on-lustre2,代码行数:50,代码来源:TestFairScheduler.java


示例16: testMaxRunningAppsHierarchicalQueues

import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.AppAttemptRemovedSchedulerEvent; //导入依赖的package包/类
@Test
public void testMaxRunningAppsHierarchicalQueues() throws Exception {
  conf.set(FairSchedulerConfiguration.ALLOCATION_FILE, ALLOC_FILE);
  MockClock clock = new MockClock();
  scheduler.setClock(clock);

  PrintWriter out = new PrintWriter(new FileWriter(ALLOC_FILE));
  out.println("<?xml version=\"1.0\"?>");
  out.println("<allocations>");
  out.println("<queue name=\"queue1\">");
  out.println("  <maxRunningApps>3</maxRunningApps>");
  out.println("  <queue name=\"sub1\"></queue>");
  out.println("  <queue name=\"sub2\"></queue>");
  out.println("  <queue name=\"sub3\">");
  out.println("    <maxRunningApps>1</maxRunningApps>");
  out.println("  </queue>");
  out.println("</queue>");
  out.println("</allocations>");
  out.close();
  
  scheduler.reinitialize(conf, resourceManager.getRMContext());
  
  // exceeds no limits
  ApplicationAttemptId attId1 = createSchedulingRequest(1024, "queue1.sub1", "user1");
  verifyAppRunnable(attId1, true);
  verifyQueueNumRunnable("queue1.sub1", 1, 0);
  clock.tick(10);
  // exceeds no limits
  ApplicationAttemptId attId2 = createSchedulingRequest(1024, "queue1.sub3", "user1");
  verifyAppRunnable(attId2, true);
  verifyQueueNumRunnable("queue1.sub3", 1, 0);
  clock.tick(10);
  // exceeds no limits
  ApplicationAttemptId attId3 = createSchedulingRequest(1024, "queue1.sub2", "user1");
  verifyAppRunnable(attId3, true);
  verifyQueueNumRunnable("queue1.sub2", 1, 0);
  clock.tick(10);
  // exceeds queue1 limit
  ApplicationAttemptId attId4 = createSchedulingRequest(1024, "queue1.sub2", "user1");
  verifyAppRunnable(attId4, false);
  verifyQueueNumRunnable("queue1.sub2", 1, 1);
  clock.tick(10);
  // exceeds sub3 limit
  ApplicationAttemptId attId5 = createSchedulingRequest(1024, "queue1.sub3", "user1");
  verifyAppRunnable(attId5, false);
  verifyQueueNumRunnable("queue1.sub3", 1, 1);
  clock.tick(10);
  
  // Even though the app was removed from sub3, the app from sub2 gets to go
  // because it came in first
  AppAttemptRemovedSchedulerEvent appRemovedEvent1 =
      new AppAttemptRemovedSchedulerEvent(attId2, RMAppAttemptState.FINISHED, false);
  scheduler.handle(appRemovedEvent1);
  verifyAppRunnable(attId4, true);
  verifyQueueNumRunnable("queue1.sub2", 2, 0);
  verifyAppRunnable(attId5, false);
  verifyQueueNumRunnable("queue1.sub3", 0, 1);

  // Now test removal of a non-runnable app
  AppAttemptRemovedSchedulerEvent appRemovedEvent2 =
      new AppAttemptRemovedSchedulerEvent(attId5, RMAppAttemptState.KILLED, true);
  scheduler.handle(appRemovedEvent2);
  assertEquals(0, scheduler.maxRunningEnforcer.usersNonRunnableApps
      .get("user1").size());
  // verify app gone in queue accounting
  verifyQueueNumRunnable("queue1.sub3", 0, 0);
  // verify it doesn't become runnable when there would be space for it
  AppAttemptRemovedSchedulerEvent appRemovedEvent3 =
      new AppAttemptRemovedSchedulerEvent(attId4, RMAppAttemptState.FINISHED, true);
  scheduler.handle(appRemovedEvent3);
  verifyQueueNumRunnable("queue1.sub2", 1, 0);
  verifyQueueNumRunnable("queue1.sub3", 0, 0);
}
 
开发者ID:Seagate,项目名称:hadoop-on-lustre2,代码行数:74,代码来源:TestFairScheduler.java



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java NativeAudioSendFactory类代码示例发布时间:2022-05-22
下一篇:
Java QualifiedNameProvider类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap