public AppAttemptInfo(ResourceManager rm, RMAppAttempt attempt, string user, string schemePrefix) { this.startTime = 0; this.containerId = string.Empty; this.nodeHttpAddress = string.Empty; this.nodeId = string.Empty; this.logsLink = string.Empty; this.blacklistedNodes = string.Empty; if (attempt != null) { this.id = attempt.GetAppAttemptId().GetAttemptId(); this.startTime = attempt.GetStartTime(); Container masterContainer = attempt.GetMasterContainer(); if (masterContainer != null) { this.containerId = masterContainer.GetId().ToString(); this.nodeHttpAddress = masterContainer.GetNodeHttpAddress(); this.nodeId = masterContainer.GetNodeId().ToString(); this.logsLink = WebAppUtils.GetRunningLogURL(schemePrefix + masterContainer.GetNodeHttpAddress (), ConverterUtils.ToString(masterContainer.GetId()), user); if (rm.GetResourceScheduler() is AbstractYarnScheduler) { AbstractYarnScheduler ayScheduler = (AbstractYarnScheduler)rm.GetResourceScheduler (); SchedulerApplicationAttempt sattempt = ayScheduler.GetApplicationAttempt(attempt. GetAppAttemptId()); if (sattempt != null) { blacklistedNodes = StringUtils.Join(sattempt.GetBlacklistedNodes(), ", "); } } } } }
public virtual string GetLogURL() { try { readLock.Lock(); StringBuilder logURL = new StringBuilder(); logURL.Append(WebAppUtils.GetHttpSchemePrefix(rmContext.GetYarnConfiguration())); logURL.Append(WebAppUtils.GetRunningLogURL(container.GetNodeHttpAddress(), ConverterUtils .ToString(containerId), user)); return(logURL.ToString()); } finally { readLock.Unlock(); } }
public AppInfo(ResourceManager rm, RMApp app, bool hasAccess, string schemePrefix ) { // these are ok for any user to see // these are only allowed if acls allow // preemption info fields // JAXB needs this this.schemePrefix = schemePrefix; if (app != null) { string trackingUrl = app.GetTrackingUrl(); this.state = app.CreateApplicationState(); this.trackingUrlIsNotReady = trackingUrl == null || trackingUrl.IsEmpty() || YarnApplicationState .New == this.state || YarnApplicationState.NewSaving == this.state || YarnApplicationState .Submitted == this.state || YarnApplicationState.Accepted == this.state; this.trackingUI = this.trackingUrlIsNotReady ? "UNASSIGNED" : (app.GetFinishTime( ) == 0 ? "ApplicationMaster" : "History"); if (!trackingUrlIsNotReady) { this.trackingUrl = WebAppUtils.GetURLWithScheme(schemePrefix, trackingUrl); this.trackingUrlPretty = this.trackingUrl; } else { this.trackingUrlPretty = "UNASSIGNED"; } this.applicationId = app.GetApplicationId(); this.applicationType = app.GetApplicationType(); this.appIdNum = app.GetApplicationId().GetId().ToString(); this.id = app.GetApplicationId().ToString(); this.user = app.GetUser().ToString(); this.name = app.GetName().ToString(); this.queue = app.GetQueue().ToString(); this.progress = app.GetProgress() * 100; this.diagnostics = app.GetDiagnostics().ToString(); if (diagnostics == null || diagnostics.IsEmpty()) { this.diagnostics = string.Empty; } if (app.GetApplicationTags() != null && !app.GetApplicationTags().IsEmpty()) { this.applicationTags = Joiner.On(',').Join(app.GetApplicationTags()); } this.finalStatus = app.GetFinalApplicationStatus(); this.clusterId = ResourceManager.GetClusterTimeStamp(); if (hasAccess) { this.startedTime = app.GetStartTime(); this.finishedTime = app.GetFinishTime(); this.elapsedTime = Times.Elapsed(app.GetStartTime(), app.GetFinishTime()); RMAppAttempt attempt = app.GetCurrentAppAttempt(); if (attempt != null) { Container masterContainer = attempt.GetMasterContainer(); if (masterContainer != null) { this.amContainerLogsExist = true; this.amContainerLogs = WebAppUtils.GetRunningLogURL(schemePrefix + masterContainer .GetNodeHttpAddress(), ConverterUtils.ToString(masterContainer.GetId()), app.GetUser ()); this.amHostHttpAddress = masterContainer.GetNodeHttpAddress(); } ApplicationResourceUsageReport resourceReport = attempt.GetApplicationResourceUsageReport (); if (resourceReport != null) { Resource usedResources = resourceReport.GetUsedResources(); allocatedMB = usedResources.GetMemory(); allocatedVCores = usedResources.GetVirtualCores(); runningContainers = resourceReport.GetNumUsedContainers(); } resourceRequests = ((AbstractYarnScheduler)rm.GetRMContext().GetScheduler()).GetPendingResourceRequestsForAttempt (attempt.GetAppAttemptId()); } } // copy preemption info fields RMAppMetrics appMetrics = app.GetRMAppMetrics(); numAMContainerPreempted = appMetrics.GetNumAMContainersPreempted(); preemptedResourceMB = appMetrics.GetResourcePreempted().GetMemory(); numNonAMContainerPreempted = appMetrics.GetNumNonAMContainersPreempted(); preemptedResourceVCores = appMetrics.GetResourcePreempted().GetVirtualCores(); memorySeconds = appMetrics.GetMemorySeconds(); vcoreSeconds = appMetrics.GetVcoreSeconds(); } }