Explorar o código

AMBARI-2189. Hadoop2 Monitoring: MapReduce2 does not have service page. (srimanth)

git-svn-id: https://svn.apache.org/repos/asf/incubator/ambari/trunk@1485542 13f79535-47bb-0310-9956-ffa450edef68
Srimanth %!s(int64=12) %!d(string=hai) anos
pai
achega
64d78f8157

+ 3 - 0
CHANGES.txt

@@ -12,6 +12,9 @@ Trunk (unreleased changes):
 
  NEW FEATURES
 
+ AMBARI-2189. Hadoop2 Monitoring: MapReduce2 does not have service 
+ page. (srimanth)
+
  AMBARI-2168. Integrate installing and starting Hadoop 2.0 Services.
  (yusaku)
 

+ 2 - 2
ambari-web/app/assets/data/wizard/stack/hdp/version/2.0.1.json

@@ -2,11 +2,11 @@
   "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices?fields=StackServices",
   "items" : [
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2",
       "StackServices" : {
         "user_name" : "mapred",
         "stack_version" : "2.0.1",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "comments" : "Apache Hadoop NextGen MapReduce (client libraries)",
         "service_version" : "2.0.3.22-1"

+ 91 - 91
ambari-web/app/assets/data/wizard/stack/hdp/version2.0.1/MAPREDUCEv2.json

@@ -1,542 +1,542 @@
 {
-  "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations?fields=*",
+  "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations?fields=*",
   "items" : [
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.job.shuffle.merge.percent",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.job.shuffle.merge.percent",
       "StackConfigurations" : {
         "property_description" : "The usage threshold at which an in-memory merge will be\n  initiated, expressed as a percentage of the total memory allocated to\n  storing in-memory map outputs, as defined by\n  mapred.job.shuffle.input.buffer.percent.\n  ",
         "property_value" : "0.66",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.job.shuffle.merge.percent",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.inmem.merge.threshold",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.inmem.merge.threshold",
       "StackConfigurations" : {
         "property_description" : "The threshold, in terms of the number of files\n  for the in-memory merge process. When we accumulate threshold number of files\n  we initiate the in-memory merge and spill to disk. A value of 0 or less than\n  0 indicates we want to DON'T have any threshold and instead depend only on\n  the ramfs's memory consumption to trigger the merge.\n  ",
         "property_value" : "1000",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.inmem.merge.threshold",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.jobtracker.blacklist.fault-bucket-width",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.jobtracker.blacklist.fault-bucket-width",
       "StackConfigurations" : {
         "property_description" : "\n    15-minute bucket size (value is in minutes)\n  ",
         "property_value" : "15",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.jobtracker.blacklist.fault-bucket-width",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/io.sort.factor",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/io.sort.factor",
       "StackConfigurations" : {
         "property_description" : "No description",
         "property_value" : "100",
         "stack_version" : "2.0.1",
         "property_name" : "io.sort.factor",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.queue.default.acl-administer-jobs",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.queue.default.acl-administer-jobs",
       "StackConfigurations" : {
         "property_description" : null,
         "property_value" : "*",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.queue.default.acl-administer-jobs",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-queue-acls.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.queue.default.acl-submit-job",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.queue.default.acl-submit-job",
       "StackConfigurations" : {
         "property_description" : null,
         "property_value" : "*",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.queue.default.acl-submit-job",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-queue-acls.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.jobtracker.completeuserjobs.maximum",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.jobtracker.completeuserjobs.maximum",
       "StackConfigurations" : {
         "property_description" : null,
         "property_value" : "5",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.jobtracker.completeuserjobs.maximum",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapreduce.jobtracker.split.metainfo.maxsize",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapreduce.jobtracker.split.metainfo.maxsize",
       "StackConfigurations" : {
         "property_description" : "If the size of the split metainfo file is larger than this, the JobTracker will fail the job during\n    initialize.\n   ",
         "property_value" : "50000000",
         "stack_version" : "2.0.1",
         "property_name" : "mapreduce.jobtracker.split.metainfo.maxsize",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.jobtracker.restart.recover",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.jobtracker.restart.recover",
       "StackConfigurations" : {
         "property_description" : "\"true\" to enable (job) recovery upon restart,\n               \"false\" to start afresh\n    ",
         "property_value" : "false",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.jobtracker.restart.recover",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.healthChecker.interval",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.healthChecker.interval",
       "StackConfigurations" : {
         "property_description" : null,
         "property_value" : "135000",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.healthChecker.interval",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.job.shuffle.input.buffer.percent",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.job.shuffle.input.buffer.percent",
       "StackConfigurations" : {
         "property_description" : "The percentage of memory to be allocated from the maximum heap\n  size to storing map outputs during the shuffle.\n  ",
         "property_value" : "0.7",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.job.shuffle.input.buffer.percent",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.job.reuse.jvm.num.tasks",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.job.reuse.jvm.num.tasks",
       "StackConfigurations" : {
         "property_description" : "\n    How many tasks to run per jvm. If set to -1, there is no limit\n  ",
         "property_value" : "1",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.job.reuse.jvm.num.tasks",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapreduce.jobhistory.done-dir",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapreduce.jobhistory.done-dir",
       "StackConfigurations" : {
         "property_description" : "Directory where history files are managed by the MR JobHistory Server.",
         "property_value" : "/mr-history/done",
         "stack_version" : "2.0.1",
         "property_name" : "mapreduce.jobhistory.done-dir",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapreduce.jobhistory.intermediate-done-dir",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapreduce.jobhistory.intermediate-done-dir",
       "StackConfigurations" : {
         "property_description" : "Directory where history files are written by MapReduce jobs.",
         "property_value" : "/mr-history/tmp",
         "stack_version" : "2.0.1",
         "property_name" : "mapreduce.jobhistory.intermediate-done-dir",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.job.tracker.persist.jobstatus.hours",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.job.tracker.persist.jobstatus.hours",
       "StackConfigurations" : {
         "property_description" : "The number of hours job status information is persisted in DFS.\n    The job status information will be available after it drops of the memory\n    queue and between jobtracker restarts. With a zero value the job status\n    information is not persisted at all in DFS.\n  ",
         "property_value" : "1",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.job.tracker.persist.jobstatus.hours",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.system.dir",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.system.dir",
       "StackConfigurations" : {
         "property_description" : "No description",
         "property_value" : "/mapred/system",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.system.dir",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.queue.names",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.queue.names",
       "StackConfigurations" : {
         "property_description" : " Comma separated list of queues configured for this jobtracker.",
         "property_value" : "default",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.queue.names",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.job.tracker.history.completed.location",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.job.tracker.history.completed.location",
       "StackConfigurations" : {
         "property_description" : "No description",
         "property_value" : "/mapred/history/done",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.job.tracker.history.completed.location",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapreduce.shuffle.port",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapreduce.shuffle.port",
       "StackConfigurations" : {
         "property_description" : "Default port that the ShuffleHandler will run on. ShuffleHandler is a service run at the NodeManager to facilitate transfers of intermediate Map outputs to requesting Reducers.",
         "property_value" : "8081",
         "stack_version" : "2.0.1",
         "property_name" : "mapreduce.shuffle.port",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.job.tracker.persist.jobstatus.active",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.job.tracker.persist.jobstatus.active",
       "StackConfigurations" : {
         "property_description" : "Indicates if persistency of job status information is\n  active or not.\n  ",
         "property_value" : "false",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.job.tracker.persist.jobstatus.active",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.map.tasks.speculative.execution",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.map.tasks.speculative.execution",
       "StackConfigurations" : {
         "property_description" : "If true, then multiple instances of some map tasks\n               may be executed in parallel.",
         "property_value" : "false",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.map.tasks.speculative.execution",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapreduce.fileoutputcommitter.marksuccessfuljobs",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapreduce.fileoutputcommitter.marksuccessfuljobs",
       "StackConfigurations" : {
         "property_description" : null,
         "property_value" : "false",
         "stack_version" : "2.0.1",
         "property_name" : "mapreduce.fileoutputcommitter.marksuccessfuljobs",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.jobtracker.retirejob.interval",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.jobtracker.retirejob.interval",
       "StackConfigurations" : {
         "property_description" : null,
         "property_value" : "21600000",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.jobtracker.retirejob.interval",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapreduce.jobtracker.staging.root.dir",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapreduce.jobtracker.staging.root.dir",
       "StackConfigurations" : {
         "property_description" : "The Path prefix for where the staging directories should be placed. The next level is always the user's\n   name. It is a path in the default file system.",
         "property_value" : "/user",
         "stack_version" : "2.0.1",
         "property_name" : "mapreduce.jobtracker.staging.root.dir",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.healthChecker.script.timeout",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.healthChecker.script.timeout",
       "StackConfigurations" : {
         "property_description" : null,
         "property_value" : "60000",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.healthChecker.script.timeout",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.max.tracker.blacklists",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.max.tracker.blacklists",
       "StackConfigurations" : {
         "property_description" : "\n    if node is reported blacklisted by 16 successful jobs within timeout-window, it will be graylisted\n  ",
         "property_value" : "16",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.max.tracker.blacklists",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.output.compression.type",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.output.compression.type",
       "StackConfigurations" : {
         "property_description" : "If the job outputs are to compressed as SequenceFiles, how should\n               they be compressed? Should be one of NONE, RECORD or BLOCK.\n  ",
         "property_value" : "BLOCK",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.output.compression.type",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.jobtracker.retirejob.check",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.jobtracker.retirejob.check",
       "StackConfigurations" : {
         "property_description" : null,
         "property_value" : "10000",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.jobtracker.retirejob.check",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.child.root.logger",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.child.root.logger",
       "StackConfigurations" : {
         "property_description" : null,
         "property_value" : "INFO,TLA",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.child.root.logger",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/hadoop.job.history.user.location",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/hadoop.job.history.user.location",
       "StackConfigurations" : {
         "property_description" : null,
         "property_value" : "none",
         "stack_version" : "2.0.1",
         "property_name" : "hadoop.job.history.user.location",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.task.timeout",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.task.timeout",
       "StackConfigurations" : {
         "property_description" : "The number of milliseconds before a task will be\n  terminated if it neither reads an input, writes an output, nor\n  updates its status string.\n  ",
         "property_value" : "600000",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.task.timeout",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.reduce.tasks.speculative.execution",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.reduce.tasks.speculative.execution",
       "StackConfigurations" : {
         "property_description" : "If true, then multiple instances of some reduce tasks\n               may be executed in parallel.",
         "property_value" : "false",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.reduce.tasks.speculative.execution",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.job.tracker.handler.count",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.job.tracker.handler.count",
       "StackConfigurations" : {
         "property_description" : "\n    The number of server threads for the JobTracker. This should be roughly\n    4% of the number of tasktracker nodes.\n    ",
         "property_value" : "50",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.job.tracker.handler.count",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.reduce.slowstart.completed.maps",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.reduce.slowstart.completed.maps",
       "StackConfigurations" : {
         "property_description" : null,
         "property_value" : "0.05",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.reduce.slowstart.completed.maps",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.job.reduce.input.buffer.percent",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.job.reduce.input.buffer.percent",
       "StackConfigurations" : {
         "property_description" : "The percentage of memory- relative to the maximum heap size- to\n  retain map outputs during the reduce. When the shuffle is concluded, any\n  remaining map outputs in memory must consume less than this threshold before\n  the reduce can begin.\n  ",
         "property_value" : "0.0",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.job.reduce.input.buffer.percent",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapreduce.reduce.input.limit",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapreduce.reduce.input.limit",
       "StackConfigurations" : {
         "property_description" : "The limit on the input size of the reduce. (This value\n  is 10 Gb.)  If the estimated input size of the reduce is greater than\n  this value, job is failed. A value of -1 means that there is no limit\n  set. ",
         "property_value" : "10737418240",
         "stack_version" : "2.0.1",
         "property_name" : "mapreduce.reduce.input.limit",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/io.sort.record.percent",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/io.sort.record.percent",
       "StackConfigurations" : {
         "property_description" : "No description",
         "property_value" : ".2",
         "stack_version" : "2.0.1",
         "property_name" : "io.sort.record.percent",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.tasktracker.tasks.sleeptime-before-sigkill",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.tasktracker.tasks.sleeptime-before-sigkill",
       "StackConfigurations" : {
         "property_description" : "Normally, this is the amount of time before killing\n  processes, and the recommended-default is 5.000 seconds - a value of\n  5000 here.  In this case, we are using it solely to blast tasks before\n  killing them, and killing them very quickly (1/4 second) to guarantee\n  that we do not leave VMs around for later jobs.\n  ",
         "property_value" : "250",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.tasktracker.tasks.sleeptime-before-sigkill",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.jobtracker.blacklist.fault-timeout-window",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.jobtracker.blacklist.fault-timeout-window",
       "StackConfigurations" : {
         "property_description" : "\n    3-hour sliding window (value is in minutes)\n  ",
         "property_value" : "180",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.jobtracker.blacklist.fault-timeout-window",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapreduce.history.server.embedded",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapreduce.history.server.embedded",
       "StackConfigurations" : {
         "property_description" : "Should job history server be embedded within Job tracker\nprocess",
         "property_value" : "false",
         "stack_version" : "2.0.1",
         "property_name" : "mapreduce.history.server.embedded",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapreduce.tasktracker.group",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapreduce.tasktracker.group",
       "StackConfigurations" : {
         "property_description" : "The group that the task controller uses for accessing the task controller. The mapred user must be a member and users should *not* be members.",
         "property_value" : "hadoop",
         "stack_version" : "2.0.1",
         "property_name" : "mapreduce.tasktracker.group",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/tasktracker.http.threads",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/tasktracker.http.threads",
       "StackConfigurations" : {
         "property_description" : null,
         "property_value" : "50",
         "stack_version" : "2.0.1",
         "property_name" : "tasktracker.http.threads",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/jetty.connector",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/jetty.connector",
       "StackConfigurations" : {
         "property_description" : "No description",
         "property_value" : "org.mortbay.jetty.nio.SelectChannelConnector",
         "stack_version" : "2.0.1",
         "property_name" : "jetty.connector",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapred.reduce.parallel.copies",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapred.reduce.parallel.copies",
       "StackConfigurations" : {
         "property_description" : "No description",
         "property_value" : "30",
         "stack_version" : "2.0.1",
         "property_name" : "mapred.reduce.parallel.copies",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }
     },
     {
-      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCEv2/configurations/mapreduce.cluster.administrators",
+      "href" : "http://192.168.56.101:8080/api/v1/stacks2/HDP/versions/2.0.1/stackServices/MAPREDUCE2/configurations/mapreduce.cluster.administrators",
       "StackConfigurations" : {
         "property_description" : null,
         "property_value" : " hadoop",
         "stack_version" : "2.0.1",
         "property_name" : "mapreduce.cluster.administrators",
-        "service_name" : "MAPREDUCEv2",
+        "service_name" : "MAPREDUCE2",
         "stack_name" : "HDP",
         "type" : "mapred-site.xml"
       }

+ 3 - 3
ambari-web/app/controllers/wizard/step8_controller.js

@@ -482,7 +482,7 @@ App.WizardStep8Controller = Em.Controller.extend({
           case 'MAPREDUCE':
             this.loadMapReduce(serviceObj);
             break;
-          case 'MAPREDUCEv2':
+          case 'MAPREDUCE2':
             this.loadMapReduce2(serviceObj);
             break;
           case 'YARN':
@@ -1318,7 +1318,7 @@ App.WizardStep8Controller = Em.Controller.extend({
         this.applyConfigurationToSite(this.createMapredQueueAcls());
       }
     }
-    if (selectedServices.someProperty('serviceName', 'MAPREDUCEv2')) {
+    if (selectedServices.someProperty('serviceName', 'MAPREDUCE2')) {
       this.applyConfigurationToSite(this.createMrSiteObj());
       if (App.supports.capacitySchedulerUi) {
         this.applyConfigurationToSite(this.createMapredQueueAcls());
@@ -1580,7 +1580,7 @@ App.WizardStep8Controller = Em.Controller.extend({
         return {config: {'global': 'version1', 'core-site': 'version1', 'hdfs-site': 'version1'}};
       case 'MAPREDUCE':
         return {config: {'global': 'version1', 'core-site': 'version1', 'mapred-site': 'version1', 'capacity-scheduler': 'version1', 'mapred-queue-acls': 'version1'}};
-      case 'MAPREDUCEv2':
+      case 'MAPREDUCE2':
         return {config: {'global': 'version1', 'core-site': 'version1', 'mapred-site': 'version1', 'mapred-queue-acls': 'version1'}};
       case 'YARN':
         return {config: {'global': 'version1', 'yarn-site': 'version1', 'capacity-scheduler': 'version1'}};

+ 1 - 1
ambari-web/app/data/review_configs.js

@@ -75,7 +75,7 @@ module.exports = [
         ]
       }),
       Ember.Object.create({
-        service_name: 'MAPREDUCEv2',
+        service_name: 'MAPREDUCE2',
         display_name: 'MapReduce 2',
         service_components: [
           Ember.Object.create({

+ 3 - 3
ambari-web/app/data/service_components.js

@@ -75,15 +75,15 @@ module.exports = new Ember.Set([
     description: 'Client component for MapReduce'
   },
   {
-    service_name: 'MAPREDUCEv2',
-    component_name: 'MAPREDUCEv2_CLIENT',
+    service_name: 'MAPREDUCE2',
+    component_name: 'MAPREDUCE2_CLIENT',
     display_name: 'MapReduce 2 Client',
     isMaster: false,
     isClient: true,
     description: ''
   },
   {
-    service_name: 'MAPREDUCEv2',
+    service_name: 'MAPREDUCE2',
     component_name: 'HISTORYSERVER',
     display_name: 'History Server',
     isMaster: true,

+ 3 - 3
ambari-web/app/data/service_configs.js

@@ -56,14 +56,14 @@ module.exports = [
   },
 
   {
-    serviceName: 'MAPREDUCEv2',
+    serviceName: 'MAPREDUCE2',
     displayName: 'MapReduce 2',
     filename: 'mapred-site',
     configCategories: [
       App.ServiceConfigCategory.create({ name: 'Advanced', displayName : 'Advanced'})
     ],
     sites: ['global', 'core-site', 'mapred-site', 'mapred-queue-acls'],
-    configs: configProperties.filterProperty('serviceName', 'MAPREDUCEv2')
+    configs: configProperties.filterProperty('serviceName', 'MAPREDUCE2')
   },
 
   {
@@ -74,7 +74,7 @@ module.exports = [
       App.ServiceConfigCategory.create({ name: 'Advanced', displayName : 'Advanced'})
     ],
     sites: ['global', 'yarn-site', 'capacity-scheduler'],
-    configs: configProperties.filterProperty('serviceName', 'MAPREDUCEv2')
+    configs: configProperties.filterProperty('serviceName', 'MAPREDUCE2')
   },
 
   {

+ 1 - 1
ambari-web/app/data/services.js

@@ -36,7 +36,7 @@ module.exports = [
     description: Em.I18n.t('services.mapreduce.description')
   },
   {
-    serviceName: 'MAPREDUCEv2',
+    serviceName: 'MAPREDUCE2',
     displayName: 'MapReduce 2',
     isDisabled: false,
     isSelected: true,

+ 3 - 0
ambari-web/app/mappers/service_mapper.js

@@ -20,7 +20,10 @@ var App = require('app');
 App.servicesMapper = App.QuickDataMapper.create({
   servicesSortOrder: [
     'HDFS',
+    'YARN',
     'MAPREDUCE',
+    'MAPREDUCE2',
+    'TEZ',
     'HBASE',
     'HIVE',
     'HCATALOG',

+ 3 - 0
ambari-web/app/messages.js

@@ -795,6 +795,9 @@ Em.I18n.translations = {
   'services.zookeeper.title': '{0} ZooKeepers',
   'services.zookeeper.postfix': 'running',
 
+  'services.mapreduce2.history.running': 'History server is running',
+  'services.mapreduce2.history.stopped': 'History server is stopped',
+
   'services.mapReduce.config.addQueue':'Add Queue',
   'services.mapReduce.config.editQueue':'Edit Queue',
   'services.mapReduce.config.capacitySchedulerXml':'Custom capacity-scheduler.xml',

+ 2 - 1
ambari-web/app/models/host_component.js

@@ -26,7 +26,7 @@ App.HostComponent = DS.Model.extend({
   service: DS.belongsTo('App.Service'),
   actualConfigs: null,
   isClient:function () {
-    if(['PIG', 'SQOOP', 'HCAT'].contains(this.get('componentName'))){
+    if(['PIG', 'SQOOP', 'HCAT', 'MAPREDUCE2_CLIENT'].contains(this.get('componentName'))){
       return true;
     }
 
@@ -54,6 +54,7 @@ App.HostComponent = DS.Model.extend({
       case 'OOZIE_SERVER':
       case 'WEBHCAT_SERVER':
       case 'HUE_SERVER':
+      case 'HISTORYSERVER':
         return true;
       default:
         return false;

+ 8 - 0
ambari-web/app/models/service.js

@@ -118,7 +118,9 @@ App.Service = DS.Model.extend({
   isConfigurable: function () {
     var configurableServices = [
       "HDFS",
+      "YARN",
       "MAPREDUCE",
+      "MAPREDUCE2",
       "HBASE",
       "OOZIE",
       "HIVE",
@@ -136,8 +138,14 @@ App.Service = DS.Model.extend({
     switch (this.get('serviceName').toLowerCase()) {
       case 'hdfs':
         return 'HDFS';
+      case 'yarn':
+        return 'YARN';
       case 'mapreduce':
         return 'MapReduce';
+      case 'mapreduce2':
+        return 'MapReduce2';
+      case 'tez':
+        return 'Tez';
       case 'hbase':
         return 'HBase';
       case 'oozie':

+ 1 - 0
ambari-web/app/templates.js

@@ -23,5 +23,6 @@
 require('templates/main/service/info/summary/ganglia');
 require('templates/main/service/info/summary/oozie');
 require('templates/main/service/info/summary/zookeeper');
+require('templates/main/service/info/summary/mapreduce2');
 require('templates/main/service/info/summary/hive');
 require('templates/main/service/info/summary/hue');

+ 33 - 0
ambari-web/app/templates/main/dashboard/service/mapreduce2.hbs

@@ -0,0 +1,33 @@
+{{!
+* 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.
+}}
+
+<div class="clearfix">
+  <div class="name span2">
+    <i class="pull-left icon-empty"></i>
+    {{view App.MainDashboardServiceHealthView serviceBinding="view.service"}}
+    <a {{action selectService view.service href=true}}>{{view.service.displayName}}</a>
+    {{#if view.criticalAlertsCount}}
+      <a href="#" class="label label-important" {{action "showAlertsPopup" view.service target="view.parentView"}}>
+        {{view.criticalAlertsCount}}
+      </a>
+    {{/if}}
+  </div>
+  <div class="summary span">
+    {{view.titleInfo}}
+  </div>
+</div>

+ 22 - 17
ambari-web/app/templates/main/service/info/summary.hbs

@@ -48,23 +48,25 @@
                 {{#unless view.serviceStatus.hbase}}
                   {{#unless view.serviceStatus.ganglia}}
                     {{#unless view.serviceStatus.hue}}
-                      {{#each component in view.components}}
-                        <tr>
-                          {{#if component.isMaster}}
-                            <td class="summary-label">{{component.displayName}}</td>
-                            <td><a {{action selectHost component.host}} href="javascript:void(null)">{{component.host.publicHostName}}</a></td>
-                          {{else}}
-                            <td class="summary-label">{{component.displayName}}s</td>
-                            <td><a {{action filterHosts component}} href="javascript:void(null)">{{component.displayName}}s</a></td>
-                          {{/if}}
-                        </tr>
-                      {{/each}}
-                      {{#if view.serviceStatus.nagios}}
-                        <tr>
-                          <td class="summary-label">{{t services.service.info.summary.nagiosWebUI}}</td>
-                          <td><a target=_blank href="http://{{unbound view.nagiosServer}}/nagios">{{view.nagiosServer}}/nagios</a></td>
-                        </tr>
-                      {{/if}}
+                      {{#unless view.serviceStatus.mapreduce2}}
+	                      {{#each component in view.components}}
+	                        <tr>
+	                          {{#if component.isMaster}}
+	                            <td class="summary-label">{{component.displayName}}</td>
+	                            <td><a {{action selectHost component.host}} href="javascript:void(null)">{{component.host.publicHostName}}</a></td>
+	                          {{else}}
+	                            <td class="summary-label">{{component.displayName}}s</td>
+	                            <td><a {{action filterHosts component}} href="javascript:void(null)">{{component.displayName}}s</a></td>
+	                          {{/if}}
+	                        </tr>
+	                      {{/each}}
+	                      {{#if view.serviceStatus.nagios}}
+	                        <tr>
+	                          <td class="summary-label">{{t services.service.info.summary.nagiosWebUI}}</td>
+	                          <td><a target=_blank href="http://{{unbound view.nagiosServer}}/nagios">{{view.nagiosServer}}/nagios</a></td>
+	                        </tr>
+	                      {{/if}}
+                      {{/unless}}
                     {{/unless}}
                   {{/unless}}
                 {{/unless}}
@@ -79,6 +81,9 @@
       {{#if view.serviceStatus.mapreduce}}
         {{view App.MainDashboardServiceMapreduceView showOnlyRows=true serviceBinding="view.service"}}
       {{/if}}
+      {{#if view.serviceStatus.mapreduce2}}
+        {{template "templates/main/service/info/summary/mapreduce2"}}
+      {{/if}}
       {{#if view.serviceStatus.hbase}}
         {{view App.MainDashboardServiceHbaseView showOnlyRows=true serviceBinding="view.service"}}
       {{/if}}

+ 34 - 0
ambari-web/app/templates/main/service/info/summary/mapreduce2.hbs

@@ -0,0 +1,34 @@
+{{!
+* 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.
+}}
+
+{{#each component in view.components}}
+  {{#if component.isMaster}}
+<tr>
+  <td class="summary-label">{{component.displayName}}</td>
+  <td>
+      <a {{action selectHost component.host}} href="javascript:void(null)">{{component.host.publicHostName}}</a>
+  </td>
+</tr>
+  {{/if}}
+{{/each}}
+<tr>
+  <td class="summary-label">{{t common.clients}}</td>
+  <td>
+      <a {{action filterHosts view.clientObj}} href="javascript:void(null)">{{view.clients.length}} MapReduce2 client{{#if view.hasManyClients}}s{{/if}}</a>
+  </td>
+</tr>

+ 1 - 1
ambari-web/app/utils/helper.js

@@ -276,7 +276,7 @@ App.format = {
         return 'Resource Manager';
       case 'TEZ_CLIENT':
         return 'Tez Client';
-      case 'MAPREDUCEv2_CLIENT':
+      case 'MAPREDUCE2_CLIENT':
         return 'MapReduce2 Client';
       case 'YARN_CLIENT':
         return 'YARN Client';

+ 1 - 0
ambari-web/app/views.js

@@ -75,6 +75,7 @@ require('views/main/dashboard');
 require('views/main/dashboard/service');
 require('views/main/dashboard/service/hdfs');
 require('views/main/dashboard/service/mapreduce');
+require('views/main/dashboard/service/mapreduce2');
 require('views/main/dashboard/service/hbase');
 require('views/main/dashboard/service/hive');
 require('views/main/dashboard/service/zookeeper');

+ 3 - 0
ambari-web/app/views/main/dashboard.js

@@ -60,6 +60,9 @@ App.MainDashboardView = Em.View.extend({
           vName = App.MainDashboardServiceMapreduceView;
           item2 = App.MapReduceService.find(item.get('id'));
           break;
+        case "MAPREDUCE2":
+          vName = App.MainDashboardServiceMapreduce2View;
+          break;
         case "HBASE":
           vName = App.MainDashboardServiceHbaseView;
           item2 = App.HBaseService.find(item.get('id'));

+ 30 - 0
ambari-web/app/views/main/dashboard/service/mapreduce2.js

@@ -0,0 +1,30 @@
+/**
+ * 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.
+ */
+
+var App = require('app');
+
+App.MainDashboardServiceMapreduce2View = App.MainDashboardServiceView.extend({
+    templateName: require('templates/main/dashboard/service/mapreduce2'),
+    serviceName: 'MAPREDUCE2',
+
+    titleInfo: function(){
+      var hs = this.get('service.hostComponents').findProperty('componentName', 'HISTORYSERVER');
+      if(hs.get('workStatus') === App.HostComponentStatus.started)
+        return this.t('services.mapreduce2.history.running');
+      return this.t('services.mapreduce2.history.stopped');
+    }.property('service')
+  });

+ 3 - 2
ambari-web/app/views/main/service/info/summary.js

@@ -37,6 +37,7 @@ App.MainServiceInfoSummaryView = Em.View.extend({
   serviceStatus:{
     hdfs:false,
     mapreduce:false,
+    mapreduce2:false,
     hbase:false,
     zookeeper:false,
     oozie:false,
@@ -48,7 +49,7 @@ App.MainServiceInfoSummaryView = Em.View.extend({
 
   clients: function () {
     var service = this.get('controller.content');
-    if (["OOZIE", "ZOOKEEPER", "HIVE"].contains(service.get("id"))) {
+    if (["OOZIE", "ZOOKEEPER", "HIVE", "MAPREDUCE2"].contains(service.get("id"))) {
       return service.get('hostComponents').filterProperty('isClient');
     }
     return [];
@@ -149,7 +150,7 @@ App.MainServiceInfoSummaryView = Em.View.extend({
    */
   clientObj: function() {
     var service = this.get('controller.content');
-    if (["OOZIE", "ZOOKEEPER", "HIVE"].contains(service.get("id"))) {
+    if (["OOZIE", "ZOOKEEPER", "HIVE", "MAPREDUCE2"].contains(service.get("id"))) {
       var clients = service.get('hostComponents').filterProperty('isClient', true);
       if (clients.length > 0) {
         return clients[0];