/// <exception cref="System.Exception"/> private void TestRMWritingMassiveHistory(MockRM rm) { rm.Start(); MockNM nm = rm.RegisterNode("127.0.0.1:1234", 1024 * 10100); RMApp app = rm.SubmitApp(1024); nm.NodeHeartbeat(true); RMAppAttempt attempt = app.GetCurrentAppAttempt(); MockAM am = rm.SendAMLaunched(attempt.GetAppAttemptId()); am.RegisterAppAttempt(); int request = 10000; am.Allocate("127.0.0.1", 1024, request, new AList <ContainerId>()); nm.NodeHeartbeat(true); IList <Container> allocated = am.Allocate(new AList <ResourceRequest>(), new AList < ContainerId>()).GetAllocatedContainers(); int waitCount = 0; int allocatedSize = allocated.Count; while (allocatedSize < request && waitCount++ < 200) { Sharpen.Thread.Sleep(300); allocated = am.Allocate(new AList <ResourceRequest>(), new AList <ContainerId>()).GetAllocatedContainers (); allocatedSize += allocated.Count; nm.NodeHeartbeat(true); } NUnit.Framework.Assert.AreEqual(request, allocatedSize); am.UnregisterAppAttempt(); am.WaitForState(RMAppAttemptState.Finishing); nm.NodeHeartbeat(am.GetApplicationAttemptId(), 1, ContainerState.Complete); am.WaitForState(RMAppAttemptState.Finished); NodeHeartbeatResponse resp = nm.NodeHeartbeat(true); IList <ContainerId> cleaned = resp.GetContainersToCleanup(); int cleanedSize = cleaned.Count; waitCount = 0; while (cleanedSize < allocatedSize && waitCount++ < 200) { Sharpen.Thread.Sleep(300); resp = nm.NodeHeartbeat(true); cleaned = resp.GetContainersToCleanup(); cleanedSize += cleaned.Count; } NUnit.Framework.Assert.AreEqual(allocatedSize, cleanedSize); rm.WaitForState(app.GetApplicationId(), RMAppState.Finished); rm.Stop(); }
// To hold list of application for which event was received /// <exception cref="System.Exception"/> public virtual void TestNodeUsableEvent() { Logger rootLogger = LogManager.GetRootLogger(); rootLogger.SetLevel(Level.Debug); Dispatcher dispatcher = GetDispatcher(); YarnConfiguration conf = new YarnConfiguration(); MockRM rm = new _MockRM_62(dispatcher, conf); rm.Start(); MockNM nm1 = rm.RegisterNode("h1:1234", 28000); NodesListManager nodesListManager = rm.GetNodesListManager(); Resource clusterResource = Resource.NewInstance(28000, 8); RMNode rmnode = MockNodes.NewNodeInfo(1, clusterResource); // Create killing APP RMApp killrmApp = rm.SubmitApp(200); rm.KillApp(killrmApp.GetApplicationId()); rm.WaitForState(killrmApp.GetApplicationId(), RMAppState.Killed); // Create finish APP RMApp finshrmApp = rm.SubmitApp(2000); nm1.NodeHeartbeat(true); RMAppAttempt attempt = finshrmApp.GetCurrentAppAttempt(); MockAM am = rm.SendAMLaunched(attempt.GetAppAttemptId()); am.RegisterAppAttempt(); am.UnregisterAppAttempt(); nm1.NodeHeartbeat(attempt.GetAppAttemptId(), 1, ContainerState.Complete); am.WaitForState(RMAppAttemptState.Finished); // Create submitted App RMApp subrmApp = rm.SubmitApp(200); // Fire Event for NODE_USABLE nodesListManager.Handle(new NodesListManagerEvent(NodesListManagerEventType.NodeUsable , rmnode)); if (applist.Count > 0) { NUnit.Framework.Assert.IsTrue("Event based on running app expected " + subrmApp.GetApplicationId (), applist.Contains(subrmApp.GetApplicationId())); NUnit.Framework.Assert.IsFalse("Event based on finish app not expected " + finshrmApp .GetApplicationId(), applist.Contains(finshrmApp.GetApplicationId())); NUnit.Framework.Assert.IsFalse("Event based on killed app not expected " + killrmApp .GetApplicationId(), applist.Contains(killrmApp.GetApplicationId())); } else { NUnit.Framework.Assert.Fail("Events received should have beeen more than 1"); } applist.Clear(); // Fire Event for NODE_UNUSABLE nodesListManager.Handle(new NodesListManagerEvent(NodesListManagerEventType.NodeUnusable , rmnode)); if (applist.Count > 0) { NUnit.Framework.Assert.IsTrue("Event based on running app expected " + subrmApp.GetApplicationId (), applist.Contains(subrmApp.GetApplicationId())); NUnit.Framework.Assert.IsFalse("Event based on finish app not expected " + finshrmApp .GetApplicationId(), applist.Contains(finshrmApp.GetApplicationId())); NUnit.Framework.Assert.IsFalse("Event based on killed app not expected " + killrmApp .GetApplicationId(), applist.Contains(killrmApp.GetApplicationId())); } else { NUnit.Framework.Assert.Fail("Events received should have beeen more than 1"); } }