Parcourir la source

AMBARI-4207 Frontend: History server should be managed as separate component. (ababiichuk)

aBabiichuk il y a 11 ans
Parent
commit
10dc7d6add

+ 4 - 0
ambari-web/app/controllers/main/admin/security/add/step2.js

@@ -245,6 +245,10 @@ App.MainAdminSecurityAddStep2Controller = Em.Controller.extend({
       if (jobTrackerHost) {
         jobTrackerHost.defaultValue = App.Service.find('MAPREDUCE').get('hostComponents').findProperty('componentName', 'JOBTRACKER').get('host.hostName');
       }
+      var jobHistoryServerHost = mapReduceService.configs.findProperty('name', 'jobhistoryserver_host');
+      if (jobHistoryServerHost) {
+        jobHistoryServerHost.defaultValue = App.Service.find('MAPREDUCE').get('hostComponents').findProperty('componentName', 'HISTORYSERVER').get('host.hostName');
+      }
     }
     if (mapReduce2Service) {
       var jobHistoryServerHost = mapReduce2Service.configs.findProperty('name', 'jobhistoryserver_host');

+ 0 - 1
ambari-web/app/controllers/main/service/info/configs.js

@@ -1662,7 +1662,6 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
         var jobTrackerHost = serviceConfigs.findProperty('name', 'jobtracker_host');
         jobTrackerHost.defaultValue = this.get('content.hostComponents').findProperty('componentName', 'JOBTRACKER').get('host.hostName');
         globalConfigs.push(jobTrackerHost);
-        break;
       case 'MAPREDUCE2':
         var historyServerHost = serviceConfigs.findProperty('name', 'hs_host');
         historyServerHost.defaultValue = this.get('content.hostComponents').findProperty('componentName', 'HISTORYSERVER').get('host.hostName');

+ 14 - 0
ambari-web/app/data/global_properties.js

@@ -333,6 +333,20 @@ module.exports =
             "category": "General"
           },
   /**********************************************MAPREDUCE***************************************/
+    {
+      "id": "puppet var",
+      "name": "hs_host",
+      "displayName": "History Server",
+      "description": "History Server",
+      "defaultValue": "",
+      "isOverridable": false,
+      "displayType": "masterHost",
+      "isRequiredByAgent": false,
+      "isVisible": true,
+      "serviceName": "MAPREDUCE",
+      "category": "HistoryServer",
+      "index": 0
+    },
     {
       "id": "puppet var",
       "name": "jobtracker_host",

+ 8 - 0
ambari-web/app/data/service_components.js

@@ -58,6 +58,14 @@ module.exports = new Ember.Set([
     isClient: false,
     description: 'Central Master service that pushes work (MR tasks) out to available TaskTracker nodes in the cluster'
   },
+  {
+    service_name: 'MAPREDUCE',
+    component_name: 'HISTORYSERVER',
+    display_name: 'History Server',
+    isMaster: true,
+    isClient: false,
+    description: ''
+  },
   {
     service_name: 'MAPREDUCE',
     component_name: 'TASKTRACKER',

+ 1 - 0
ambari-web/app/data/service_configs.js

@@ -56,6 +56,7 @@ module.exports = [
     displayName: 'MapReduce',
     filename: 'mapred-site',
     configCategories: [
+      App.ServiceConfigCategory.create({ name: 'HistoryServer', displayName : 'History Server', hostComponentNames : ['HISTORYSERVER']}),
       App.ServiceConfigCategory.create({ name: 'JobTracker', displayName : 'JobTracker', hostComponentNames : ['JOBTRACKER']}),
       App.ServiceConfigCategory.create({ name: 'TaskTracker', displayName : 'TaskTracker', hostComponentNames : ['TASKTRACKER']}),
       App.ServiceConfigCategory.create({ name: 'General', displayName : 'General'}),

+ 1 - 1
ambari-web/app/mappers/server_data_mapper.js

@@ -184,7 +184,7 @@ App.QuickDataMapper.componentServiceMap = {
   'TASKTRACKER': 'MAPREDUCE',
   'MAPREDUCE_CLIENT': 'MAPREDUCE',
   'MAPREDUCE2_CLIENT': 'MAPREDUCE2',
-  'HISTORYSERVER': 'MAPREDUCE2',
+  'HISTORYSERVER': App.get('isHadoop2Stack') ? 'MAPREDUCE2' : 'MAPREDUCE',
   'TEZ_CLIENT': 'TEZ',
   'RESOURCEMANAGER': 'YARN',
   'YARN_CLIENT': 'YARN',

+ 4 - 0
ambari-web/app/mappers/service_metrics_mapper.js

@@ -91,6 +91,7 @@ App.serviceMetricsMapper = App.QuickDataMapper.create({
   },
   mapReduceConfig: {
     version: 'jobTrackerComponent.ServiceComponentInfo.Version',
+    job_history_server_id: 'jobHistoryServerComponent.host_components[0].HostRoles.host_name',
     job_tracker_id: 'jobTrackerComponent.host_components[0].HostRoles.host_name',
     job_tracker_start_time: 'jobTrackerComponent.ServiceComponentInfo.StartTime',
     job_tracker_heap_used: 'jobTrackerComponent.ServiceComponentInfo.HeapMemoryUsed',
@@ -526,6 +527,9 @@ App.serviceMetricsMapper = App.QuickDataMapper.create({
             item.black_list_trackers.push(nj.hostname);
           });
         }
+      } else if (component.ServiceComponentInfo && component.ServiceComponentInfo.component_name == "HISTORYSERVER") {
+        item.jobHistoryServerComponent = component;
+        finalConfig = jQuery.extend(finalConfig, mapReduceConfig);
       }
     });
     // Map

+ 1 - 0
ambari-web/app/models/service/mapreduce.js

@@ -19,6 +19,7 @@ var App = require('app');
 
 App.MapReduceService = App.Service.extend({
   version: DS.attr('string'),
+  jobHistoryServer: DS.belongsTo('App.Host'),
   jobTracker: DS.belongsTo('App.Host'),
   taskTrackers: function () {
     return this.get('hostComponents').filterProperty('componentName', 'TASKTRACKER').mapProperty('host');

+ 1 - 1
ambari-web/app/models/service_config.js

@@ -352,7 +352,7 @@ App.ServiceConfigProperty = Ember.Object.extend({
         this.setDefaultValue("(\\w*)(?=:)",jtHost);
         break;
       case 'mapreduce.history.server.http.address':
-        var jtHost = masterComponentHostsInDB.findProperty('component', 'JOBTRACKER').hostName;
+        var jtHost = masterComponentHostsInDB.findProperty('component', 'HISTORYSERVER').hostName;
         this.setDefaultValue("(\\w*)(?=:)",jtHost);
         break;
       case 'tasktracker_hosts':