azkaban-developers

Merge branch 'master' into job-stats

1/16/2014 12:20:42 AM

Details

src/less/Makefile 25(+21 -4)

diff --git a/src/less/Makefile b/src/less/Makefile
index a3f6fdd..052a96c 100644
--- a/src/less/Makefile
+++ b/src/less/Makefile
@@ -1,3 +1,4 @@
+LESSC = lessc
 OBJ_DIR = obj
 OBJ = \
 	$(OBJ_DIR)/azkaban.css \
@@ -5,12 +6,28 @@ OBJ = \
 
 all: $(OBJ)
 
-$(OBJ_DIR)/%.css: %.less
-	lessc $< $@
+azkaban_css_DEPS = \
+	azkaban.less \
+	base.less \
+	context-menu.less \
+	flow.less \
+	header.less \
+	job.less \
+	login.less \
+	log.less \
+	navbar.less \
+	non-responsive.less \
+	off-canvas.less \
+	project.less \
+	tables.less
+
+$(OBJ_DIR)/azkaban.css: $(azkaban_css_DEPS)
+	$(LESSC) $< $@
+
+$(OBJ_DIR)/azkaban-graph.css: azkaban-graph.less
+	$(LESSC) $< $@
 
 clean:
 	rm -rf $(OBJ_DIR)
 
-.SUFFIXES: .less .css
-
 .PHONY: all clean

src/tl/Makefile 3(+2 -1)

diff --git a/src/tl/Makefile b/src/tl/Makefile
index a9c8028..1670e6a 100644
--- a/src/tl/Makefile
+++ b/src/tl/Makefile
@@ -1,3 +1,4 @@
+DUSTC = dustc
 OBJ_DIR = obj
 OBJ = \
 	$(OBJ_DIR)/flowsummary.js \
@@ -7,7 +8,7 @@ OBJ = \
 all: $(OBJ)
 
 $(OBJ_DIR)/%.js: %.tl
-	mkdir -p $(OBJ_DIR) && dustc --name=$(basename $<) $< $@
+	mkdir -p $(OBJ_DIR) && $(DUSTC) --name=$(basename $<) $< $@
 
 clean:
 	rm -rf $(OBJ_DIR)
diff --git a/src/web/js/azkaban/model/log-data.js b/src/web/js/azkaban/model/log-data.js
index 2e21386..2fe3ac5 100644
--- a/src/web/js/azkaban/model/log-data.js
+++ b/src/web/js/azkaban/model/log-data.js
@@ -22,7 +22,7 @@ azkaban.LogDataModel = Backbone.Model.extend({
     HIVE_NUM_MAP_REDUCE_JOBS_STRING: "Total MapReduce jobs = ",
     HIVE_MAP_REDUCE_JOB_START: "Starting Job",
     HIVE_MAP_REDUCE_JOBS_SUMMARY: "MapReduce Jobs Launched:",
-    HIVE_MAP_REDUCE_SUMMARY_REGEX: /Job (\d+): Map: (\d+)  Reduce: (\d+)   HDFS Read: (\d+) HDFS Write: (\d+)/,
+    HIVE_MAP_REDUCE_SUMMARY_REGEX: /Job (\d+):\s+Map: (\d+)\s+Reduce: (\d+)\s+(?:Cumulative CPU: (.+?))?\s+HDFS Read: (\d+)\s+HDFS Write: (\d+)/,
 
     initialize: function() {
         this.set("offset", 0 );
@@ -232,7 +232,7 @@ azkaban.LogDataModel = Backbone.Model.extend({
             var numMRJobs = 0;
             while (i < numLines) {
                 line = lines[i];
-                if (line.contains(this.HIVE_NUM_MAP_REDUCE_JOBS_STRING)) {
+                if (line.indexOf(this.HIVE_NUM_MAP_REDUCE_JOBS_STRING) !== -1) {
                     // query involves map reduce jobs
                     var numMRJobs = parseInt(line.substring(this.HIVE_NUM_MAP_REDUCE_JOBS_STRING.length),10);
                     i++;
@@ -240,7 +240,7 @@ azkaban.LogDataModel = Backbone.Model.extend({
                     // get the map reduce jobs summary
                     while (i < numLines) {
                         line = lines[i];
-                        if (line.contains(this.HIVE_MAP_REDUCE_JOBS_SUMMARY)) {
+                        if (line.indexOf(this.HIVE_MAP_REDUCE_JOBS_SUMMARY) !== -1) {
                             // job summary table found
                             i++;
                             
@@ -264,6 +264,13 @@ azkaban.LogDataModel = Backbone.Model.extend({
                                     job.push(match[3]);
                                     job.push(match[4]);
                                     job.push(match[5]);
+                                    job.push(match[6]);
+
+                                    if (match[7]) {
+                                        this.set("hasCumulativeCPU", true);
+                                        job.push(match[7]);
+                                    }
+
                                     queryJobs.push(job);
                                     previousJob = currJob;
                                     numJobsSeen++;
@@ -281,7 +288,7 @@ azkaban.LogDataModel = Backbone.Model.extend({
                     } 
                     break;
                 }
-                else if (line.contains(this.HIVE_PARSING_START)) {
+                else if (line.indexOf(this.HIVE_PARSING_START) !== -1) {
                     if (numMRJobs === 0) {
                         hiveQueryJobs.push(null);
                     }
diff --git a/src/web/js/azkaban/view/job-details.js b/src/web/js/azkaban/view/job-details.js
index e3fbd00..ab77045 100644
--- a/src/web/js/azkaban/view/job-details.js
+++ b/src/web/js/azkaban/view/job-details.js
@@ -136,9 +136,15 @@ azkaban.JobSummaryView = Backbone.View.extend({
 		// Set up table column headers
 		var header = $("#hiveTableHeader");
 		var tr = document.createElement("tr");
-		var headers = ["Query","Job","Map","Reduce","HDFS Read","HDFS Write"];
+
+		var headers;
+		if (this.model.get("hasCumulativeCPU")) {
+			headers = ["Query","Job","Map","Reduce","Cumulative CPU","HDFS Read","HDFS Write"];
+		} else {
+			headers = ["Query","Job","Map","Reduce","HDFS Read","HDFS Write"];
+		}
+
 		var i;
-		
 		for (i = 0; i < headers.length; i++) {
 			var th = document.createElement("th");
 			$(th).text(headers[i]);