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


Java MockRM.getRMContext方法代码示例

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


在下文中一共展示了MockRM.getRMContext方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testConcurrentAccess

import org.apache.hadoop.yarn.server.resourcemanager.MockRM; //导入方法依赖的package包/类
@Test
public void testConcurrentAccess() {
  conf.set(FairSchedulerConfiguration.ASSIGN_MULTIPLE, "false");
  resourceManager = new MockRM(conf);
  resourceManager.start();
  scheduler = (FairScheduler) resourceManager.getResourceScheduler();

  String queueName = "root.queue1";
  final FSLeafQueue schedulable = scheduler.getQueueManager().
    getLeafQueue(queueName, true);
  ApplicationAttemptId applicationAttemptId = createAppAttemptId(1, 1);
  RMContext rmContext = resourceManager.getRMContext();
  final FSAppAttempt app =
      new FSAppAttempt(scheduler, applicationAttemptId, "user1",
          schedulable, null, rmContext);

  // this needs to be in sync with the number of runnables declared below
  int testThreads = 2;
  List<Runnable> runnables = new ArrayList<Runnable>();

  // add applications to modify the list
  runnables.add(new Runnable() {
    @Override
    public void run() {
      for (int i=0; i < 500; i++) {
        schedulable.addAppSchedulable(app);
      }
    }
  });

  // iterate over the list a couple of times in a different thread
  runnables.add(new Runnable() {
    @Override
    public void run() {
      for (int i=0; i < 500; i++) {
        schedulable.getResourceUsage();
      }
    }
  });

  final List<Throwable> exceptions = Collections.synchronizedList(
      new ArrayList<Throwable>());
  final ExecutorService threadPool = Executors.newFixedThreadPool(
      testThreads);

  try {
    final CountDownLatch allExecutorThreadsReady =
        new CountDownLatch(testThreads);
    final CountDownLatch startBlocker = new CountDownLatch(1);
    final CountDownLatch allDone = new CountDownLatch(testThreads);
    for (final Runnable submittedTestRunnable : runnables) {
      threadPool.submit(new Runnable() {
        public void run() {
          allExecutorThreadsReady.countDown();
          try {
            startBlocker.await();
            submittedTestRunnable.run();
          } catch (final Throwable e) {
            exceptions.add(e);
          } finally {
            allDone.countDown();
          }
        }
      });
    }
    // wait until all threads are ready
    allExecutorThreadsReady.await();
    // start all test runners
    startBlocker.countDown();
    int testTimeout = 2;
    assertTrue("Timeout waiting for more than " + testTimeout + " seconds",
        allDone.await(testTimeout, TimeUnit.SECONDS));
  } catch (InterruptedException ie) {
    exceptions.add(ie);
  } finally {
    threadPool.shutdownNow();
  }
  assertTrue("Test failed with exception(s)" + exceptions,
      exceptions.isEmpty());
}
 
开发者ID:naver,项目名称:hadoop,代码行数:81,代码来源:TestFSLeafQueue.java

示例2: testBlackListNodes

import org.apache.hadoop.yarn.server.resourcemanager.MockRM; //导入方法依赖的package包/类
@Test
public void testBlackListNodes() throws Exception {
  Configuration conf = new Configuration();
  conf.setClass(YarnConfiguration.RM_SCHEDULER, CapacityScheduler.class,
      ResourceScheduler.class);
  MockRM rm = new MockRM(conf);
  rm.start();
  CapacityScheduler cs = (CapacityScheduler) rm.getResourceScheduler();

  String host = "127.0.0.1";
  RMNode node =
      MockNodes.newNodeInfo(0, MockNodes.newResource(4 * GB), 1, host);
  cs.handle(new NodeAddedSchedulerEvent(node));

  ApplicationId appId = BuilderUtils.newApplicationId(100, 1);
  ApplicationAttemptId appAttemptId = BuilderUtils.newApplicationAttemptId(
      appId, 1);

  RMAppAttemptMetrics attemptMetric =
      new RMAppAttemptMetrics(appAttemptId, rm.getRMContext());
  RMAppImpl app = mock(RMAppImpl.class);
  when(app.getApplicationId()).thenReturn(appId);
  RMAppAttemptImpl attempt = mock(RMAppAttemptImpl.class);
  when(attempt.getAppAttemptId()).thenReturn(appAttemptId);
  when(attempt.getRMAppAttemptMetrics()).thenReturn(attemptMetric);
  when(app.getCurrentAppAttempt()).thenReturn(attempt);

  rm.getRMContext().getRMApps().put(appId, app);

  SchedulerEvent addAppEvent =
      new AppAddedSchedulerEvent(appId, "default", "user");
  cs.handle(addAppEvent);
  SchedulerEvent addAttemptEvent =
      new AppAttemptAddedSchedulerEvent(appAttemptId, false);
  cs.handle(addAttemptEvent);

  // Verify the blacklist can be updated independent of requesting containers
  cs.allocate(appAttemptId, Collections.<ResourceRequest>emptyList(),
      Collections.<ContainerId>emptyList(),
      Collections.singletonList(host), null);
  Assert.assertTrue(cs.getApplicationAttempt(appAttemptId).isBlacklisted(host));
  cs.allocate(appAttemptId, Collections.<ResourceRequest>emptyList(),
      Collections.<ContainerId>emptyList(), null,
      Collections.singletonList(host));
  Assert.assertFalse(cs.getApplicationAttempt(appAttemptId).isBlacklisted(host));
  rm.stop();
}
 
开发者ID:naver,项目名称:hadoop,代码行数:48,代码来源:TestCapacityScheduler.java

示例3: testApplicationHeadRoom

import org.apache.hadoop.yarn.server.resourcemanager.MockRM; //导入方法依赖的package包/类
@Test
public void testApplicationHeadRoom() throws Exception {
  Configuration conf = new Configuration();
  conf.setClass(YarnConfiguration.RM_SCHEDULER, CapacityScheduler.class,
      ResourceScheduler.class);
  MockRM rm = new MockRM(conf);
  rm.start();
  CapacityScheduler cs = (CapacityScheduler) rm.getResourceScheduler();

  ApplicationId appId = BuilderUtils.newApplicationId(100, 1);
  ApplicationAttemptId appAttemptId =
      BuilderUtils.newApplicationAttemptId(appId, 1);

  RMAppAttemptMetrics attemptMetric =
      new RMAppAttemptMetrics(appAttemptId, rm.getRMContext());
  RMAppImpl app = mock(RMAppImpl.class);
  when(app.getApplicationId()).thenReturn(appId);
  RMAppAttemptImpl attempt = mock(RMAppAttemptImpl.class);
  when(attempt.getAppAttemptId()).thenReturn(appAttemptId);
  when(attempt.getRMAppAttemptMetrics()).thenReturn(attemptMetric);
  when(app.getCurrentAppAttempt()).thenReturn(attempt);

  rm.getRMContext().getRMApps().put(appId, app);

  SchedulerEvent addAppEvent =
      new AppAddedSchedulerEvent(appId, "default", "user");
  cs.handle(addAppEvent);
  SchedulerEvent addAttemptEvent =
      new AppAttemptAddedSchedulerEvent(appAttemptId, false);
  cs.handle(addAttemptEvent);

  Allocation allocate =
      cs.allocate(appAttemptId, Collections.<ResourceRequest> emptyList(),
          Collections.<ContainerId> emptyList(), null, null);

  Assert.assertNotNull(attempt);

  Assert
      .assertEquals(Resource.newInstance(0, 0), allocate.getResourceLimit());
  Assert.assertEquals(Resource.newInstance(0, 0),
      attemptMetric.getApplicationAttemptHeadroom());

  // Add a node to cluster
  Resource newResource = Resource.newInstance(4 * GB, 1);
  RMNode node = MockNodes.newNodeInfo(0, newResource, 1, "127.0.0.1");
  cs.handle(new NodeAddedSchedulerEvent(node));

  allocate =
      cs.allocate(appAttemptId, Collections.<ResourceRequest> emptyList(),
          Collections.<ContainerId> emptyList(), null, null);

  // All resources should be sent as headroom
  Assert.assertEquals(newResource, allocate.getResourceLimit());
  Assert.assertEquals(newResource,
      attemptMetric.getApplicationAttemptHeadroom());

  rm.stop();
}
 
开发者ID:naver,项目名称:hadoop,代码行数:59,代码来源:TestCapacityScheduler.java

示例4: testApplicationOrderingWithPriority

import org.apache.hadoop.yarn.server.resourcemanager.MockRM; //导入方法依赖的package包/类
@Test
public void testApplicationOrderingWithPriority() throws Exception {

  Configuration conf = new Configuration();
  conf.setClass(YarnConfiguration.RM_SCHEDULER, CapacityScheduler.class,
      ResourceScheduler.class);
  MockRM rm = new MockRM(conf);
  rm.start();
  CapacityScheduler cs = (CapacityScheduler) rm.getResourceScheduler();

  LeafQueue q = (LeafQueue) cs.getQueue("default");
  Assert.assertNotNull(q);

  String host = "127.0.0.1";
  RMNode node = MockNodes.newNodeInfo(0, MockNodes.newResource(16 * GB), 1,
      host);
  cs.handle(new NodeAddedSchedulerEvent(node));

  // add app 1 start
  ApplicationId appId1 = BuilderUtils.newApplicationId(100, 1);
  ApplicationAttemptId appAttemptId1 = BuilderUtils.newApplicationAttemptId(
      appId1, 1);

  RMAppAttemptMetrics attemptMetric1 = new RMAppAttemptMetrics(appAttemptId1,
      rm.getRMContext());
  RMAppImpl app1 = mock(RMAppImpl.class);
  when(app1.getApplicationId()).thenReturn(appId1);
  RMAppAttemptImpl attempt1 = mock(RMAppAttemptImpl.class);
  when(attempt1.getAppAttemptId()).thenReturn(appAttemptId1);
  when(attempt1.getRMAppAttemptMetrics()).thenReturn(attemptMetric1);
  when(app1.getCurrentAppAttempt()).thenReturn(attempt1);

  rm.getRMContext().getRMApps().put(appId1, app1);

  SchedulerEvent addAppEvent1 = new AppAddedSchedulerEvent(appId1, "default",
      "user", null, Priority.newInstance(5));
  cs.handle(addAppEvent1);
  SchedulerEvent addAttemptEvent1 = new AppAttemptAddedSchedulerEvent(
      appAttemptId1, false);
  cs.handle(addAttemptEvent1);
  // add app1 end

  // add app2 begin
  ApplicationId appId2 = BuilderUtils.newApplicationId(100, 2);
  ApplicationAttemptId appAttemptId2 = BuilderUtils.newApplicationAttemptId(
      appId2, 1);

  RMAppAttemptMetrics attemptMetric2 = new RMAppAttemptMetrics(appAttemptId2,
      rm.getRMContext());
  RMAppImpl app2 = mock(RMAppImpl.class);
  when(app2.getApplicationId()).thenReturn(appId2);
  RMAppAttemptImpl attempt2 = mock(RMAppAttemptImpl.class);
  when(attempt2.getAppAttemptId()).thenReturn(appAttemptId2);
  when(attempt2.getRMAppAttemptMetrics()).thenReturn(attemptMetric2);
  when(app2.getCurrentAppAttempt()).thenReturn(attempt2);

  rm.getRMContext().getRMApps().put(appId2, app2);

  SchedulerEvent addAppEvent2 = new AppAddedSchedulerEvent(appId2, "default",
      "user", null, Priority.newInstance(8));
  cs.handle(addAppEvent2);
  SchedulerEvent addAttemptEvent2 = new AppAttemptAddedSchedulerEvent(
      appAttemptId2, false);
  cs.handle(addAttemptEvent2);
  // add app end

  // Now, the first assignment will be for app2 since app2 is of highest
  // priority
  assertEquals(q.getApplications().size(), 2);
  assertEquals(q.getApplications().iterator().next()
      .getApplicationAttemptId(), appAttemptId2);

  rm.stop();
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:75,代码来源:TestApplicationPriority.java

示例5: testBlackListNodes

import org.apache.hadoop.yarn.server.resourcemanager.MockRM; //导入方法依赖的package包/类
@Test
public void testBlackListNodes() throws Exception {
  Configuration conf = new Configuration();
  conf.setClass(YarnConfiguration.RM_SCHEDULER, CapacityScheduler.class,
      ResourceScheduler.class);
  MockRM rm = new MockRM(conf);
  rm.start();
  CapacityScheduler cs = (CapacityScheduler) rm.getResourceScheduler();

  String host = "127.0.0.1";
  RMNode node =
      MockNodes.newNodeInfo(0, MockNodes.newResource(4 * GB), 1, host);
  cs.handle(new NodeAddedSchedulerEvent(node));

  ApplicationId appId = BuilderUtils.newApplicationId(100, 1);
  ApplicationAttemptId appAttemptId = BuilderUtils.newApplicationAttemptId(
      appId, 1);

  RMAppAttemptMetrics attemptMetric =
      new RMAppAttemptMetrics(appAttemptId, rm.getRMContext());
  RMAppImpl app = mock(RMAppImpl.class);
  when(app.getApplicationId()).thenReturn(appId);
  RMAppAttemptImpl attempt = mock(RMAppAttemptImpl.class);
  Container container = mock(Container.class);
  when(attempt.getMasterContainer()).thenReturn(container);
  ApplicationSubmissionContext submissionContext = mock(
      ApplicationSubmissionContext.class);
  when(attempt.getSubmissionContext()).thenReturn(submissionContext);
  when(attempt.getAppAttemptId()).thenReturn(appAttemptId);
  when(attempt.getRMAppAttemptMetrics()).thenReturn(attemptMetric);
  when(app.getCurrentAppAttempt()).thenReturn(attempt);

  rm.getRMContext().getRMApps().put(appId, app);

  SchedulerEvent addAppEvent =
      new AppAddedSchedulerEvent(appId, "default", "user");
  cs.handle(addAppEvent);
  SchedulerEvent addAttemptEvent =
      new AppAttemptAddedSchedulerEvent(appAttemptId, false);
  cs.handle(addAttemptEvent);

  // Verify the blacklist can be updated independent of requesting containers
  cs.allocate(appAttemptId, Collections.<ResourceRequest>emptyList(),
      Collections.<ContainerId>emptyList(),
      Collections.singletonList(host), null, null, null);
  Assert.assertTrue(cs.getApplicationAttempt(appAttemptId).isBlacklisted(host));
  cs.allocate(appAttemptId, Collections.<ResourceRequest>emptyList(),
      Collections.<ContainerId>emptyList(), null,
      Collections.singletonList(host), null, null);
  Assert.assertFalse(cs.getApplicationAttempt(appAttemptId).isBlacklisted(host));
  rm.stop();
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:53,代码来源:TestCapacityScheduler.java

示例6: testApplicationHeadRoom

import org.apache.hadoop.yarn.server.resourcemanager.MockRM; //导入方法依赖的package包/类
@Test
public void testApplicationHeadRoom() throws Exception {
  Configuration conf = new Configuration();
  conf.setClass(YarnConfiguration.RM_SCHEDULER, CapacityScheduler.class,
      ResourceScheduler.class);
  MockRM rm = new MockRM(conf);
  rm.start();
  CapacityScheduler cs = (CapacityScheduler) rm.getResourceScheduler();

  ApplicationId appId = BuilderUtils.newApplicationId(100, 1);
  ApplicationAttemptId appAttemptId =
      BuilderUtils.newApplicationAttemptId(appId, 1);

  RMAppAttemptMetrics attemptMetric =
      new RMAppAttemptMetrics(appAttemptId, rm.getRMContext());
  RMAppImpl app = mock(RMAppImpl.class);
  when(app.getApplicationId()).thenReturn(appId);
  RMAppAttemptImpl attempt = mock(RMAppAttemptImpl.class);
  Container container = mock(Container.class);
  when(attempt.getMasterContainer()).thenReturn(container);
  ApplicationSubmissionContext submissionContext = mock(
      ApplicationSubmissionContext.class);
  when(attempt.getSubmissionContext()).thenReturn(submissionContext);
  when(attempt.getAppAttemptId()).thenReturn(appAttemptId);
  when(attempt.getRMAppAttemptMetrics()).thenReturn(attemptMetric);
  when(app.getCurrentAppAttempt()).thenReturn(attempt);

  rm.getRMContext().getRMApps().put(appId, app);

  SchedulerEvent addAppEvent =
      new AppAddedSchedulerEvent(appId, "default", "user");
  cs.handle(addAppEvent);
  SchedulerEvent addAttemptEvent =
      new AppAttemptAddedSchedulerEvent(appAttemptId, false);
  cs.handle(addAttemptEvent);

  Allocation allocate =
      cs.allocate(appAttemptId, Collections.<ResourceRequest> emptyList(),
          Collections.<ContainerId> emptyList(), null, null, null, null);

  Assert.assertNotNull(attempt);

  Assert
      .assertEquals(Resource.newInstance(0, 0), allocate.getResourceLimit());
  Assert.assertEquals(Resource.newInstance(0, 0),
      attemptMetric.getApplicationAttemptHeadroom());

  // Add a node to cluster
  Resource newResource = Resource.newInstance(4 * GB, 1);
  RMNode node = MockNodes.newNodeInfo(0, newResource, 1, "127.0.0.1");
  cs.handle(new NodeAddedSchedulerEvent(node));

  allocate =
      cs.allocate(appAttemptId, Collections.<ResourceRequest> emptyList(),
          Collections.<ContainerId> emptyList(), null, null, null, null);

  // All resources should be sent as headroom
  Assert.assertEquals(newResource, allocate.getResourceLimit());
  Assert.assertEquals(newResource,
      attemptMetric.getApplicationAttemptHeadroom());

  rm.stop();
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:64,代码来源:TestCapacityScheduler.java


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