hadoop-yarn-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From vino...@apache.org
Subject svn commit: r1545810 [2/2] - in /hadoop/common/branches/YARN-321/hadoop-yarn-project: ./ hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/ hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/ hadoop-yarn/hado...
Date Tue, 26 Nov 2013 20:15:16 GMT
Added: hadoop/common/branches/YARN-321/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/ContainerBlock.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/YARN-321/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/ContainerBlock.java?rev=1545810&view=auto
==============================================================================
--- hadoop/common/branches/YARN-321/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/ContainerBlock.java
(added)
+++ hadoop/common/branches/YARN-321/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/ContainerBlock.java
Tue Nov 26 20:15:15 2013
@@ -0,0 +1,100 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.yarn.server.webapp;
+
+import static org.apache.hadoop.yarn.util.StringHelper.join;
+import static org.apache.hadoop.yarn.webapp.YarnWebParams.CONTAINER_ID;
+
+import java.io.IOException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.util.StringUtils;
+import org.apache.hadoop.yarn.api.records.ContainerId;
+import org.apache.hadoop.yarn.api.records.ContainerReport;
+import org.apache.hadoop.yarn.server.api.ApplicationContext;
+import org.apache.hadoop.yarn.server.webapp.dao.ContainerInfo;
+import org.apache.hadoop.yarn.util.ConverterUtils;
+import org.apache.hadoop.yarn.util.Times;
+import org.apache.hadoop.yarn.webapp.view.HtmlBlock;
+import org.apache.hadoop.yarn.webapp.view.InfoBlock;
+
+import com.google.inject.Inject;
+
+public class ContainerBlock extends HtmlBlock {
+
+  private static final Log LOG = LogFactory.getLog(ContainerBlock.class);
+  private final ApplicationContext appContext;
+
+  @Inject
+  public ContainerBlock(ApplicationContext appContext, ViewContext ctx) {
+    super(ctx);
+    this.appContext = appContext;
+  }
+
+  @Override
+  protected void render(Block html) {
+    String containerid = $(CONTAINER_ID);
+    if (containerid.isEmpty()) {
+      puts("Bad request: requires container ID");
+      return;
+    }
+
+    ContainerId containerId = null;
+    try {
+      containerId = ConverterUtils.toContainerId(containerid);
+    } catch (IllegalArgumentException e) {
+      puts("Invalid container ID: " + containerid);
+      return;
+    }
+
+    ContainerReport containerReport;
+    try {
+      containerReport = appContext.getContainer(containerId);
+    } catch (IOException e) {
+      String message = "Failed to read the container " + containerid + ".";
+      LOG.error(message, e);
+      html.p()._(message)._();
+      return;
+    }
+    if (containerReport == null) {
+      puts("Container not found: " + containerid);
+      return;
+    }
+    ContainerInfo container = new ContainerInfo(containerReport);
+
+    setTitle(join("Container ", containerid));
+
+    info("Container Overview").
+    _("State:", container.getContainerState()).
+    _("Exit Status:", container.getContainerExitStatus()).
+    _("Node:", container.getAssignedNodeId()).
+    _("Priority:", container.getPriority()).
+    _("Started:", Times.format(container.getStartedTime())).
+    _("Elapsed:", StringUtils.formatTime(
+        Times.elapsed(container.getStartedTime(),
+            container.getFinishedTime()))).
+    _("Resource:", container.getAllocatedMB() + " Memory, " +
+        container.getAllocatedVCores() + " VCores").
+    _("Logs:", container.getLogUrl() == null ?
+        "#" : root_url(container.getLogUrl()), container.getLogUrl()).
+    _("Diagnostics:", container.getDiagnosticsInfo());
+
+    html._(InfoBlock.class);
+  }
+}
\ No newline at end of file

Added: hadoop/common/branches/YARN-321/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/dao/AppAttemptInfo.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/YARN-321/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/dao/AppAttemptInfo.java?rev=1545810&view=auto
==============================================================================
--- hadoop/common/branches/YARN-321/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/dao/AppAttemptInfo.java
(added)
+++ hadoop/common/branches/YARN-321/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/dao/AppAttemptInfo.java
Tue Nov 26 20:15:15 2013
@@ -0,0 +1,84 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.yarn.server.webapp.dao;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.hadoop.yarn.api.records.ApplicationAttemptReport;
+import org.apache.hadoop.yarn.api.records.YarnApplicationAttemptState;
+
+@XmlRootElement(name = "appattempt")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class AppAttemptInfo {
+
+  protected String appAttemptId;
+  protected String host;
+  protected int rpcPort;
+  protected String trackingUrl;
+  protected String diagnosticsInfo;
+  protected YarnApplicationAttemptState appAttemptState;
+  protected String amContainerId;
+
+  public AppAttemptInfo() {
+    // JAXB needs this
+  }
+
+  public AppAttemptInfo(ApplicationAttemptReport appAttempt) {
+    appAttemptId = appAttempt.getApplicationAttemptId().toString();
+    host = appAttempt.getHost();
+    rpcPort = appAttempt.getRpcPort();
+    trackingUrl = appAttempt.getTrackingUrl();
+    diagnosticsInfo = appAttempt.getDiagnostics();
+    appAttemptState = appAttempt.getYarnApplicationAttemptState();
+    if (appAttempt.getAMContainerId() != null) {
+      amContainerId = appAttempt.getAMContainerId().toString();
+    }
+  }
+
+  public String getAppAttemptId() {
+    return appAttemptId;
+  }
+
+  public String getHost() {
+    return host;
+  }
+
+  public int getRpcPort() {
+    return rpcPort;
+  }
+
+  public String getTrackingUrl() {
+    return trackingUrl;
+  }
+
+  public String getDiagnosticsInfo() {
+    return diagnosticsInfo;
+  }
+
+  public YarnApplicationAttemptState getAppAttemptState() {
+    return appAttemptState;
+  }
+
+  public String getAmContainerId() {
+    return amContainerId;
+  }
+
+}

Added: hadoop/common/branches/YARN-321/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/dao/AppInfo.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/YARN-321/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/dao/AppInfo.java?rev=1545810&view=auto
==============================================================================
--- hadoop/common/branches/YARN-321/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/dao/AppInfo.java
(added)
+++ hadoop/common/branches/YARN-321/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/dao/AppInfo.java
Tue Nov 26 20:15:15 2013
@@ -0,0 +1,169 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.yarn.server.webapp.dao;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.hadoop.yarn.api.records.ApplicationReport;
+import org.apache.hadoop.yarn.api.records.ApplicationResourceUsageReport;
+import org.apache.hadoop.yarn.api.records.FinalApplicationStatus;
+import org.apache.hadoop.yarn.api.records.YarnApplicationState;
+import org.apache.hadoop.yarn.util.Times;
+
+@XmlRootElement(name = "app")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class AppInfo {
+
+  protected String appId;
+  protected String currentAppAttemptId;
+  protected String user;
+  protected String name;
+  protected String queue;
+  protected String type;
+  protected String host;
+  protected int rpcPort;
+  protected YarnApplicationState appState;
+  protected float progress;
+  protected String diagnosticsInfo;
+  protected String originalTrackingUrl;
+  protected String trackingUrl;
+  protected FinalApplicationStatus finalAppStatus;
+  protected long submittedTime;
+  protected long startedTime;
+  protected long finishedTime;
+  protected long elapsedTime;
+  protected int allocatedMB;
+  protected int allocatedVCores;
+
+  public AppInfo() {
+    // JAXB needs this
+  }
+
+  public AppInfo(ApplicationReport app) {
+    appId = app.getApplicationId().toString();
+    if (app.getCurrentApplicationAttemptId() != null) {
+      currentAppAttemptId = app.getCurrentApplicationAttemptId().toString();
+    }
+    user = app.getUser();
+    queue = app.getQueue();
+    name = app.getName();
+    type = app.getApplicationType();
+    host = app.getHost();
+    rpcPort = app.getRpcPort();
+    appState = app.getYarnApplicationState();
+    diagnosticsInfo = app.getDiagnostics();
+    trackingUrl = app.getTrackingUrl();
+    originalTrackingUrl = app.getOriginalTrackingUrl();
+    submittedTime = app.getStartTime();
+    startedTime = app.getStartTime();
+    finishedTime = app.getFinishTime();
+    elapsedTime = Times.elapsed(startedTime, finishedTime);
+    finalAppStatus = app.getFinalApplicationStatus();
+    ApplicationResourceUsageReport usage =
+        app.getApplicationResourceUsageReport();
+    if (usage != null) {
+      allocatedMB = usage.getUsedResources().getMemory();
+      allocatedVCores = usage.getUsedResources().getVirtualCores();
+    }
+    progress = app.getProgress();
+  }
+
+  public String getAppId() {
+    return appId;
+  }
+
+  public String getCurrentAppAttemptId() {
+    return currentAppAttemptId;
+  }
+
+  public String getUser() {
+    return user;
+  }
+
+  public String getName() {
+    return name;
+  }
+
+  public String getQueue() {
+    return queue;
+  }
+
+  public String getType() {
+    return type;
+  }
+
+  public String getHost() {
+    return host;
+  }
+
+  public int getRpcPort() {
+    return rpcPort;
+  }
+
+  public YarnApplicationState getAppState() {
+    return appState;
+  }
+
+  public float getProgress() {
+    return progress;
+  }
+
+  public String getDiagnosticsInfo() {
+    return diagnosticsInfo;
+  }
+
+  public String getOriginalTrackingUrl() {
+    return originalTrackingUrl;
+  }
+
+  public String getTrackingUrl() {
+    return trackingUrl;
+  }
+
+  public FinalApplicationStatus getFinalAppStatus() {
+    return finalAppStatus;
+  }
+
+  public long getSubmittedTime() {
+    return submittedTime;
+  }
+
+  public long getStartedTime() {
+    return startedTime;
+  }
+
+  public long getFinishedTime() {
+    return finishedTime;
+  }
+
+  public long getElapsedTime() {
+    return elapsedTime;
+  }
+
+  public int getAllocatedMB() {
+    return allocatedMB;
+  }
+
+  public int getAllocatedVCores() {
+    return allocatedVCores;
+  }
+
+}

Added: hadoop/common/branches/YARN-321/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/dao/ContainerInfo.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/YARN-321/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/dao/ContainerInfo.java?rev=1545810&view=auto
==============================================================================
--- hadoop/common/branches/YARN-321/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/dao/ContainerInfo.java
(added)
+++ hadoop/common/branches/YARN-321/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/dao/ContainerInfo.java
Tue Nov 26 20:15:15 2013
@@ -0,0 +1,118 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.yarn.server.webapp.dao;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.hadoop.yarn.api.records.ContainerReport;
+import org.apache.hadoop.yarn.api.records.ContainerState;
+import org.apache.hadoop.yarn.api.records.Priority;
+import org.apache.hadoop.yarn.util.Times;
+
+@XmlRootElement(name = "container")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class ContainerInfo {
+
+  protected String containerId;
+  protected int allocatedMB;
+  protected int allocatedVCores;
+  protected String assignedNodeId;
+  protected Priority priority;
+  protected long startedTime;
+  protected long finishedTime;
+  protected long elapsedTime;
+  protected String diagnosticsInfo;
+  protected String logUrl;
+  protected int containerExitStatus;
+  protected ContainerState containerState;
+
+  public ContainerInfo() {
+    // JAXB needs this
+  }
+
+  public ContainerInfo(ContainerReport container) {
+    containerId = container.getContainerId().toString();
+    if (container.getAllocatedResource() != null) {
+      allocatedMB = container.getAllocatedResource().getMemory();
+      allocatedVCores = container.getAllocatedResource().getVirtualCores();
+    }
+    if (container.getAssignedNode() != null) {
+      assignedNodeId = container.getAssignedNode().toString();
+    }
+    priority = container.getPriority();
+    startedTime = container.getStartTime();
+    finishedTime = container.getFinishTime();
+    elapsedTime = Times.elapsed(startedTime, finishedTime);
+    diagnosticsInfo = container.getDiagnosticsInfo();
+    logUrl = container.getLogUrl();
+    containerExitStatus = container.getContainerExitStatus();
+    containerState = container.getContainerState();
+  }
+
+  public String getContainerId() {
+    return containerId;
+  }
+
+  public int getAllocatedMB() {
+    return allocatedMB;
+  }
+
+  public int getAllocatedVCores() {
+    return allocatedVCores;
+  }
+
+  public String getAssignedNodeId() {
+    return assignedNodeId;
+  }
+
+  public Priority getPriority() {
+    return priority;
+  }
+
+  public long getStartedTime() {
+    return startedTime;
+  }
+
+  public long getFinishedTime() {
+    return finishedTime;
+  }
+
+  public long getElapsedTime() {
+    return elapsedTime;
+  }
+
+  public String getDiagnosticsInfo() {
+    return diagnosticsInfo;
+  }
+
+  public String getLogUrl() {
+    return logUrl;
+  }
+
+  public int getContainerExitStatus() {
+    return containerExitStatus;
+  }
+
+  public ContainerState getContainerState() {
+    return containerState;
+  }
+
+}



Mime
View raw message