Prechádzať zdrojové kódy

AMBARI-1449: Failure popup shown for reconfiguring HDFS when MapReduce is not selected. (jaimin)

git-svn-id: https://svn.apache.org/repos/asf/incubator/ambari/trunk@1447988 13f79535-47bb-0310-9956-ffa450edef68
Jaimin Jetly 12 rokov pred
rodič
commit
3ed2b51590

+ 3 - 0
CHANGES.txt

@@ -298,6 +298,9 @@ Trunk (unreleased changes):
 
  BUG FIXES
 
+ AMBARI-1449. Failure popup shown for reconfiguring HDFS when MapReduce 
+ is not selected. (jaimin)
+
  AMBARI-1445. Redirect to main app page when testMode flag is set True and
  alwaysGoToInstaller flag is set False. (jaimin)
 

+ 29 - 22
ambari-web/app/controllers/main/service/info/configs.js

@@ -441,30 +441,30 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
     var message;
     var value;
     var flag;
-    if ((this.get('content.serviceName') !== 'HDFS' && this.get('content.isStopped') === true) || (this.get('content.serviceName') === 'HDFS') && this.get('content.isStopped') === true && App.Service.find('MAPREDUCE').get('isStopped')) {
+    if ((this.get('content.serviceName') !== 'HDFS' && this.get('content.isStopped') === true) || ((this.get('content.serviceName') === 'HDFS') && this.get('content.isStopped') === true && (!App.Service.find().someProperty('id', 'MAPREDUCE') || App.Service.find('MAPREDUCE').get('isStopped')))) {
       var result = this.saveServiceConfigProperties();
       flag = result.flag;
       if (flag === true) {
-        header = 'Start Service';
-        message = 'Service configuration applied successfully';
+        header = Em.I18n.t('services.service.config.startService');
+        message = Em.I18n.t('services.service.config.saveConfig');
       } else {
-        header = 'Faliure';
+        header = Em.I18n.t('common.failure');
         message = result.message;
         value = result.value;
       }
 
     } else {
-      if (this.get('content.serviceName') !== 'HDFS') {
-        header = 'Stop Service';
-        message = 'Stop the service and wait till it stops completely. Thereafter you can apply configuration changes';
+      if (this.get('content.serviceName') !== 'HDFS' || (this.get('content.serviceName') === 'HDFS' && !App.Service.find().someProperty('id', 'MAPREDUCE'))) {
+        header = Em.I18n.t('services.service.config.stopService');
+        message = Em.I18n.t('services.service.config.msgServiceStop');
       } else {
-        header = 'Stop Services';
-        message = 'Stop HDFS and MapReduce. Wait till both of them stops completely. Thereafter you can apply configuration changes';
+        header = Em.I18n.t('services.service.config.stopService');
+        message = Em.I18n.t('services.service.config.msgHDFSMapRServiceStop');
       }
     }
     App.ModalPopup.show({
       header: header,
-      primary: 'OK',
+      primary: Em.I18n.t('ok'),
       secondary: null,
       onPrimary: function () {
         this.hide();
@@ -483,19 +483,19 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
               /////////
               if (displayNames && displayNames.length) {
                 if (displayNames.length === 1) {
-                  displayMsg.push(displayProperty + ' as ' + displayNames[0]);
+                  displayMsg.push(displayProperty + Em.I18n.t('as') + displayNames[0]);
                 } else {
                   var name;
                   displayNames.forEach(function (_name, index) {
                     if (index === 0) {
                       name = _name;
                     } else if (index === siteProperties.length - 1) {
-                      name = name + ' and ' + _name;
+                      name = name + Em.I18n.t('and') + _name;
                     } else {
                       name = name + ', ' + _name;
                     }
                   }, this);
-                  displayMsg.push(displayProperty + ' as ' + name);
+                  displayMsg.push(displayProperty + Em.I18n.t('as') + name);
 
                 }
               } else {
@@ -541,22 +541,29 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
     result.flag = customConfigResult.flag;
     result.value = customConfigResult.value;
     /*
-    For now, we are skipping validation checks to see if the user is overriding already-defined paramaters, as
-    the user needs this flexibility.  We may turn this back on as a warning in the future...
-    if (result.flag !== true) {
-      result.message = 'Error in custom configuration. Some properties entered in the box are already exposed on this page';
-      return result;
-    }
-    */
+     For now, we are skipping validation checks to see if the user is overriding already-defined paramaters, as
+     the user needs this flexibility.  We may turn this back on as a warning in the future...
+     if (result.flag !== true) {
+     result.message = 'Error in custom configuration. Some properties entered in the box are already exposed on this page';
+     return result;
+     }
+     */
     result.flag = result.flag && this.createConfigurations();
     if (result.flag === true) {
       if (this.get('content.serviceName') !== 'HDFS') {
         result.flag = this.applyCreatedConfToService(this.get('content.serviceName'));
       } else {
-        result.flag = this.applyCreatedConfToService(this.get('content.serviceName')) && this.applyCreatedConfToService('MAPREDUCE');
+        var mapRFlag = true;
+        if (App.Service.find().someProperty('id', 'MAPREDUCE')) {
+          mapRFlag = this.applyCreatedConfToService('MAPREDUCE');
+        }
+        if (!mapRFlag) {
+          result.message = Em.I18n.t('services.service.config.failSaveConfig');
+        }
+        result.flag = this.applyCreatedConfToService(this.get('content.serviceName')) && mapRFlag;
       }
     } else {
-      result.message = 'Faliure in applying service configuration';
+      result.message = Em.I18n.t('services.service.config.failCreateConfig');
     }
     console.log("The result from applyCreatdConfToService is: " + result);
     return result;

+ 202 - 1
ambari-web/app/messages.js

@@ -33,6 +33,10 @@ Em.I18n.translations = {
   'minimum':'minimum',
   'from':'From',
   'to':'To',
+  'ok':'OK',
+  'as':'as',
+  'any': 'Any',
+  'more':'more',
 
   'common.learnMore':'Learn more',
   'common.back':'Back',
@@ -85,9 +89,22 @@ Em.I18n.translations = {
   'common.stop':'Stop',
   'common.decommission':'Decommission',
   'common.recommission':'Recommission',
+  'common.failure': 'Failure',
+  'common.type': 'Type',
+  'common.close': 'Close',
+  'common.warning': 'Warning',
+  'common.information': 'Information',
+  'common.all':'All',
+  'common.success': 'Success',
+  'common.fail':'Fail',
+  'common.error': 'Error',
+  'common.loading': 'Loading',
+  'common.search': 'Search',
 
   'popup.highlight':'click to highlight',
 
+  'router.hadoopClusterNotSetUp':'Your administrator has not set up a Hadoop cluster yet.',
+
   'login.header':'Sign in',
   'login.username':'Username',
   'login.password':'Password',
@@ -142,6 +159,7 @@ Em.I18n.translations = {
   'installer.slaveComponentHosts.selectHosts':'select hosts for this group',
   'installer.slaveComponentHostsPopup.header':'Select which hosts should belong to which {0} group',
 
+  'installer.controls.slaveComponentGroups':' Groups',
   'installer.controls.serviceConfigPopover.title':'{0}<br><small>{1}</small>',
   'installer.controls.serviceConfigMultipleHosts.other':'1 other',
   'installer.controls.serviceConfigMultipleHosts.others':'{0} others',
@@ -205,6 +223,9 @@ Em.I18n.translations = {
   'installer.step2.manualInstall.popup.body':'You must install Ambari Agents on each host you want to manage before you proceed.',
   'installer.step2.orUse':'Or use',
   'installer.step2.registerAndConfirm':'Register and Confirm',
+  'installer.step2.evaluateStep.installedHosts':'These hosts are already installed on the cluster and will be ignored:',
+  'installer.step2.evaluateStep.continueConfirm':'Do you want to continue?',
+  'installer.step2.evaluateStep.hostRegInProgress':'Host Registration is currently in progress.  Please try again later.',
 
   'installer.step3.header':'Confirm Hosts',
   'installer.step3.body':'Registering your hosts.<br>' +
@@ -221,6 +242,20 @@ Em.I18n.translations = {
   'installer.step3.hostWarningsPopup.packages':'PACKAGES',
   'installer.step3.hostWarningsPopup.processes':'PROCESSES',
   'installer.step3.hostWarningsPopup.noProcesses':'No processes to display',
+  'installer.step3.hostWarningsPopup.existOnHost':'WARN: already exists on host',
+  'installer.step3.hostWarningsPopup.existOnOneHost':'WARN: already exists on 1 host',
+  'installer.step3.hostWarningsPopup.existOnManyHost':'WARN: already exists on {0} hosts',
+  'installer.step3.hostWarningsPopup.installedOnHost':'WARN: already installed on host',
+  'installer.step3.hostWarningsPopup.installedOnOneHost':'WARN: already installed on 1 host',
+  'installer.step3.hostWarningsPopup.installedOnManyHost':'WARN: already installed on {0} hosts',
+  'installer.step3.hostWarningsPopup.runningOnHost':'WARN: running on host',
+  'installer.step3.hostWarningsPopup.runningOnOneHost':'WARN: running on 1 host',
+  'installer.step3.hostWarningsPopup.runningOnManyHost':'WARN: running on {0} hosts',
+  'installer.step3.hostWarningsPopup.rerunChecks':'Rerun Checks',
+  'installer.step3.warningsWindow.allHosts':'Warnings across all hosts',
+  'installer.step3.warningsWindow.warningsOn':'Warnings on ',
+  'installer.step3.warningsWindow.directoriesAndFiles':'DIRECTORIES AND FILES',
+  'installer.step3.warningsWindow.noWarnings':'No warnings',
   'installer.step3.hosts.noHosts':'No hosts to display',
   'installer.step3.warnings.popup.header':'Host Checks',
   'installer.step3.warnings.description':'Some warnings were encountered while performing checks against the above hosts.',
@@ -231,6 +266,12 @@ Em.I18n.translations = {
   'installer.step3.warnings.updateChecks.failed':'Host Checks update failed',
   'installer.step3.removeSelected':'Remove Selected',
   'installer.step3.retryFailed':'Retry Failed',
+  'installer.step3.hosts.status.registering':'Registering',
+  'installer.step3.hosts.status.installing':'Installing',
+  'installer.step3.hosts.bootLog.failed':'\nRegistration with the server failed.',
+  'installer.step3.hosts.bootLog.registering':'\nRegistering with the server...',
+  'installer.step3.hostLogPopup.highlight':'click to highlight',
+  'installer.step3.hostLogPopup.copy':'press CTRL+C',
 
   'installer.step4.header':'Choose Services',
   'installer.step4.body':'Choose which services you want to install on your cluster.',
@@ -243,6 +284,7 @@ Em.I18n.translations = {
   'installer.step5.attention':' hosts not running master services',
   'installer.step5.body':'Assign master components to hosts you want to run them on.',
   'installer.step5.body.hive':'<i class="icon-asterisks">&#10037</i> HiveServer2, Hive Metastore, and WebHCat Server will be co-hosted on the same server.',
+  'installer.step5.hostInfo':'%@ (%@, %@ cores)',
 
   'installer.step6.header':'Assign Slaves and Clients',
   'installer.step6.body':'Assign slave and client components to hosts you want to run them on.<br/>Hosts that are assigned master components are shown with <i class=icon-asterisks>&#10037</i>. <br/>&quot;Client&quot; will install ',
@@ -253,10 +295,14 @@ Em.I18n.translations = {
   'installer.step7.header':'Customize Services',
   'installer.step7.body':'We have come up with recommended configurations for the services you selected. Customize them as you see fit.',
   'installer.step7.attentionNeeded':'<b>Attention:</b> Some configurations need your attention before you can proceed.',
+  'installer.step7.ConfigErrMsg.header':'Custom configuration error: ',
+  'installer.step7.ConfigErrMsg.message':'Error in custom configuration. Some properties entered in the box are already exposed on this page',
 
   'installer.step8.header':'Review',
   'installer.step8.body':'Please review the configuration before installation',
   'installer.step8.deployPopup.message':'Preparing to Deploy: {0} of {1} tasks completed.',
+  'installer.step8.hosts':' hosts',
+  'installer.step8.host':' host',
 
   'installer.step9.header':'Install, Start and Test',
   'installer.step9.body':'Please wait while the selected services are installed and started.',
@@ -277,10 +323,64 @@ Em.I18n.translations = {
   'installer.step9.hostLog.popup.categories.timedout':'Timed Out',
   'installer.step9.hostLog.popup.noTasksToShow':'No tasks to show',
   'installer.step9.overallProgress':'{0} % overall',
+  'installer.step9.serviceStatus.install.pending':'Preparing to install',
+  'installer.step9.serviceStatus.install.queued':'Waiting to install ',
+  'installer.step9.serviceStatus.install.inProgress':'Installing ',
+  'installer.step9.serviceStatus.install.completed':'Successfully installed ',
+  'installer.step9.serviceStatus.install.failed':'Failed to install ',
+  'installer.step9.serviceStatus.uninstall.pending':'Preparing to uninstall',
+  'installer.step9.serviceStatus.uninstall.queued':'Waiting to uninstall ',
+  'installer.step9.serviceStatus.uninstall.inProgress':'Uninstalling ',
+  'installer.step9.serviceStatus.uninstall.completed':'Successfully uninstalled ',
+  'installer.step9.serviceStatus.uninstall.failed':'Failed to uninstall ',
+  'installer.step9.serviceStatus.start.pending':'Preparing to start ',
+  'installer.step9.serviceStatus.start.queued':'Waiting to start ',
+  'installer.step9.serviceStatus.start.inProgress':'Starting ',
+  'installer.step9.serviceStatus.start.completed':' started successfully',
+  'installer.step9.serviceStatus.start.failed':' failed to start',
+  'installer.step9.serviceStatus.stop.pending':'Preparing to stop ',
+  'installer.step9.serviceStatus.stop.queued':'Waiting to stop ',
+  'installer.step9.serviceStatus.stop.inProgress':'Stopping ',
+  'installer.step9.serviceStatus.stop.completed':' stopped successfully',
+  'installer.step9.serviceStatus.stop.failed':' failed to stop',
+  'installer.step9.serviceStatus.execute.pending':'Preparing to execute ',
+  'installer.step9.serviceStatus.execute.queued':'Waiting to execute ',
+  'installer.step9.serviceStatus.execute.inProgress':'Executing ',
+  'installer.step9.serviceStatus.execute.completed':' executed successfully',
+  'installer.step9.serviceStatus.execute.failed':' failed to execute',
+  'installer.step9.serviceStatus.abort.pending':'Preparing to abort ',
+  'installer.step9.serviceStatus.abort.queued':'Waiting to abort ',
+  'installer.step9.serviceStatus.abort.inProgress':'Aborting ',
+  'installer.step9.serviceStatus.abort.completed':' aborted successfully',
+  'installer.step9.serviceStatus.abort.failed':' failed to abort',
 
   'installer.step10.header':'Summary',
   'installer.step10.body':'Here is the summary of the install process.',
   'installer.step10.nagiosRestartRequired':'<b>Important!</b> Restarting Nagios service is required for the alerts and notifications to work properly.  After clicking on the Complete button to dismiss this wizard, go to Services -> Nagios to restart the Nagios service.',
+  'installer.step10.hostsSummary':'The cluster consists of {0} hosts',
+  'installer.step10.servicesSummary':'Installed and started services successfully on {0} new ',
+  'installer.step10.warnings':' warnings',
+  'installer.step10.clusterState.installing':'Installing ',
+  'installer.step10.clusterState.starting':'Starting ',
+  'installer.step10.taskStatus.failed':' failed on ',
+  'installer.step10.taskStatus.aborted':' aborted on ',
+  'installer.step10.taskStatus.timedOut':' timed out on ',
+  'installer.step10.installStatus.failed':'Installing master services failed',
+  'installer.step10.installStatus.installed':'Master services installed',
+  'installer.step10.master.nameNode':'NameNode installed on ',
+  'installer.step10.master.secondaryNameNode':'SecondaryNameNode installed on ',
+  'installer.step10.master.jobTracker':'JobTracker installed on ',
+  'installer.step10.master.zooKeeper':'ZooKeeper installed on ',
+  'installer.step10.master.hbase':'HBase Master installed on ',
+  'installer.step10.master.hiveMetastore':'Hive Metastore installed on ',
+  'installer.step10.master.oozie':'Oozie Server installed on ',
+  'installer.step10.master.ganglia':'Ganglia Server installed on ',
+  'installer.step10.master.nagios':'Nagios Server installed on ',
+  'installer.step10.startStatus.failed':'Starting services failed',
+  'installer.step10.startStatus.passed':'All tests passed',
+  'installer.step10.startStatus.started':'All services started',
+  'installer.step10.installTime.seconds':'Install and start completed in {0} seconds',
+  'installer.step10.installTime.minutes':'Install and start completed in {0} minutes and {1} seconds',
 
   'form.create':'Create',
   'form.save':'Save',
@@ -289,6 +389,7 @@ Em.I18n.translations = {
   'form.passwordRetype':'Retype Password',
   'form.saveSuccess':'Successfully saved.',
   'form.saveError':'Sorry, errors occurred.',
+  'form.item.placeholders.typePassword':'Type password',
 
   'form.validator.invalidIp':'Please enter valid ip address',
 
@@ -352,6 +453,9 @@ Em.I18n.translations = {
   'admin.users.editError.requiredField': 'This is required',
 
   'admin.confirmUninstall':'Confirm Uninstall',
+  'admin.cluster.stackVersion':'Cluster Stack Version',
+  'admin.cluster.upgradeAvailable':'Upgrade available',
+  'admin.cluster.upgradeUnavailable':'Upgrade unavailable',
 
   'question.sure':'Are you sure?',
   'yes':'Yes',
@@ -400,35 +504,87 @@ Em.I18n.translations = {
   'services.service.actions.run.rebalancer':'Run Rebalancer',
   'services.service.actions.run.compaction':'Run Compaction',
   'services.service.actions.run.smoke':'Run Smoke Test',
+  'services.service.actions.reassign.master':'Reassign {0}',
   'services.service.actions.maintenance':'Maintenance',
   'services.service.summary.unknown':'unknown',
   'services.service.summary.notRunning':'Not Running',
   'services.service.summary.notAvailable':'n/a',
 
   'services.service.info.metrics.hbase.clusterRequests':'Cluster Requests',
+  'services.service.info.metrics.hbase.clusterRequests.displayNames.requestCount':'Request Count',
   'services.service.info.metrics.hbase.hlogSplitSize':'HLog Split Size',
+  'services.service.info.metrics.hbase.hlogSplitSize.displayNames.splitSize':'Split Size',
   'services.service.info.metrics.hbase.hlogSplitTime':'HLog Split Time',
+  'services.service.info.metrics.hbase.hlogSplitTime.displayNames.splitTime':'Split Time',
   'services.service.info.metrics.hbase.regionServerQueueSize':'RegionServer Queue Size',
+  'services.service.info.metrics.hbase.regionServerQueueSize.displayNames.compactionQueueSize':'Compaction Queue Size',
+  'services.service.info.metrics.hbase.regionServerQueueSize.displayNames.flushQueueSize':'Flush Queue Size',
   'services.service.info.metrics.hbase.regionServerRegions':'RegionServer Regions',
+  'services.service.info.metrics.hbase.regionServerRegions.displayNames.regions':'Regions',
   'services.service.info.metrics.hbase.regionServerRequests':'Cumulative Requests',
+  'services.service.info.metrics.hbase.regionServerRequests.displayNames.writeRequests':'Write Requests',
+  'services.service.info.metrics.hbase.regionServerRequests.displayNames.readRequests':'Read Requests',
 
   'services.service.info.metrics.hdfs.blockStatus':'Block Status',
+  'services.service.info.metrics.hdfs.blockStatus.displayNames.pendingReplicationBlocks':'Pending Replication Blocks',
+  'services.service.info.metrics.hdfs.blockStatus.displayNames.underReplicatedBlocks':'Under Replicated Blocks',
   'services.service.info.metrics.hdfs.fileOperations':'File Operations',
+  'services.service.info.metrics.hdfs.fileOperations.displayNames.fileInformationOperations':'File Information Operations',
+  'services.service.info.metrics.hdfs.fileOperations.displayNames.deleteFileOperations':'Delete File Operations',
+  'services.service.info.metrics.hdfs.fileOperations.displayNames.createFileOperations':'Create File Operations',
   'services.service.info.metrics.hdfs.gc':'Garbage Collection',
+  'services.service.info.metrics.hdfs.gc.displayNames.gcTimeMillis':'Time',
   'services.service.info.metrics.hdfs.io':'HDFS I/O',
+  'services.service.info.metrics.hdfs.io.displayNames.bytesWritten':'Bytes Written',
+  'services.service.info.metrics.hdfs.io.displayNames.bytesRead':'Bytes Read',
   'services.service.info.metrics.hdfs.jvmHeap':'JVM Memory Status',
+  'services.service.info.metrics.hdfs.jvmHeap.displayNames.memHeapCommittedM':'Heap Memory Committed',
+  'services.service.info.metrics.hdfs.jvmHeap.displayNames.memNonHeapUsedM':'Non Heap Memory Used',
+  'services.service.info.metrics.hdfs.jvmHeap.displayNames.memHeapUsedM':'Heap Memory Used',
+  'services.service.info.metrics.hdfs.jvmHeap.displayNames.memNonHeapCommittedM':'Non Heap Memory Committed',
   'services.service.info.metrics.hdfs.jvmThreads':'JVM Thread Status',
+  'services.service.info.metrics.hdfs.jvmThreads.displayNames.threadsBlocked':'Threads Blocked',
+  'services.service.info.metrics.hdfs.jvmThreads.displayNames.threadsWaiting':'Threads Waiting',
+  'services.service.info.metrics.hdfs.jvmThreads.displayNames.threadsTimedWaiting':'Threads Timed Waiting',
+  'services.service.info.metrics.hdfs.jvmThreads.displayNames.threadsRunnable':'Threads Runnable',
   'services.service.info.metrics.hdfs.rpc':'RPC',
+  'services.service.info.metrics.hdfs.rpc.displayNames.rpcQueueTimeAvgTime':'Queue Average Wait Time',
   'services.service.info.metrics.hdfs.spaceUtilization':'Total Space Utilization',
+  'services.service.info.metrics.hdfs.spaceUtilization.displayNames.capacityRemainingGB':'Capacity Remaining',
+  'services.service.info.metrics.hdfs.spaceUtilization.displayNames.capacityUsedGB':'Capacity Used',
+  'services.service.info.metrics.hdfs.spaceUtilization.displayNames.capacityTotalGB':'Capacity Total',
 
   'services.service.info.metrics.mapreduce.gc':'Garbage Collection',
+  'services.service.info.metrics.mapreduce.gc.displayNames.gcTimeMillis':'Time',
   'services.service.info.metrics.mapreduce.jobsStatus':'Jobs Status',
+  'services.service.info.metrics.mapreduce.jobsStatus.displayNames.jobsRunning':'Running',
+  'services.service.info.metrics.mapreduce.jobsStatus.displayNames.jobsFailed':'Failed',
+  'services.service.info.metrics.mapreduce.jobsStatus.displayNames.jobsCompleted':'Succeeded',
+  'services.service.info.metrics.mapreduce.jobsStatus.displayNames.jobsPreparing':'Preparing',
+  'services.service.info.metrics.mapreduce.jobsStatus.displayNames.jobsSubmitted':'Submitted',
   'services.service.info.metrics.mapreduce.jvmHeap':'JVM Memory Status',
+  'services.service.info.metrics.mapreduce.jvmHeap.displayNames.memHeapCommittedM':'Heap Memory Committed',
+  'services.service.info.metrics.mapreduce.jvmHeap.displayNames.memNonHeapUsedM':'Non Heap Memory Used',
+  'services.service.info.metrics.mapreduce.jvmHeap.displayNames.memHeapUsedM':'Heap Memory Used',
+  'services.service.info.metrics.mapreduce.jvmHeap.displayNames.memNonHeapCommittedM':'Non Heap Memory Committed',
   'services.service.info.metrics.mapreduce.jvmThreads':'JVM Thread Status',
+  'services.service.info.metrics.mapreduce.jvmThreads.displayNames.threadsBlocked':'Threads Blocked',
+  'services.service.info.metrics.mapreduce.jvmThreads.displayNames.threadsWaiting':'Threads Waiting',
+  'services.service.info.metrics.mapreduce.jvmThreads.displayNames.threadsTimedWaiting':'Threads Timed Waiting',
+  'services.service.info.metrics.mapreduce.jvmThreads.displayNames.threadsRunnable':'Threads Runnable',
   'services.service.info.metrics.mapreduce.mapSlots':'Map Slots Utilization',
+  'services.service.info.metrics.mapreduce.mapSlots.displayNames.reservedMapSlots':'Map Slots Reserved',
+  'services.service.info.metrics.mapreduce.mapSlots.displayNames.occupiedMapSlots':'Map Slots Occupied',
   'services.service.info.metrics.mapreduce.reduceSlots':'Reduce Slots Utilization',
+  'services.service.info.metrics.mapreduce.reduceSlots.displayNames.reservedReduceSlots':'Reduce Slots Reserved',
+  'services.service.info.metrics.mapreduce.reduceSlots.displayNames.occupiedReduceSlots':'Reduce Slots Occupied',
   'services.service.info.metrics.mapreduce.rpc':'RPC',
+  'services.service.info.metrics.mapreduce.rpc.displayNames.RpcQueueTimeAvgTime':'Queue Average Wait Time',
   'services.service.info.metrics.mapreduce.tasksRunningWaiting':'Tasks (Running/Waiting)',
+  'services.service.info.metrics.mapreduce.tasksRunningWaiting.displayNames.runningMaps':'Running Map Tasks',
+  'services.service.info.metrics.mapreduce.tasksRunningWaiting.displayNames.runningReduces':'Running Reduce Tasks',
+  'services.service.info.metrics.mapreduce.tasksRunningWaiting.displayNames.waitingMaps':'Waiting Map Tasks',
+  'services.service.info.metrics.mapreduce.tasksRunningWaiting.displayNames.waitingReduces':'Waiting Reduce Tasks',
 
   'services.service.info.menu.summary':'Summary',
   'services.service.info.menu.configs':'Configs',
@@ -439,6 +595,14 @@ Em.I18n.translations = {
   'services.service.info.summary.nagios.noAlerts':'No alerts',
   'services.service.info.summary.nagios.alerts':'Nagios service required for viewing alerts',
 
+  'services.service.config.startService':'Start Service',
+  'services.service.config.saveConfig':'Service configuration applied successfully',
+  'services.service.config.stopService':'Stop Service',
+  'services.service.config.msgServiceStop':'Stop the service and wait till it stops completely. Thereafter you can apply configuration changes',
+  'services.service.config.msgHDFSMapRServiceStop':'Stop HDFS and MapReduce. Wait till both of them stops completely. Thereafter you can apply configuration changes',
+  'services.service.config.failCreateConfig' : 'Failure in creating service configuration',
+  'services.service.config.failSaveConfig':'Failure in applying service configuration',
+
   'services.add.header':'Add Service Wizard',
   'services.service.add':'Add Service',
 
@@ -446,14 +610,35 @@ Em.I18n.translations = {
   'hosts.host.add':'Add New Hosts',
   'hosts.host.back':'Back to Hosts',
   'hosts.table.noHosts':'No hosts to display',
-  'hosts.table.Search': 'Search:',
 
   'hosts.host.metrics.cpu':'CPU Usage',
+  'hosts.host.metrics.cpu.displayNames.cpu_wio':'CPU I/O Idle',
+  'hosts.host.metrics.cpu.displayNames.cpu_idle':'CPU Idle',
+  'hosts.host.metrics.cpu.displayNames.cpu_nice':'CPU Nice',
+  'hosts.host.metrics.cpu.displayNames.cpu_aidle':'CPU Boot Idle',
+  'hosts.host.metrics.cpu.displayNames.cpu_system':'CPU System',
+  'hosts.host.metrics.cpu.displayNames.cpu_user':'CPU User',
   'hosts.host.metrics.disk':'Disk Usage',
+  'hosts.host.metrics.disk.displayNames.disk_total':'Total',
+  'hosts.host.metrics.disk.displayNames.disk_free':'Available',
   'hosts.host.metrics.load':'Load',
+  'hosts.host.metrics.load.displayNames.load_fifteen':'15 Minute Load',
+  'hosts.host.metrics.load.displayNames.load_one':'1 Minute Load',
+  'hosts.host.metrics.load.displayNames.load_five':'5 Minute Load',
   'hosts.host.metrics.memory':'Memory Usage',
+  'hosts.host.metrics.memory.displayNames.mem_shared':'Shared',
+  'hosts.host.metrics.memory.displayNames.swap_free':'Swap',
+  'hosts.host.metrics.memory.displayNames.mem_buffers':'Buffers',
+  'hosts.host.metrics.memory.displayNames.mem_free':'Free',
+  'hosts.host.metrics.memory.displayNames.mem_cached':'Cached',
   'hosts.host.metrics.network':'Network Usage',
+  'hosts.host.metrics.network.displayNames.pkts_out':'Packets Out',
+  'hosts.host.metrics.network.displayNames.bytes_in':'Bytes In',
+  'hosts.host.metrics.network.displayNames.bytes_out':'Bytes Out',
+  'hosts.host.metrics.network.displayNames.pkts_in':'Packets In',
   'hosts.host.metrics.processes':'Processes',
+  'hosts.host.metrics.processes.displayNames.proc_total':'Total Processes',
+  'hosts.host.metrics.processes.displayNames.proc_run':'Processes Run',
 
   'hosts.host.summary.header':'Summary',
   'hosts.host.summary.hostname':'Hostname',
@@ -501,6 +686,19 @@ Em.I18n.translations = {
   'charts.heatmap.category.hdfs':'HDFS',
   'charts.heatmap.category.mapreduce': 'MapReduce',
   'charts.heatmap.unknown': 'Unknown',
+  'charts.heatmap.label.notApplicable' :'Not Applicable',
+  'charts.heatmap.label.invalidData' :'Invalid data',
+  'charts.heatmap.metrics.bytesRead' :'Bytes Read',
+  'charts.heatmap.metrics.bytesWritten' :'Bytes Written',
+  'charts.heatmap.metrics.DFSGarbageCollection' :'Garbage Collection Time',
+  'charts.heatmap.metrics.DFSMemHeapUsed' :'JVM Heap Memory Used',
+  'charts.heatmap.metrics.diskSpaceUsed' :'Disk Space Used %',
+  'charts.heatmap.metrics.MapReduceGCTime' :'Garbage Collection Time',
+  'charts.heatmap.metrics.mapsRunning' :'Maps Running',
+  'charts.heatmap.metrics.MRMemHeapUsed' :'JVM Heap Memory Used',
+  'charts.heatmap.metrics.reducesRunning' :'Reduces Running',
+  'charts.heatmap.metrics.memoryUsed' :'Memory Used %',
+  'charts.heatmap.metrics.processRun' :'Total Running Processes',
 
   'metric.notFound':'no items found',
   'metric.default':'combined',
@@ -519,6 +717,7 @@ Em.I18n.translations = {
   'dashboard.clusterMetrics':'Cluster Metrics',
 
   'dashboard.clusterMetrics.cpu':'CPU Usage',
+  'dashboard.clusterMetrics.cpu.displayNames.idle':'Idle',
   'dashboard.clusterMetrics.load':'Cluster Load',
   'dashboard.clusterMetrics.memory':'Memory Usage',
   'dashboard.clusterMetrics.network':'Network Usage',
@@ -619,6 +818,8 @@ Em.I18n.translations = {
   'apps.item.dag.output': 'Output',
   'apps.item.dag.duration': 'Duration',
 
+  'apps.table.column.appId':'App ID',
+  'apps.table.column.runDate': 'Run Date',
   'apps.avgTable.avg': 'Avg',
   'apps.avgTable.min': 'Min',
   'apps.avgTable.max': 'Max',