Author: szetszwo Date: Mon Apr 30 23:01:07 2012 New Revision: 1332461 URL: http://svn.apache.org/viewvc?rev=1332461&view=rev Log: Merge r1329944 through r1332459 from trunk.
Added: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/xsl/ - copied from r1332459, hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/xsl/ hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/xsl/configuration.xsl - copied unchanged from r1332459, hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/xsl/configuration.xsl hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestDirectoryCollection.java - copied unchanged from r1332459, hadoop/common/trunk/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestDirectoryCollection.java Modified: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/ (props changed) hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/CHANGES.txt (contents, props changed) hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/conf/ (props changed) hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/webapp/AMWebServices.java hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/Counters.java hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Counters.java hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FileSystemCounterGroup.java hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FrameworkCounterGroup.java hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/resources/mapred-default.xml (props changed) hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/webapp/HsWebServices.java hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/pom.xml hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/pom.xml hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/AggregatedLogFormat.java hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DirectoryCollection.java hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/ContainerLogsPage.java hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/NMWebServices.java hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/NodesPage.java hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/TestContainerManagerSecurity.java hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/c++/ (props changed) hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/contrib/ (props changed) hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/contrib/block_forensics/ (props changed) hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/contrib/build-contrib.xml (props changed) hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/contrib/build.xml (props changed) hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/contrib/data_join/ (props changed) hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/contrib/eclipse-plugin/ (props changed) hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/contrib/index/ (props changed) hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/contrib/vaidya/ (props changed) hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/examples/ (props changed) hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/java/ (props changed) hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/test/mapred/ (props changed) hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/test/mapred/org/apache/hadoop/fs/ (props changed) hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/test/mapred/org/apache/hadoop/hdfs/ (props changed) hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/test/mapred/org/apache/hadoop/ipc/ (props changed) hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/webapps/job/ (props changed) Propchange: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/ ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-mapreduce-project:r1329944-1332459 Modified: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/CHANGES.txt?rev=1332461&r1=1332460&r2=1332461&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/CHANGES.txt (original) +++ hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/CHANGES.txt Mon Apr 30 23:01:07 2012 @@ -154,6 +154,12 @@ Release 2.0.0 - UNRELEASED MAPREDUCE-4093. Improve RM WebApp start up when proxy address is not set (Devaraj K vai bobby) + MAPREDUCE-4138. Reduce memory usage of counters due to non-static nested + classes. (tomwhite) + + MAPREDUCE-3883. Document yarn.nodemanager.delete.debug-delay-sec + configuration property (Eugene Koontz via tgraves) + OPTIMIZATIONS BUG FIXES @@ -260,6 +266,9 @@ Release 2.0.0 - UNRELEASED MAPREDUCE-4141. clover integration broken, also mapreduce poms are pulling in clover as a dependency. (phunt via tucu) + MAPREDUCE-4193. broken doc link for yarn-default.xml in site.xml. + (phunt via tomwhite) + Release 0.23.3 - UNRELEASED INCOMPATIBLE CHANGES @@ -403,6 +412,24 @@ Release 0.23.3 - UNRELEASED MAPREDUCE-4133. MR over viewfs is broken (John George via bobby) + MAPREDUCE-4194. ConcurrentModificationError in DirectoryCollection + (Jonathan Eagles via bobby) + + MAPREDUCE-3613. web service calls header contains 2 content types + (tgraves) + + MAPREDUCE-4169. Container Logs appear in unsorted order (Jonathan Eagles + via bobby) + + MAPREDUCE-4189. TestContainerManagerSecurity is failing (Devaraj K via + bobby) + + MAPREDUCE-4209. junit dependency in hadoop-mapreduce-client is missing + scope test (Radim Kolar via bobby) + + MAPREDUCE-4206. Sorting by Last Health-Update on the RM nodes page sorts + does not work correctly (Jonathon Eagles via tgraves) + Release 0.23.2 - UNRELEASED INCOMPATIBLE CHANGES Propchange: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/CHANGES.txt ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt:r1329944-1332459 Propchange: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/conf/ ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-mapreduce-project/conf:r1329944-1332459 Modified: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/webapp/AMWebServices.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/webapp/AMWebServices.java?rev=1332461&r1=1332460&r2=1332461&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/webapp/AMWebServices.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/webapp/AMWebServices.java Mon Apr 30 23:01:07 2012 @@ -21,6 +21,7 @@ package org.apache.hadoop.mapreduce.v2.a import java.io.IOException; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; @@ -67,6 +68,8 @@ import com.google.inject.Inject; public class AMWebServices { private final AppContext appCtx; private final App app; + + private @Context HttpServletResponse response; @Inject public AMWebServices(final App app, final AppContext context) { @@ -86,6 +89,11 @@ public class AMWebServices { return true; } + private void init() { + //clear content type + response.setContentType(null); + } + /** * convert a job id string to an actual job and handle all the error checking. */ @@ -205,6 +213,7 @@ public class AMWebServices { @Path("/info") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public AppInfo getAppInfo() { + init(); return new AppInfo(this.app, this.app.context); } @@ -212,6 +221,7 @@ public class AMWebServices { @Path("/jobs") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public JobsInfo getJobs(@Context HttpServletRequest hsr) { + init(); JobsInfo allJobs = new JobsInfo(); for (Job job : appCtx.getAllJobs().values()) { // getAllJobs only gives you a partial we want a full @@ -229,6 +239,7 @@ public class AMWebServices { @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public JobInfo getJob(@Context HttpServletRequest hsr, @PathParam("jobid") String jid) { + init(); Job job = getJobFromJobIdString(jid, appCtx); return new JobInfo(job, hasAccess(job, hsr)); } @@ -237,7 +248,7 @@ public class AMWebServices { @Path("/jobs/{jobid}/jobattempts") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public AMAttemptsInfo getJobAttempts(@PathParam("jobid") String jid) { - + init(); Job job = getJobFromJobIdString(jid, appCtx); AMAttemptsInfo amAttempts = new AMAttemptsInfo(); for (AMInfo amInfo : job.getAMInfos()) { @@ -253,6 +264,7 @@ public class AMWebServices { @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public JobCounterInfo getJobCounters(@Context HttpServletRequest hsr, @PathParam("jobid") String jid) { + init(); Job job = getJobFromJobIdString(jid, appCtx); checkAccess(job, hsr); return new JobCounterInfo(this.appCtx, job); @@ -264,6 +276,7 @@ public class AMWebServices { public ConfInfo getJobConf(@Context HttpServletRequest hsr, @PathParam("jobid") String jid) { + init(); Job job = getJobFromJobIdString(jid, appCtx); checkAccess(job, hsr); ConfInfo info; @@ -282,6 +295,7 @@ public class AMWebServices { public TasksInfo getJobTasks(@Context HttpServletRequest hsr, @PathParam("jobid") String jid, @QueryParam("type") String type) { + init(); Job job = getJobFromJobIdString(jid, appCtx); checkAccess(job, hsr); TasksInfo allTasks = new TasksInfo(); @@ -308,6 +322,7 @@ public class AMWebServices { public TaskInfo getJobTask(@Context HttpServletRequest hsr, @PathParam("jobid") String jid, @PathParam("taskid") String tid) { + init(); Job job = getJobFromJobIdString(jid, appCtx); checkAccess(job, hsr); Task task = getTaskFromTaskIdString(tid, job); @@ -321,6 +336,7 @@ public class AMWebServices { @Context HttpServletRequest hsr, @PathParam("jobid") String jid, @PathParam("taskid") String tid) { + init(); Job job = getJobFromJobIdString(jid, appCtx); checkAccess(job, hsr); Task task = getTaskFromTaskIdString(tid, job); @@ -332,8 +348,9 @@ public class AMWebServices { @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public TaskAttemptsInfo getJobTaskAttempts(@Context HttpServletRequest hsr, @PathParam("jobid") String jid, @PathParam("taskid") String tid) { - TaskAttemptsInfo attempts = new TaskAttemptsInfo(); + init(); + TaskAttemptsInfo attempts = new TaskAttemptsInfo(); Job job = getJobFromJobIdString(jid, appCtx); checkAccess(job, hsr); Task task = getTaskFromTaskIdString(tid, job); @@ -357,6 +374,7 @@ public class AMWebServices { @PathParam("jobid") String jid, @PathParam("taskid") String tid, @PathParam("attemptid") String attId) { + init(); Job job = getJobFromJobIdString(jid, appCtx); checkAccess(job, hsr); Task task = getTaskFromTaskIdString(tid, job); @@ -375,6 +393,7 @@ public class AMWebServices { @Context HttpServletRequest hsr, @PathParam("jobid") String jid, @PathParam("taskid") String tid, @PathParam("attemptid") String attId) { + init(); Job job = getJobFromJobIdString(jid, appCtx); checkAccess(job, hsr); Task task = getTaskFromTaskIdString(tid, job); Modified: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/Counters.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/Counters.java?rev=1332461&r1=1332460&r2=1332461&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/Counters.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/Counters.java Mon Apr 30 23:01:07 2012 @@ -387,21 +387,13 @@ public class Counters private static class FrameworkGroupImpl<T extends Enum<T>> extends FrameworkCounterGroup<T, Counter> { - // Mix the framework counter implementation into the Counter interface - class FrameworkCounterImpl extends FrameworkCounter { - FrameworkCounterImpl(T key) { - super(key); - } - - } - FrameworkGroupImpl(Class<T> cls) { super(cls); } @Override protected Counter newCounter(T key) { - return new Counter(new FrameworkCounterImpl(key)); + return new Counter(new FrameworkCounter<T>(key, getName())); } @Override @@ -413,17 +405,9 @@ public class Counters // Mix the file system counter group implementation into the Group interface private static class FSGroupImpl extends FileSystemCounterGroup<Counter> { - private class FSCounterImpl extends FSCounter { - - FSCounterImpl(String scheme, FileSystemCounter key) { - super(scheme, key); - } - - } - @Override protected Counter newCounter(String scheme, FileSystemCounter key) { - return new Counter(new FSCounterImpl(scheme, key)); + return new Counter(new FSCounter(scheme, key)); } @Override Modified: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Counters.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Counters.java?rev=1332461&r1=1332460&r2=1332461&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Counters.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Counters.java Mon Apr 30 23:01:07 2012 @@ -49,8 +49,8 @@ public class Counters extends AbstractCo } @Override - protected FrameworkCounter newCounter(T key) { - return new FrameworkCounter(key); + protected FrameworkCounter<T> newCounter(T key) { + return new FrameworkCounter<T>(key, getName()); } @Override Modified: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FileSystemCounterGroup.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FileSystemCounterGroup.java?rev=1332461&r1=1332460&r2=1332461&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FileSystemCounterGroup.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FileSystemCounterGroup.java Mon Apr 30 23:01:07 2012 @@ -61,7 +61,7 @@ public abstract class FileSystemCounterG private static final Joiner DISP_JOINER = Joiner.on(": "); @InterfaceAudience.Private - public class FSCounter extends AbstractCounter { + public static class FSCounter extends AbstractCounter { final String scheme; final FileSystemCounter key; private long value; @@ -139,8 +139,7 @@ public abstract class FileSystemCounterG @Override public void addCounter(C counter) { C ours; - if (counter instanceof FileSystemCounterGroup<?>.FSCounter) { - @SuppressWarnings("unchecked") + if (counter instanceof FileSystemCounterGroup.FSCounter) { FSCounter c = (FSCounter) counter; ours = findCounter(c.scheme, c.key); } Modified: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FrameworkCounterGroup.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FrameworkCounterGroup.java?rev=1332461&r1=1332460&r2=1332461&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FrameworkCounterGroup.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FrameworkCounterGroup.java Mon Apr 30 23:01:07 2012 @@ -57,12 +57,14 @@ public abstract class FrameworkCounterGr * Use old (which extends new) interface to make compatibility easier. */ @InterfaceAudience.Private - public class FrameworkCounter extends AbstractCounter { + public static class FrameworkCounter<T extends Enum<T>> extends AbstractCounter { final T key; + final String groupName; private long value; - public FrameworkCounter(T ref) { + public FrameworkCounter(T ref, String groupName) { key = ref; + this.groupName = groupName; } @Override @@ -72,7 +74,7 @@ public abstract class FrameworkCounterGr @Override public String getDisplayName() { - return localizeCounterName(getName()); + return ResourceBundles.getCounterName(groupName, getName(), getName()); } @Override @@ -131,10 +133,6 @@ public abstract class FrameworkCounterGr this.displayName = displayName; } - private String localizeCounterName(String counterName) { - return ResourceBundles.getCounterName(getName(), counterName, counterName); - } - private T valueOf(String name) { return Enum.valueOf(enumClass, name); } @@ -204,7 +202,7 @@ public abstract class FrameworkCounterGr if (checkNotNull(other, "other counter group") instanceof FrameworkCounterGroup<?, ?>) { for (Counter counter : other) { - findCounter(((FrameworkCounter) counter).key) + findCounter(((FrameworkCounter) counter).key.name()) .increment(counter.getValue()); } } Propchange: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/resources/mapred-default.xml ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/resources/mapred-default.xml:r1329944-1332459 Modified: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/webapp/HsWebServices.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/webapp/HsWebServices.java?rev=1332461&r1=1332460&r2=1332461&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/webapp/HsWebServices.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/webapp/HsWebServices.java Mon Apr 30 23:01:07 2012 @@ -20,6 +20,7 @@ package org.apache.hadoop.mapreduce.v2.h import java.io.IOException; +import javax.servlet.http.HttpServletResponse; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; @@ -66,6 +67,7 @@ public class HsWebServices { private final HistoryContext ctx; private WebApp webapp; + private @Context HttpServletResponse response; @Context UriInfo uriInfo; @@ -76,6 +78,11 @@ public class HsWebServices { this.webapp = webapp; } + private void init() { + //clear content type + response.setContentType(null); + } + @GET @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public HistoryInfo get() { @@ -86,6 +93,7 @@ public class HsWebServices { @Path("/info") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public HistoryInfo getHistoryInfo() { + init(); return new HistoryInfo(); } @@ -102,6 +110,7 @@ public class HsWebServices { @QueryParam("finishedTimeEnd") String finishEnd) { Long countParam = null; + init(); if (count != null && !count.isEmpty()) { try { @@ -183,6 +192,7 @@ public class HsWebServices { @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public JobInfo getJob(@PathParam("jobid") String jid) { + init(); Job job = AMWebServices.getJobFromJobIdString(jid, ctx); return new JobInfo(job); } @@ -192,6 +202,7 @@ public class HsWebServices { @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public AMAttemptsInfo getJobAttempts(@PathParam("jobid") String jid) { + init(); Job job = AMWebServices.getJobFromJobIdString(jid, ctx); AMAttemptsInfo amAttempts = new AMAttemptsInfo(); for (AMInfo amInfo : job.getAMInfos()) { @@ -208,6 +219,7 @@ public class HsWebServices { @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public JobCounterInfo getJobCounters(@PathParam("jobid") String jid) { + init(); Job job = AMWebServices.getJobFromJobIdString(jid, ctx); return new JobCounterInfo(this.ctx, job); } @@ -217,6 +229,7 @@ public class HsWebServices { @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public ConfInfo getJobConf(@PathParam("jobid") String jid) { + init(); Job job = AMWebServices.getJobFromJobIdString(jid, ctx); ConfInfo info; try { @@ -234,6 +247,7 @@ public class HsWebServices { public TasksInfo getJobTasks(@PathParam("jobid") String jid, @QueryParam("type") String type) { + init(); Job job = AMWebServices.getJobFromJobIdString(jid, ctx); TasksInfo allTasks = new TasksInfo(); for (Task task : job.getTasks().values()) { @@ -259,6 +273,7 @@ public class HsWebServices { public TaskInfo getJobTask(@PathParam("jobid") String jid, @PathParam("taskid") String tid) { + init(); Job job = AMWebServices.getJobFromJobIdString(jid, ctx); Task task = AMWebServices.getTaskFromTaskIdString(tid, job); return new TaskInfo(task); @@ -271,6 +286,7 @@ public class HsWebServices { public JobTaskCounterInfo getSingleTaskCounters( @PathParam("jobid") String jid, @PathParam("taskid") String tid) { + init(); Job job = AMWebServices.getJobFromJobIdString(jid, ctx); TaskId taskID = MRApps.toTaskID(tid); if (taskID == null) { @@ -289,6 +305,7 @@ public class HsWebServices { public TaskAttemptsInfo getJobTaskAttempts(@PathParam("jobid") String jid, @PathParam("taskid") String tid) { + init(); TaskAttemptsInfo attempts = new TaskAttemptsInfo(); Job job = AMWebServices.getJobFromJobIdString(jid, ctx); Task task = AMWebServices.getTaskFromTaskIdString(tid, job); @@ -310,6 +327,7 @@ public class HsWebServices { public TaskAttemptInfo getJobTaskAttemptId(@PathParam("jobid") String jid, @PathParam("taskid") String tid, @PathParam("attemptid") String attId) { + init(); Job job = AMWebServices.getJobFromJobIdString(jid, ctx); Task task = AMWebServices.getTaskFromTaskIdString(tid, job); TaskAttempt ta = AMWebServices.getTaskAttemptFromTaskAttemptString(attId, @@ -328,6 +346,7 @@ public class HsWebServices { @PathParam("jobid") String jid, @PathParam("taskid") String tid, @PathParam("attemptid") String attId) { + init(); Job job = AMWebServices.getJobFromJobIdString(jid, ctx); Task task = AMWebServices.getTaskFromTaskIdString(tid, job); TaskAttempt ta = AMWebServices.getTaskAttemptFromTaskAttemptString(attId, Modified: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/pom.xml URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/pom.xml?rev=1332461&r1=1332460&r2=1332461&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/pom.xml (original) +++ hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-mapreduce-client/pom.xml Mon Apr 30 23:01:07 2012 @@ -124,6 +124,7 @@ <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> + <scope>test</scope> </dependency> <dependency> <groupId>org.jboss.netty</groupId> Modified: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/pom.xml URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/pom.xml?rev=1332461&r1=1332460&r2=1332461&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/pom.xml (original) +++ hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/pom.xml Mon Apr 30 23:01:07 2012 @@ -78,6 +78,7 @@ <configuration> <tasks> <copy file="src/main/resources/yarn-default.xml" todir="src/site/resources"/> + <copy file="src/main/xsl/configuration.xsl" todir="src/site/resources"/> </tasks> </configuration> </execution> Modified: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/AggregatedLogFormat.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/AggregatedLogFormat.java?rev=1332461&r1=1332460&r2=1332461&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/AggregatedLogFormat.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/AggregatedLogFormat.java Mon Apr 30 23:01:07 2012 @@ -29,6 +29,9 @@ import java.io.InputStreamReader; import java.io.IOException; import java.io.Writer; import java.security.PrivilegedExceptionAction; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; import java.util.EnumSet; import java.util.HashMap; import java.util.List; @@ -112,8 +115,11 @@ public class AggregatedLogFormat { // the entire k-v format public LogValue(List<String> rootLogDirs, ContainerId containerId) { - this.rootLogDirs = rootLogDirs; + this.rootLogDirs = new ArrayList<String>(rootLogDirs); this.containerId = containerId; + + // Ensure logs are processed in lexical order + Collections.sort(this.rootLogDirs); } public void write(DataOutputStream out) throws IOException { @@ -131,7 +137,10 @@ public class AggregatedLogFormat { continue; // ContainerDir may have been deleted by the user. } - for (File logFile : containerLogDir.listFiles()) { + // Write out log files in lexical order + File[] logFiles = containerLogDir.listFiles(); + Arrays.sort(logFiles); + for (File logFile : logFiles) { // Write the logFile Type out.writeUTF(logFile.getName()); Modified: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml?rev=1332461&r1=1332460&r2=1332461&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml (original) +++ hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml Mon Apr 30 23:01:07 2012 @@ -278,6 +278,26 @@ </property> <property> + <description> + Number of seconds after an application finishes before the nodemanager's + DeletionService will delete the application's localized file directory + and log directory. + + To diagnose Yarn application problems, set this property's value large + enough (for example, to 600 = 10 minutes) to permit examination of these + directories. After changing the property's value, you must restart the + nodemanager in order for it to have an effect. + + The roots of Yarn applications' work directories is configurable with + the yarn.nodemanager.local-dirs property (see below), and the roots + of the Yarn applications' log directories is configurable with the + yarn.nodemanager.log-dirs property (see also below). + </description> + <name>yarn.nodemanager.delete.debug-delay-sec</name> + <value>0</value> + </property> + + <property> <description>Heartbeat interval to RM</description> <name>yarn.nodemanager.heartbeat.interval-ms</name> <value>1000</value> @@ -290,7 +310,12 @@ </property> <property> - <description>List of directories to store localized files in.</description> + <description>List of directories to store localized files in. An + application's localized file directory will be found in: + ${yarn.nodemanager.local-dirs}/usercache/${user}/appcache/application_${appid}. + Individual containers' work directories, called container_${contid}, will + be subdirectories of this. + </description> <name>yarn.nodemanager.local-dirs</name> <value>/tmp/nm-local-dir</value> </property> @@ -326,7 +351,13 @@ </property> <property> - <description>Where to store container logs.</description> + <description> + Where to store container logs. An application's localized log directory + will be found in ${yarn.nodemanager.log-dirs}/application_${appid}. + Individual containers' log directories will be below this, in directories + named container_{$contid}. Each container directory will contain the files + stderr, stdin, and syslog generated by that container. + </description> <name>yarn.nodemanager.log-dirs</name> <value>/tmp/logs</value> </property> Modified: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DirectoryCollection.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DirectoryCollection.java?rev=1332461&r1=1332460&r2=1332461&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DirectoryCollection.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DirectoryCollection.java Mon Apr 30 23:01:07 2012 @@ -19,10 +19,9 @@ package org.apache.hadoop.yarn.server.nodemanager; import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.Collections; import java.util.List; -import java.util.ListIterator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -41,23 +40,22 @@ class DirectoryCollection { private int numFailures; public DirectoryCollection(String[] dirs) { - localDirs = new ArrayList<String>(); - localDirs.addAll(Arrays.asList(dirs)); - failedDirs = new ArrayList<String>(); + localDirs = new CopyOnWriteArrayList<String>(dirs); + failedDirs = new CopyOnWriteArrayList<String>(); } /** * @return the current valid directories */ synchronized List<String> getGoodDirs() { - return localDirs; + return Collections.unmodifiableList(localDirs); } /** * @return the failed directories */ synchronized List<String> getFailedDirs() { - return failedDirs; + return Collections.unmodifiableList(failedDirs); } /** @@ -75,22 +73,17 @@ class DirectoryCollection { */ synchronized boolean checkDirs() { int oldNumFailures = numFailures; - ListIterator<String> it = localDirs.listIterator(); - while (it.hasNext()) { - final String dir = it.next(); + for (final String dir : localDirs) { try { DiskChecker.checkDir(new File(dir)); } catch (DiskErrorException de) { LOG.warn("Directory " + dir + " error " + de.getMessage() + ", removing from the list of valid directories."); - it.remove(); + localDirs.remove(dir); failedDirs.add(dir); numFailures++; } } - if (numFailures > oldNumFailures) { - return true; - } - return false; + return numFailures > oldNumFailures; } } Modified: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/ContainerLogsPage.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/ContainerLogsPage.java?rev=1332461&r1=1332460&r2=1332461&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/ContainerLogsPage.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/ContainerLogsPage.java Mon Apr 30 23:01:07 2012 @@ -30,6 +30,8 @@ import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; import java.util.EnumSet; import java.util.List; @@ -269,12 +271,15 @@ public class ContainerLogsPage extends N } } } else { - // Just print out the log-types + // Print out log types in lexical order List<File> containerLogsDirs = getContainerLogDirs(containerId, dirsHandler); + Collections.sort(containerLogsDirs); boolean foundLogFile = false; for (File containerLogsDir : containerLogsDirs) { - for (File logFile : containerLogsDir.listFiles()) { + File[] logFiles = containerLogsDir.listFiles(); + Arrays.sort(logFiles); + for (File logFile : logFiles) { foundLogFile = true; html.p() .a(url("containerlogs", $(CONTAINER_ID), $(APP_OWNER), Modified: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/NMWebServices.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/NMWebServices.java?rev=1332461&r1=1332460&r2=1332461&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/NMWebServices.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/NMWebServices.java Mon Apr 30 23:01:07 2012 @@ -19,6 +19,7 @@ package org.apache.hadoop.yarn.server.no import java.util.Map.Entry; +import javax.servlet.http.HttpServletResponse; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; @@ -58,8 +59,11 @@ public class NMWebServices { private static RecordFactory recordFactory = RecordFactoryProvider .getRecordFactory(null); + private @javax.ws.rs.core.Context + HttpServletResponse response; + @javax.ws.rs.core.Context - UriInfo uriInfo; + UriInfo uriInfo; @Inject public NMWebServices(final Context nm, final ResourceView view, @@ -69,6 +73,11 @@ public class NMWebServices { this.webapp = webapp; } + private void init() { + //clear content type + response.setContentType(null); + } + @GET @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public NodeInfo get() { @@ -79,6 +88,7 @@ public class NMWebServices { @Path("/info") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public NodeInfo getNodeInfo() { + init(); return new NodeInfo(this.nmContext, this.rview); } @@ -87,6 +97,7 @@ public class NMWebServices { @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public AppsInfo getNodeApps(@QueryParam("state") String stateQuery, @QueryParam("user") String userQuery) { + init(); AppsInfo allApps = new AppsInfo(); for (Entry<ApplicationId, Application> entry : this.nmContext .getApplications().entrySet()) { @@ -116,6 +127,7 @@ public class NMWebServices { @Path("/apps/{appid}") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public AppInfo getNodeApp(@PathParam("appid") String appId) { + init(); ApplicationId id = ConverterUtils.toApplicationId(recordFactory, appId); if (id == null) { throw new NotFoundException("app with id " + appId + " not found"); @@ -132,6 +144,7 @@ public class NMWebServices { @Path("/containers") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public ContainersInfo getNodeContainers() { + init(); ContainersInfo allContainers = new ContainersInfo(); for (Entry<ContainerId, Container> entry : this.nmContext.getContainers() .entrySet()) { @@ -151,6 +164,7 @@ public class NMWebServices { @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public ContainerInfo getNodeContainer(@PathParam("containerid") String id) { ContainerId containerId = null; + init(); try { containerId = ConverterUtils.toContainerId(id); } catch (Exception e) { Modified: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/NodesPage.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/NodesPage.java?rev=1332461&r1=1332460&r2=1332461&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/NodesPage.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/NodesPage.java Mon Apr 30 23:01:07 2012 @@ -121,7 +121,8 @@ class NodesPage extends RmView { row.td().a("http://" + httpAddress, httpAddress)._(); } row.td(info.getHealthStatus()). - td(Times.format(info.getLastHealthUpdate())). + td().br().$title(String.valueOf(info.getLastHealthUpdate()))._(). + _(Times.format(info.getLastHealthUpdate()))._(). td(info.getHealthReport()). td(String.valueOf(info.getNumContainers())). td().br().$title(String.valueOf(usedMemory))._(). @@ -153,10 +154,12 @@ class NodesPage extends RmView { } private String nodesTableInit() { - StringBuilder b = tableInit().append(",aoColumnDefs:["); - b.append("{'bSearchable':false, 'aTargets': [7]} ,"); - b.append("{'sType':'title-numeric', 'bSearchable':false, " + - "'aTargets': [ 8, 9] }]}"); + StringBuilder b = tableInit().append(", aoColumnDefs: ["); + b.append("{'bSearchable': false, 'aTargets': [ 7 ]}"); + b.append(", {'sType': 'title-numeric', 'bSearchable': false, " + + "'aTargets': [ 8, 9 ] }"); + b.append(", {'sType': 'title-numeric', 'aTargets': [ 5 ]}"); + b.append("]}"); return b.toString(); } } Modified: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java?rev=1332461&r1=1332460&r2=1332461&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java Mon Apr 30 23:01:07 2012 @@ -23,6 +23,7 @@ import java.util.Collection; import java.util.concurrent.ConcurrentMap; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; @@ -77,6 +78,8 @@ public class RMWebServices { .getRecordFactory(null); private final ApplicationACLsManager aclsManager; + private @Context HttpServletResponse response; + @Inject public RMWebServices(final ResourceManager rm, final ApplicationACLsManager aclsManager) { @@ -100,6 +103,11 @@ public class RMWebServices { return true; } + private void init() { + //clear content type + response.setContentType(null); + } + @GET @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public ClusterInfo get() { @@ -110,6 +118,7 @@ public class RMWebServices { @Path("/info") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public ClusterInfo getClusterInfo() { + init(); return new ClusterInfo(this.rm); } @@ -117,6 +126,7 @@ public class RMWebServices { @Path("/metrics") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public ClusterMetricsInfo getClusterMetricsInfo() { + init(); return new ClusterMetricsInfo(this.rm, this.rm.getRMContext()); } @@ -124,6 +134,7 @@ public class RMWebServices { @Path("/scheduler") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public SchedulerTypeInfo getSchedulerInfo() { + init(); ResourceScheduler rs = rm.getResourceScheduler(); SchedulerInfo sinfo; if (rs instanceof CapacityScheduler) { @@ -143,6 +154,7 @@ public class RMWebServices { @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public NodesInfo getNodes(@QueryParam("state") String filterState, @QueryParam("healthy") String healthState) { + init(); ResourceScheduler sched = this.rm.getResourceScheduler(); if (sched == null) { throw new NotFoundException("Null ResourceScheduler instance"); @@ -197,6 +209,7 @@ public class RMWebServices { @Path("/nodes/{nodeId}") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public NodeInfo getNode(@PathParam("nodeId") String nodeId) { + init(); if (nodeId == null || nodeId.isEmpty()) { throw new NotFoundException("nodeId, " + nodeId + ", is empty or null"); } @@ -246,6 +259,7 @@ public class RMWebServices { long fBegin = 0; long fEnd = Long.MAX_VALUE; + init(); if (count != null && !count.isEmpty()) { checkCount = true; countNum = Long.parseLong(count); @@ -355,6 +369,7 @@ public class RMWebServices { @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public AppInfo getApp(@Context HttpServletRequest hsr, @PathParam("appid") String appId) { + init(); if (appId == null || appId.isEmpty()) { throw new NotFoundException("appId, " + appId + ", is empty or null"); } Modified: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/TestContainerManagerSecurity.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/TestContainerManagerSecurity.java?rev=1332461&r1=1332460&r2=1332461&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/TestContainerManagerSecurity.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/TestContainerManagerSecurity.java Mon Apr 30 23:01:07 2012 @@ -47,6 +47,7 @@ import org.apache.hadoop.io.DataInputBuf import org.apache.hadoop.io.Text; import org.apache.hadoop.net.NetUtils; import org.apache.hadoop.security.AccessControlException; +import org.apache.hadoop.security.SecurityUtil; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.security.token.Token; import org.apache.hadoop.yarn.api.AMRMProtocol; @@ -401,7 +402,8 @@ public class TestContainerManagerSecurit appToken.setService(new Text(schedulerAddr.getHostName() + ":" + schedulerAddr.getPort())); currentUser.addToken(appToken); - + SecurityUtil.setTokenService(appToken, schedulerAddr); + AMRMProtocol scheduler = currentUser .doAs(new PrivilegedAction<AMRMProtocol>() { @Override Propchange: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/c++/ ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-mapreduce-project/src/c++:r1329944-1332459 Propchange: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/contrib/ ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-mapreduce-project/src/contrib:r1329944-1332459 Propchange: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/contrib/block_forensics/ ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-mapreduce-project/src/contrib/block_forensics:r1329944-1332459 Propchange: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/contrib/build-contrib.xml ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-mapreduce-project/src/contrib/build-contrib.xml:r1329944-1332459 Propchange: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/contrib/build.xml ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-mapreduce-project/src/contrib/build.xml:r1329944-1332459 Propchange: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/contrib/data_join/ ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-mapreduce-project/src/contrib/data_join:r1329944-1332459 Propchange: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/contrib/eclipse-plugin/ ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-mapreduce-project/src/contrib/eclipse-plugin:r1329944-1332459 Propchange: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/contrib/index/ ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-mapreduce-project/src/contrib/index:r1329944-1332459 Propchange: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/contrib/vaidya/ ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-mapreduce-project/src/contrib/vaidya:r1329944-1332459 Propchange: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/examples/ ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-mapreduce-project/src/examples:r1329944-1332459 Propchange: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/java/ ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-mapreduce-project/src/java:r1329944-1332459 Propchange: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/test/mapred/ ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-mapreduce-project/src/test/mapred:r1329944-1332459 Propchange: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/test/mapred/org/apache/hadoop/fs/ ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-mapreduce-project/src/test/mapred/org/apache/hadoop/fs:r1329944-1332459 Propchange: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/test/mapred/org/apache/hadoop/hdfs/ ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-mapreduce-project/src/test/mapred/org/apache/hadoop/hdfs:r1329944-1332459 Propchange: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/test/mapred/org/apache/hadoop/ipc/ ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-mapreduce-project/src/test/mapred/org/apache/hadoop/ipc:r1329944-1332459 Propchange: hadoop/common/branches/HDFS-3092/hadoop-mapreduce-project/src/webapps/job/ ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-mapreduce-project/src/webapps/job:r1329944-1332459