Ejemplo n.º 1
0
        public virtual void TestNMWebApp()
        {
            Context       nmContext    = new NodeManager.NMContext(null, null, null, null, null);
            ResourceView  resourceView = new _ResourceView_147();
            Configuration conf         = new Configuration();

            conf.Set(YarnConfiguration.NmLocalDirs, testRootDir.GetAbsolutePath());
            conf.Set(YarnConfiguration.NmLogDirs, testLogDir.GetAbsolutePath());
            NodeHealthCheckerService healthChecker = new NodeHealthCheckerService();

            healthChecker.Init(conf);
            LocalDirsHandlerService dirsHandler = healthChecker.GetDiskHandler();
            WebServer server = new WebServer(nmContext, resourceView, new ApplicationACLsManager
                                                 (conf), dirsHandler);

            server.Init(conf);
            server.Start();
            // Add an application and the corresponding containers
            RecordFactory recordFactory    = RecordFactoryProvider.GetRecordFactory(conf);
            Dispatcher    dispatcher       = new AsyncDispatcher();
            string        user             = "******";
            long          clusterTimeStamp = 1234;
            ApplicationId appId            = BuilderUtils.NewApplicationId(recordFactory, clusterTimeStamp
                                                                           , 1);

            Org.Apache.Hadoop.Yarn.Server.Nodemanager.Containermanager.Application.Application
                app = Org.Mockito.Mockito.Mock <Org.Apache.Hadoop.Yarn.Server.Nodemanager.Containermanager.Application.Application
                                                >();
            Org.Mockito.Mockito.When(app.GetUser()).ThenReturn(user);
            Org.Mockito.Mockito.When(app.GetAppId()).ThenReturn(appId);
            nmContext.GetApplications()[appId] = app;
            ApplicationAttemptId appAttemptId = BuilderUtils.NewApplicationAttemptId(appId, 1
                                                                                     );
            ContainerId container1 = BuilderUtils.NewContainerId(recordFactory, appId, appAttemptId
                                                                 , 0);
            ContainerId container2 = BuilderUtils.NewContainerId(recordFactory, appId, appAttemptId
                                                                 , 1);
            NodeManagerMetrics  metrics    = Org.Mockito.Mockito.Mock <NodeManagerMetrics>();
            NMStateStoreService stateStore = new NMNullStateStoreService();

            foreach (ContainerId containerId in new ContainerId[] { container1, container2 })
            {
                // TODO: Use builder utils
                ContainerLaunchContext launchContext = recordFactory.NewRecordInstance <ContainerLaunchContext
                                                                                        >();
                long  currentTime    = Runtime.CurrentTimeMillis();
                Token containerToken = BuilderUtils.NewContainerToken(containerId, "127.0.0.1", 1234
                                                                      , user, BuilderUtils.NewResource(1024, 1), currentTime + 10000L, 123, Sharpen.Runtime.GetBytesForString
                                                                          ("password"), currentTime);
                Org.Apache.Hadoop.Yarn.Server.Nodemanager.Containermanager.Container.Container container
                    = new _ContainerImpl_214(conf, dispatcher, stateStore, launchContext, null, metrics
                                             , BuilderUtils.NewContainerTokenIdentifier(containerToken));
                nmContext.GetContainers()[containerId] = container;
                //TODO: Gross hack. Fix in code.
                ApplicationId applicationId = containerId.GetApplicationAttemptId().GetApplicationId
                                                  ();
                nmContext.GetApplications()[applicationId].GetContainers()[containerId] = container;
                WriteContainerLogs(nmContext, containerId, dirsHandler);
            }
        }
Ejemplo n.º 2
0
 public _ContainerManagerImpl_115(TestContainerManager _enclosing, Context baseArg1
                                  , ContainerExecutor baseArg2, DeletionService baseArg3, NodeStatusUpdater baseArg4
                                  , NodeManagerMetrics baseArg5, ApplicationACLsManager baseArg6, LocalDirsHandlerService
                                  baseArg7)
     : base(baseArg1, baseArg2, baseArg3, baseArg4, baseArg5, baseArg6, baseArg7)
 {
     this._enclosing = _enclosing;
 }
Ejemplo n.º 3
0
 public _TestNodeStatusUpdaterResync_232(_NodeManager_225 _enclosing, ContainerStatus
                                         testCompleteContainer, Org.Apache.Hadoop.Yarn.Server.Nodemanager.Containermanager.Container.Container
                                         container, Context baseArg1, Dispatcher baseArg2, NodeHealthCheckerService baseArg3
                                         , NodeManagerMetrics baseArg4)
     : base(_enclosing, baseArg1, baseArg2, baseArg3, baseArg4)
 {
     this._enclosing            = _enclosing;
     this.testCompleteContainer = testCompleteContainer;
     this.container             = container;
 }
Ejemplo n.º 4
0
 public NodeStatusUpdaterImpl(Context context, Dispatcher dispatcher, NodeHealthCheckerService
                              healthChecker, NodeManagerMetrics metrics)
     : base(typeof(Org.Apache.Hadoop.Yarn.Server.Nodemanager.NodeStatusUpdaterImpl).FullName
            )
 {
     // It will be used to track recently stopped containers on node manager, this
     // is to avoid the misleading no-such-container exception messages on NM, when
     // the AM finishes it informs the RM to stop the may-be-already-completed
     // containers.
     // Save the reported completed containers in case of lost heartbeat responses.
     // These completed containers will be sent again till a successful response.
     // Duration for which to track recently stopped container.
     this.healthChecker              = healthChecker;
     this.context                    = context;
     this.dispatcher                 = dispatcher;
     this.metrics                    = metrics;
     this.recentlyStoppedContainers  = new LinkedHashMap <ContainerId, long>();
     this.pendingCompletedContainers = new Dictionary <ContainerId, ContainerStatus>();
 }
 public _ContainerManagerImpl_319(LogHandler logHandler, ResourceLocalizationService
                                  rsrcSrv, ContainersLauncher launcher, Context baseArg1, ContainerExecutor baseArg2
                                  , DeletionService baseArg3, NodeStatusUpdater baseArg4, NodeManagerMetrics baseArg5
                                  , ApplicationACLsManager baseArg6, LocalDirsHandlerService baseArg7)
     : base(baseArg1, baseArg2, baseArg3, baseArg4, baseArg5, baseArg6, baseArg7)
 {
     this.logHandler = logHandler;
     this.rsrcSrv    = rsrcSrv;
     this.launcher   = launcher;
 }
Ejemplo n.º 6
0
 public TestNodeStatusUpdaterImpl3(TestNodeManager3 _enclosing, Context context, Dispatcher
                                   dispatcher, NodeHealthCheckerService healthChecker, NodeManagerMetrics metrics)
     : base(context, dispatcher, healthChecker, metrics)
 {
     this._enclosing = _enclosing;
 }
Ejemplo n.º 7
0
 public _NodeStatusUpdaterImpl_121(BaseContainerManagerTest _enclosing, Context baseArg1
                                   , Dispatcher baseArg2, NodeHealthCheckerService baseArg3, NodeManagerMetrics baseArg4
                                   )
     : base(baseArg1, baseArg2, baseArg3, baseArg4)
 {
     this._enclosing = _enclosing;
 }
Ejemplo n.º 8
0
 public _ContainerManagerImpl_191(Context baseArg1, ContainerExecutor baseArg2, DeletionService
                                  baseArg3, NodeStatusUpdater baseArg4, NodeManagerMetrics baseArg5, ApplicationACLsManager
                                  baseArg6, LocalDirsHandlerService baseArg7)
     : base(baseArg1, baseArg2, baseArg3, baseArg4, baseArg5, baseArg6, baseArg7)
 {
 }
Ejemplo n.º 9
0
 public MockNodeStatusUpdater(Context context, Dispatcher dispatcher, NodeHealthCheckerService
                              healthChecker, NodeManagerMetrics metrics)
     : base(context, dispatcher, healthChecker, metrics)
 {
     resourceTracker = CreateResourceTracker();
 }
Ejemplo n.º 10
0
 public _NodeStatusUpdaterImpl_601(ShortCircuitedNodeManager _enclosing, Context baseArg1
                                   , Dispatcher baseArg2, NodeHealthCheckerService baseArg3, NodeManagerMetrics baseArg4
                                   )
     : base(baseArg1, baseArg2, baseArg3, baseArg4)
 {
     this._enclosing = _enclosing;
 }
Ejemplo n.º 11
0
 public DummyContainerManager(Context context, ContainerExecutor exec, DeletionService
                              deletionContext, NodeStatusUpdater nodeStatusUpdater, NodeManagerMetrics metrics
                              , ApplicationACLsManager applicationACLsManager, LocalDirsHandlerService dirsHandler
                              )
     : base(context, exec, deletionContext, nodeStatusUpdater, metrics, applicationACLsManager
            , dirsHandler)
 {
 }
Ejemplo n.º 12
0
        public virtual void TestSuccessfulContainerLaunch()
        {
            FileContext localFS = FileContext.GetLocalFSFileContext();

            localFS.Delete(new Path(localDir.GetAbsolutePath()), true);
            localFS.Delete(new Path(localLogDir.GetAbsolutePath()), true);
            localFS.Delete(new Path(remoteLogDir.GetAbsolutePath()), true);
            localDir.Mkdir();
            localLogDir.Mkdir();
            remoteLogDir.Mkdir();
            YarnConfiguration conf    = new YarnConfiguration();
            Context           context = new _NMContext_84(new NMContainerTokenSecretManager(conf), new
                                                          NMTokenSecretManagerInNM(), null, null, new NMNullStateStoreService());

            conf.Set(YarnConfiguration.NmLocalDirs, localDir.GetAbsolutePath());
            conf.Set(YarnConfiguration.NmLogDirs, localLogDir.GetAbsolutePath());
            conf.Set(YarnConfiguration.NmRemoteAppLogDir, remoteLogDir.GetAbsolutePath());
            ContainerExecutor exec = new DefaultContainerExecutor();

            exec.SetConf(conf);
            DeletionService          del           = new DeletionService(exec);
            Dispatcher               dispatcher    = new AsyncDispatcher();
            NodeHealthCheckerService healthChecker = new NodeHealthCheckerService();

            healthChecker.Init(conf);
            LocalDirsHandlerService dirsHandler       = healthChecker.GetDiskHandler();
            NodeManagerMetrics      metrics           = NodeManagerMetrics.Create();
            NodeStatusUpdater       nodeStatusUpdater = new _NodeStatusUpdaterImpl_106(context, dispatcher
                                                                                       , healthChecker, metrics);
            // Don't start any updating thread.
            DummyContainerManager containerManager = new DummyContainerManager(context, exec,
                                                                               del, nodeStatusUpdater, metrics, new ApplicationACLsManager(conf), dirsHandler);

            nodeStatusUpdater.Init(conf);
            ((NodeManager.NMContext)context).SetContainerManager(containerManager);
            nodeStatusUpdater.Start();
            containerManager.Init(conf);
            containerManager.Start();
            ContainerLaunchContext launchContext = recordFactory.NewRecordInstance <ContainerLaunchContext
                                                                                    >();
            ApplicationId        applicationId        = ApplicationId.NewInstance(0, 0);
            ApplicationAttemptId applicationAttemptId = ApplicationAttemptId.NewInstance(applicationId
                                                                                         , 0);
            ContainerId           cID       = ContainerId.NewContainerId(applicationAttemptId, 0);
            string                user      = "******";
            StartContainerRequest scRequest = StartContainerRequest.NewInstance(launchContext
                                                                                , TestContainerManager.CreateContainerToken(cID, SimulatedRmIdentifier, context.
                                                                                                                            GetNodeId(), user, context.GetContainerTokenSecretManager()));
            IList <StartContainerRequest> list = new AList <StartContainerRequest>();

            list.AddItem(scRequest);
            StartContainersRequest allRequests = StartContainersRequest.NewInstance(list);

            containerManager.StartContainers(allRequests);
            BaseContainerManagerTest.WaitForContainerState(containerManager, cID, ContainerState
                                                           .Running);
            IList <ContainerId> containerIds = new AList <ContainerId>();

            containerIds.AddItem(cID);
            StopContainersRequest stopRequest = StopContainersRequest.NewInstance(containerIds
                                                                                  );

            containerManager.StopContainers(stopRequest);
            BaseContainerManagerTest.WaitForContainerState(containerManager, cID, ContainerState
                                                           .Complete);
            containerManager.Stop();
        }
Ejemplo n.º 13
0
 public _NodeStatusUpdaterImpl_106(Context baseArg1, Dispatcher baseArg2, NodeHealthCheckerService
                                   baseArg3, NodeManagerMetrics baseArg4)
     : base(baseArg1, baseArg2, baseArg3, baseArg4)
 {
 }
Ejemplo n.º 14
0
 public _ContainerImpl_214(Configuration baseArg1, Dispatcher baseArg2, NMStateStoreService
                           baseArg3, ContainerLaunchContext baseArg4, Credentials baseArg5, NodeManagerMetrics
                           baseArg6, ContainerTokenIdentifier baseArg7)
     : base(baseArg1, baseArg2, baseArg3, baseArg4, baseArg5, baseArg6, baseArg7)
 {
 }