|
@@ -17,90 +17,66 @@
|
|
|
*/
|
|
|
package org.apache.hadoop.yarn.sls.scheduler;
|
|
|
|
|
|
+import java.io.BufferedWriter;
|
|
|
+import java.io.File;
|
|
|
+import java.io.FileOutputStream;
|
|
|
+import java.io.IOException;
|
|
|
+import java.io.OutputStreamWriter;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.HashSet;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Locale;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.SortedMap;
|
|
|
+import java.util.concurrent.ConcurrentHashMap;
|
|
|
+import java.util.concurrent.ScheduledExecutorService;
|
|
|
+import java.util.concurrent.ScheduledThreadPoolExecutor;
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
+import java.util.concurrent.locks.Lock;
|
|
|
+import java.util.concurrent.locks.ReentrantLock;
|
|
|
+
|
|
|
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
|
|
import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
|
|
-import org.apache.hadoop.util.ShutdownHookManager;
|
|
|
-import org.apache.hadoop.yarn.sls.SLSRunner;
|
|
|
-import org.apache.hadoop.yarn.sls.conf.SLSConfiguration;
|
|
|
-import org.apache.hadoop.yarn.sls.web.SLSWebApp;
|
|
|
-import com.codahale.metrics.Counter;
|
|
|
-import com.codahale.metrics.CsvReporter;
|
|
|
-import com.codahale.metrics.Gauge;
|
|
|
-import com.codahale.metrics.Histogram;
|
|
|
-import com.codahale.metrics.MetricRegistry;
|
|
|
-import com.codahale.metrics.SlidingWindowReservoir;
|
|
|
-import com.codahale.metrics.Timer;
|
|
|
-
|
|
|
-import org.apache.hadoop.security.AccessControlException;
|
|
|
-import org.apache.hadoop.security.UserGroupInformation;
|
|
|
import org.apache.hadoop.conf.Configurable;
|
|
|
import org.apache.hadoop.conf.Configuration;
|
|
|
import org.apache.hadoop.util.ReflectionUtils;
|
|
|
+import org.apache.hadoop.util.ShutdownHookManager;
|
|
|
import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
|
|
|
import org.apache.hadoop.yarn.api.records.ApplicationId;
|
|
|
-import org.apache.hadoop.yarn.api.records.ApplicationResourceUsageReport;
|
|
|
import org.apache.hadoop.yarn.api.records.Container;
|
|
|
import org.apache.hadoop.yarn.api.records.ContainerExitStatus;
|
|
|
import org.apache.hadoop.yarn.api.records.ContainerId;
|
|
|
import org.apache.hadoop.yarn.api.records.ContainerStatus;
|
|
|
-import org.apache.hadoop.yarn.api.records.NodeId;
|
|
|
-import org.apache.hadoop.yarn.api.records.QueueInfo;
|
|
|
-import org.apache.hadoop.yarn.api.records.QueueUserACLInfo;
|
|
|
-import org.apache.hadoop.yarn.api.records.QueueACL;
|
|
|
import org.apache.hadoop.yarn.api.records.Resource;
|
|
|
import org.apache.hadoop.yarn.api.records.ResourceRequest;
|
|
|
-import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
|
|
|
-import org.apache.hadoop.yarn.server.resourcemanager.recovery.RMStateStore;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.rmcontainer.RMContainer;
|
|
|
-import org.apache.hadoop.yarn.server.resourcemanager.rmnode
|
|
|
- .UpdatedContainerInfo;
|
|
|
+import org.apache.hadoop.yarn.server.resourcemanager.rmnode.UpdatedContainerInfo;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.Allocation;
|
|
|
-import org.apache.hadoop.yarn.server.resourcemanager.scheduler.PreemptableResourceScheduler;
|
|
|
-import org.apache.hadoop.yarn.server.resourcemanager.scheduler.Queue;
|
|
|
-import org.apache.hadoop.yarn.server.resourcemanager.scheduler.QueueMetrics;
|
|
|
-import org.apache.hadoop.yarn.server.resourcemanager.scheduler
|
|
|
- .ResourceScheduler;
|
|
|
-import org.apache.hadoop.yarn.server.resourcemanager.scheduler
|
|
|
- .SchedulerAppReport;
|
|
|
+import org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerAppReport;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerApplication;
|
|
|
-import org.apache.hadoop.yarn.server.resourcemanager.scheduler
|
|
|
- .SchedulerNodeReport;
|
|
|
-import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity
|
|
|
- .CapacityScheduler;
|
|
|
-
|
|
|
+import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.AppAttemptAddedSchedulerEvent;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.AppAttemptRemovedSchedulerEvent;
|
|
|
-import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event
|
|
|
- .NodeUpdateSchedulerEvent;
|
|
|
-import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event
|
|
|
- .SchedulerEvent;
|
|
|
-import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event
|
|
|
- .SchedulerEventType;
|
|
|
-import org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair
|
|
|
- .FairScheduler;
|
|
|
-import org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo
|
|
|
- .FifoScheduler;
|
|
|
+import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.NodeUpdateSchedulerEvent;
|
|
|
+import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.SchedulerEvent;
|
|
|
+import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.SchedulerEventType;
|
|
|
+import org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler;
|
|
|
+import org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo.FifoScheduler;
|
|
|
+import org.apache.hadoop.yarn.sls.SLSRunner;
|
|
|
+import org.apache.hadoop.yarn.sls.conf.SLSConfiguration;
|
|
|
+import org.apache.hadoop.yarn.sls.web.SLSWebApp;
|
|
|
import org.apache.hadoop.yarn.util.resource.Resources;
|
|
|
import org.apache.log4j.Logger;
|
|
|
|
|
|
-import java.io.BufferedWriter;
|
|
|
-import java.io.File;
|
|
|
-import java.io.FileWriter;
|
|
|
-import java.io.IOException;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.HashSet;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Locale;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Set;
|
|
|
-import java.util.SortedMap;
|
|
|
-import java.util.concurrent.ConcurrentHashMap;
|
|
|
-import java.util.concurrent.ScheduledExecutorService;
|
|
|
-import java.util.concurrent.ScheduledThreadPoolExecutor;
|
|
|
-import java.util.concurrent.TimeUnit;
|
|
|
-import java.util.concurrent.locks.Lock;
|
|
|
-import java.util.concurrent.locks.ReentrantLock;
|
|
|
+import com.codahale.metrics.Counter;
|
|
|
+import com.codahale.metrics.CsvReporter;
|
|
|
+import com.codahale.metrics.Gauge;
|
|
|
+import com.codahale.metrics.Histogram;
|
|
|
+import com.codahale.metrics.MetricRegistry;
|
|
|
+import com.codahale.metrics.SlidingWindowReservoir;
|
|
|
+import com.codahale.metrics.Timer;
|
|
|
|
|
|
@Private
|
|
|
@Unstable
|
|
@@ -490,8 +466,9 @@ public class SLSCapacityScheduler extends CapacityScheduler implements
|
|
|
TimeUnit.MILLISECONDS);
|
|
|
|
|
|
// application running information
|
|
|
- jobRuntimeLogBW = new BufferedWriter(
|
|
|
- new FileWriter(metricsOutputDir + "/jobruntime.csv"));
|
|
|
+ jobRuntimeLogBW =
|
|
|
+ new BufferedWriter(new OutputStreamWriter(new FileOutputStream(
|
|
|
+ metricsOutputDir + "/jobruntime.csv"), "UTF-8"));
|
|
|
jobRuntimeLogBW.write("JobID,real_start_time,real_end_time," +
|
|
|
"simulate_start_time,simulate_end_time" + EOL);
|
|
|
jobRuntimeLogBW.flush();
|
|
@@ -695,8 +672,9 @@ public class SLSCapacityScheduler extends CapacityScheduler implements
|
|
|
private boolean firstLine = true;
|
|
|
public MetricsLogRunnable() {
|
|
|
try {
|
|
|
- metricsLogBW = new BufferedWriter(
|
|
|
- new FileWriter(metricsOutputDir + "/realtimetrack.json"));
|
|
|
+ metricsLogBW =
|
|
|
+ new BufferedWriter(new OutputStreamWriter(new FileOutputStream(
|
|
|
+ metricsOutputDir + "/realtimetrack.json"), "UTF-8"));
|
|
|
metricsLogBW.write("[");
|
|
|
} catch (IOException e) {
|
|
|
e.printStackTrace();
|