Browse Source

AMBARI-4558. Drop livenodes from being queried (Mikhail Bayuk via alexantonenko)

Alex Antonenko 11 years ago
parent
commit
e3b1b09deb

+ 33 - 30
ambari-web/app/controllers/global/update_controller.js

@@ -118,31 +118,42 @@ App.UpdateController = Em.Controller.extend({
 
     var conditionalFields = [];
     var initialFields = [];
-    var services = [
-        {
-            name: 'FLUME',
-            urlParam: 'flume/flume'
-        },
-        {
-            name: 'YARN',
-            urlParam: 'yarn/Queue'
-        },
-        {
-          name: 'HBASE',
-          urlParam: 'hbase/master/IsActiveMaster'
-        }
-    ];
-    services.forEach(function(service) {
-        if (App.Service.find(service.name)) {
-            conditionalFields.push("host_components/metrics/" + service.urlParam);
-        }
+    var serviceSpecificParams = {
+      'FLUME': "host_components/metrics/flume/flume",
+      'YARN': "host_components/metrics/yarn/Queue," +
+              "ServiceComponentInfo/rm_metrics/cluster/activeNMcount," +
+              "ServiceComponentInfo/rm_metrics/cluster/unhealthyNMcount," +
+              "ServiceComponentInfo/rm_metrics/cluster/rebootedNMcount," +
+              "ServiceComponentInfo/rm_metrics/cluster/decommissionedNMcount",
+      'HBASE': "host_components/metrics/hbase/master/IsActiveMaster" +
+               "ServiceComponentInfo/MasterStartTime," +
+               "ServiceComponentInfo/MasterActiveTime," +
+               "ServiceComponentInfo/AverageLoad," +
+               "ServiceComponentInfo/Revision," +
+               "ServiceComponentInfo/RegionsInTransition",
+      'MAPREDUCE': "ServiceComponentInfo/AliveNodes," +
+                   "ServiceComponentInfo/GrayListedNodes," +
+                   "ServiceComponentInfo/BlackListedNodes," +
+                   "ServiceComponentInfo/jobtracker/*,"
+    };
+    var services = App.cache['services'];
+    services.forEach(function (service) {
+      var urlParams = serviceSpecificParams[service.ServiceInfo.service_name];
+      if (urlParams) {
+        conditionalFields.push(urlParams);
+      }
     });
     var conditionalFieldsString = conditionalFields.length > 0 ? ',' + conditionalFields.join(',') : '';
     var initialFieldsString = initialFields.length > 0 ? ',' + initialFields.join(',') : '';
     var testUrl = App.get('isHadoop2Stack') ? '/data/dashboard/HDP2/master_components.json':'/data/dashboard/services.json';
 
     var realUrl = '/components/?ServiceComponentInfo/category=MASTER&fields=' +
-      'ServiceComponentInfo,' +
+      'ServiceComponentInfo/Version,' +
+      'ServiceComponentInfo/StartTime,' +
+      'ServiceComponentInfo/HeapMemoryUsed,' +
+      'ServiceComponentInfo/HeapMemoryMax,' +
+      'ServiceComponentInfo/service_name,' +
+      'host_components/HostRoles/host_name,' +
       'host_components/HostRoles/state,' +
       'host_components/HostRoles/passive_state,' +
       'host_components/HostRoles/stale_configs,' +
@@ -153,23 +164,15 @@ App.UpdateController = Em.Controller.extend({
       'host_components/metrics/mapred/jobtracker/trackers_decommissioned,' +
       'host_components/metrics/cpu/cpu_wio,' +
       'host_components/metrics/rpc/RpcQueueTime_avg_time,' +
-      'host_components/metrics/dfs/FSNamesystem/HAState,' +
-      'host_components/metrics/dfs/FSNamesystem/CapacityUsed,' +
-      'host_components/metrics/dfs/FSNamesystem/CapacityTotal,' +
-      'host_components/metrics/dfs/FSNamesystem/CapacityRemaining,' +
-      'host_components/metrics/dfs/FSNamesystem/BlocksTotal,' +
-      'host_components/metrics/dfs/FSNamesystem/CorruptBlocks,' +
-      'host_components/metrics/dfs/FSNamesystem/MissingBlocks,' +
-      'host_components/metrics/dfs/FSNamesystem/UnderReplicatedBlocks,' +
+      'host_components/metrics/dfs/FSNamesystem/*,' +
       'host_components/metrics/dfs/namenode/Version,' +
-      'host_components/metrics/dfs/namenode/LiveNodes,' +
-      'host_components/metrics/dfs/namenode/DeadNodes,' +
       'host_components/metrics/dfs/namenode/DecomNodes,' +
       'host_components/metrics/dfs/namenode/TotalFiles,' +
       'host_components/metrics/dfs/namenode/UpgradeFinalized,' +
       'host_components/metrics/dfs/namenode/Safemode,' +
       'host_components/metrics/runtime/StartTime' +
-      conditionalFieldsString;
+      conditionalFieldsString +
+      '&minimal_response=true';
 
     var servicesUrl = isInitialLoad ? this.getUrl(testUrl, realUrl + initialFieldsString) : this.getUrl(testUrl, realUrl);
     callback = callback || function () {

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

@@ -45,8 +45,6 @@ App.serviceMetricsMapper = App.QuickDataMapper.create({
     name_node_start_time: 'nameNodeComponent.host_components[0].metrics.runtime.StartTime',
     jvm_memory_heap_used: 'nameNodeComponent.host_components[0].metrics.jvm.HeapMemoryUsed',
     jvm_memory_heap_max: 'nameNodeComponent.host_components[0].metrics.jvm.HeapMemoryMax',
-    live_data_nodes: 'live_data_nodes',
-    dead_data_nodes: 'dead_data_nodes',
     decommission_data_nodes: 'decommission_data_nodes',
     capacity_used: 'nameNodeComponent.host_components[0].metrics.dfs.FSNamesystem.CapacityUsed',
     capacity_total: 'nameNodeComponent.host_components[0].metrics.dfs.FSNamesystem.CapacityTotal',
@@ -64,7 +62,6 @@ App.serviceMetricsMapper = App.QuickDataMapper.create({
   yarnConfig: {
     version: 'resourceManagerComponent.ServiceComponentInfo.Version',
     resource_manager_node_id: 'resourceManagerComponent.host_components[0].HostRoles.host_name',
-    node_manager_live_nodes: 'node_manager_live_nodes',
     resource_manager_start_time: 'resourceManagerComponent.ServiceComponentInfo.StartTime',
     jvm_memory_heap_used: 'resourceManagerComponent.host_components[0].metrics.jvm.HeapMemoryUsed',
     jvm_memory_heap_max: 'resourceManagerComponent.host_components[0].metrics.jvm.HeapMemoryMax',
@@ -386,19 +383,9 @@ App.serviceMetricsMapper = App.QuickDataMapper.create({
         finalConfig = jQuery.extend(finalConfig, hdfsConfig);
         // Get the live, dead & decommission nodes from string json
         if (component.host_components[0].metrics && component.host_components[0].metrics.dfs && component.host_components[0].metrics.dfs.namenode) {
-          var liveNodesJson = App.parseJSON(component.host_components[0].metrics.dfs.namenode.LiveNodes);
-          var deadNodesJson = App.parseJSON(component.host_components[0].metrics.dfs.namenode.DeadNodes);
           var decommissionNodesJson = App.parseJSON(component.host_components[0].metrics.dfs.namenode.DecomNodes);
         }
-        item.live_data_nodes = [];
-        item.dead_data_nodes = [];
         item.decommission_data_nodes = [];
-        for (var ln in liveNodesJson) {
-          item.live_data_nodes.push(ln);
-        }
-        for (var dn in deadNodesJson) {
-          item.dead_data_nodes.push(dn);
-        }
         for (var dcn in decommissionNodesJson) {
           item.decommission_data_nodes.push(dcn);
         }
@@ -432,19 +419,6 @@ App.serviceMetricsMapper = App.QuickDataMapper.create({
     item.components.forEach(function (component) {
       if (component.ServiceComponentInfo && component.ServiceComponentInfo.component_name == "RESOURCEMANAGER") {
         item.resourceManagerComponent = component;
-        // live nodes calculation
-        var nmList = [];
-        if (component.ServiceComponentInfo.rm_metrics && component.ServiceComponentInfo.rm_metrics.cluster && component.ServiceComponentInfo.rm_metrics.cluster.nodeManagers) {
-          nmList = App.parseJSON(component.ServiceComponentInfo.rm_metrics.cluster.nodeManagers);
-        }
-        nmList.forEach(function (nm) {
-          if (nm.State === "RUNNING") {
-            if (!item.node_manager_live_nodes) {
-              item.node_manager_live_nodes = [];
-            }
-            item.node_manager_live_nodes.push(nm.HostName);
-          }
-        });
 
         if (component.host_components[0].metrics && component.host_components[0].metrics.yarn) {
           var root = component.host_components[0].metrics.yarn.Queue.root;

+ 0 - 2
ambari-web/app/models/service/hdfs.js

@@ -33,8 +33,6 @@ App.HDFSService = App.Service.extend({
   nameNodeStartTime: DS.attr('number'),
   jvmMemoryHeapUsed: DS.attr('number'),
   jvmMemoryHeapMax: DS.attr('number'),
-  liveDataNodes: DS.hasMany('App.Host'),
-  deadDataNodes: DS.hasMany('App.Host'),
   decommissionDataNodes: DS.hasMany('App.Host'),
   capacityUsed: DS.attr('number'),
   capacityTotal: DS.attr('number'),

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

@@ -24,7 +24,6 @@ App.YARNService = App.Service.extend({
   nodeManagerNodes: function () {
     return this.get('hostComponents').filterProperty('componentName', 'NODEMANAGER');
   }.property('hostComponents.@each'),
-  nodeManagerLiveNodes: DS.hasMany('App.Host'),
   nodeManagersCountActive: DS.attr('number'),
   nodeManagersCountUnhealthy: DS.attr('number'),
   nodeManagersCountRebooted: DS.attr('number'),

+ 6 - 6
ambari-web/app/views/main/dashboard/service/hdfs.js

@@ -127,18 +127,18 @@ App.MainDashboardServiceHdfsView = App.MainDashboardServiceView.extend({
 
   summaryHeader: function () {
     var text = this.t("dashboard.services.hdfs.summary");
-    var svc = this.get('service');
-    var liveCount = svc.get('liveDataNodes').get('length');
-    var totalCount = svc.get('dataNodes').get('length');
-    var total = this.get('service.capacityTotal') + 0;
-    var remaining = this.get('service.capacityRemaining') + 0;
+    var service = this.get('service');
+    var liveCount = service.get('dataNodes').filterProperty("workStatus", "STARTED").length;
+    var totalCount = service.get('dataNodes').get('length');
+    var total = service.get('capacityTotal') + 0;
+    var remaining = service.get('capacityRemaining') + 0;
     var used = total - remaining;
     var percent = total > 0 ? ((used * 100) / total).toFixed(1) : 0;
     if (percent == "NaN" || percent < 0) {
       percent = Em.I18n.t('services.service.summary.notAvailable') + " ";
     }
     return text.format(liveCount, totalCount, percent);
-  }.property('service.liveDataNodes', 'service.dataNodes', 'service.capacityUsed', 'service.capacityTotal'),
+  }.property('service.dataNodes.@each.workStatus', 'service.capacityUsed', 'service.capacityTotal'),
 
   capacity: function () {
     var text = this.t("dashboard.services.hdfs.capacityUsed");