diff --git a/hadoop-tools/hadoop-sls/src/main/bin/rumen2sls.sh b/hadoop-tools/hadoop-sls/src/main/bin/rumen2sls.sh index 0bd291b..d3d1d13 100644 --- a/hadoop-tools/hadoop-sls/src/main/bin/rumen2sls.sh +++ b/hadoop-tools/hadoop-sls/src/main/bin/rumen2sls.sh @@ -55,6 +55,7 @@ function parse_args() function calculate_classpath() { + hadoop_add_to_classpath_tools hadoop-sls hadoop_add_to_classpath_tools hadoop-rumen } diff --git a/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/RumenToSLSConverter.java b/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/RumenToSLSConverter.java index 0d0745c..885e7a6 100644 --- a/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/RumenToSLSConverter.java +++ b/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/RumenToSLSConverter.java @@ -161,8 +161,8 @@ private static void generateSLSNodeFile(String outputFile) @SuppressWarnings("unchecked") private static Map createSLSJob(Map rumenJob) { Map json = new LinkedHashMap(); - long jobStart = (Long) rumenJob.get("submitTime"); - long jobFinish = (Long) rumenJob.get("finishTime"); + long jobStart = Long.valueOf(rumenJob.get("submitTime").toString()); + long jobFinish = Long.valueOf(rumenJob.get("finishTime").toString()); String jobId = rumenJob.get("jobID").toString(); String queue = rumenJob.get("queue").toString(); String user = rumenJob.get("user").toString(); @@ -206,9 +206,16 @@ private static List createSLSTasks(String taskType, Map rumenTask = (Map) e; for (Object ee : (List) rumenTask.get("attempts")) { Map rumenAttempt = (Map) ee; - long taskStart = (Long) rumenAttempt.get("startTime"); - long taskFinish = (Long) rumenAttempt.get("finishTime"); + long taskStart = Long.valueOf(rumenAttempt.get("startTime").toString()); + long taskFinish = Long.valueOf( + rumenAttempt.get("finishTime").toString()); String hostname = (String) rumenAttempt.get("hostName"); + + // Sanity check: + if (null == hostname || hostname.isEmpty()) { + continue; + } + taskStart = taskStart - baseline + offset; taskFinish = taskFinish - baseline + offset; Map task = new LinkedHashMap(); @@ -218,6 +225,7 @@ private static List createSLSTasks(String taskType, task.put("container.priority", priority); task.put("container.type", taskType); array.add(task); + String rackHost[] = SLSUtils.getRackHostName(hostname); if (rackNodeMap.containsKey(rackHost[0])) { rackNodeMap.get(rackHost[0]).add(rackHost[1]);