Updated Branches: refs/heads/trunk 4b6df8424 -> 22ff085f1
AMBARI-2940. After restarting YARN, the number of lost nodes is incorrect. (srimanth) Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/22ff085f Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/22ff085f Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/22ff085f Branch: refs/heads/trunk Commit: 22ff085f16689cebf020a1374d1c46d973c6fc4d Parents: 4b6df84 Author: Srimanth Gunturi <[email protected]> Authored: Fri Aug 16 15:13:17 2013 -0700 Committer: Srimanth Gunturi <[email protected]> Committed: Fri Aug 16 15:16:34 2013 -0700 ---------------------------------------------------------------------- ambari-web/app/mappers/service_mapper.js | 2 +- ambari-web/app/models/service/yarn.js | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/22ff085f/ambari-web/app/mappers/service_mapper.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mappers/service_mapper.js b/ambari-web/app/mappers/service_mapper.js index 8ea2fda..3a5414e 100644 --- a/ambari-web/app/mappers/service_mapper.js +++ b/ambari-web/app/mappers/service_mapper.js @@ -101,7 +101,7 @@ App.servicesMapper = App.QuickDataMapper.create({ apps_killed: 'resourceManagerComponent.host_components[0].metrics.yarn.Queue.root.AppsKilled', apps_failed: 'resourceManagerComponent.host_components[0].metrics.yarn.Queue.root.AppsFailed', node_managers_count_active: 'resourceManagerComponent.ServiceComponentInfo.rm_metrics.cluster.activeNMcount', - node_managers_count_lost: 'resourceManagerComponent.ServiceComponentInfo.rm_metrics.cluster.lostNMcount', + //node_managers_count_lost: 'resourceManagerComponent.ServiceComponentInfo.rm_metrics.cluster.lostNMcount', node_managers_count_unhealthy: 'resourceManagerComponent.ServiceComponentInfo.rm_metrics.cluster.unhealthyNMcount', node_managers_count_rebooted: 'resourceManagerComponent.ServiceComponentInfo.rm_metrics.cluster.rebootedNMcount', node_managers_count_decommissioned: 'resourceManagerComponent.ServiceComponentInfo.rm_metrics.cluster.decommissionedNMcount', http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/22ff085f/ambari-web/app/models/service/yarn.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/service/yarn.js b/ambari-web/app/models/service/yarn.js index 4ca120f..b9c7016 100644 --- a/ambari-web/app/models/service/yarn.js +++ b/ambari-web/app/models/service/yarn.js @@ -24,7 +24,6 @@ App.YARNService = App.Service.extend({ nodeManagerNodes: DS.hasMany('App.Host'), nodeManagerLiveNodes: DS.hasMany('App.Host'), nodeManagersCountActive: DS.attr('number'), - nodeManagersCountLost: DS.attr('number'), nodeManagersCountUnhealthy: DS.attr('number'), nodeManagersCountRebooted: DS.attr('number'), nodeManagersCountDecommissioned: DS.attr('number'), @@ -85,6 +84,21 @@ App.YARNService = App.Service.extend({ this.set('allQueueNames', allQueueNames); this.set('childQueueNames', childQueueNames); }.observes('queue'), + /** + * ResourceManager's lost count is not accurate once RM is rebooted. Since + * Ambari knows the total number of nodes and the counts of nodes in other + * states, we calculate the lost count. + */ + nodeManagersCountLost: function () { + var allNMs = this.get('nodeManagerNodes'); + var totalCount = allNMs != null ? allNMs.get('length') : 0; + var activeCount = this.get('nodeManagersCountActive'); + var rebootedCount = this.get('nodeManagersCountRebooted'); + var unhealthyCount = this.get('nodeManagersCountUnhealthy'); + var decomCount = this.get('nodeManagersCountDecommissioned'); + var nonLostHostsCount = activeCount + rebootedCount + decomCount + unhealthyCount; + return totalCount >= nonLostHostsCount ? totalCount - nonLostHostsCount : 0; + }.property('nodeManagerNodes', 'nodeManagersCountActive', 'nodeManagersCountRebooted', 'nodeManagersCountUnhealthy', 'nodeManagersCountDecommissioned'), }); App.YARNService.FIXTURES = [];
