Browse Source

AMBARI-5455. Ambari configuration for map join conversion and tez container size seems wrong. (srimanth)

Srimanth Gunturi 11 years ago
parent
commit
864fae63f2

+ 8 - 3
ambari-web/app/utils/configs/defaults_providers/hive_defaults_provider.js

@@ -21,15 +21,20 @@ require('utils/configs/defaults_providers/yarn_defaults_provider');
 App.HiveDefaultsProvider = App.YARNDefaultsProvider.extend({
 
   configsTemplate: {
-    'hive.tez.container.size': null
+    'hive.tez.container.size': null,
+    'hive.tez.java.opts': null,
+    'hive.auto.convert.join.noconditionaltask.size': null
   },
 
   getDefaults : function(localDB) {
     var configs = this._super(localDB);
     if (configs['yarn.scheduler.maximum-allocation-mb'] != null && configs['mapreduce.map.memory.mb'] != null
         && configs['mapreduce.reduce.memory.mb'] != null) {
-      var containerSize = configs['mapreduce.map.memory.mb'] >= 2048 ? configs['mapreduce.map.memory.mb'] : configs['mapreduce.reduce.memory.mb'];
-      configs['hive.tez.container.size'] = Math.min(configs['yarn.scheduler.maximum-allocation-mb'], containerSize);
+      var containerSize = configs['mapreduce.map.memory.mb'] > 2048 ? configs['mapreduce.map.memory.mb'] : configs['mapreduce.reduce.memory.mb'];
+      containerSize = Math.min(configs['yarn.scheduler.maximum-allocation-mb'], containerSize);
+      configs['hive.auto.convert.join.noconditionaltask.size'] = Math.round(containerSize / 3) * 1048576; // MB to Bytes
+      configs['hive.tez.java.opts'] = "-server -Xmx"+containerSize+"m -Djava.net.preferIPv4Stack=true";
+      configs['hive.tez.container.size'] = containerSize;
     } else {
       jQuery.extend(configs, this.get('configsTemplate'));
     }

+ 10 - 0
ambari-web/app/utils/configs/validators/hive_configs_validator.js

@@ -24,9 +24,19 @@ App.HiveConfigsValidator = App.ServiceConfigsValidator.create({
    */
   configValidators: {
     'hive.tez.container.size': 'hiveTezContainerMb',
+    'hive.tez.java.opts': 'hiveTezJavaOpts',
+    'hive.auto.convert.join.noconditionaltask.size': 'hiveTezJoinNoConditionalBytes'
   },
 
   hiveTezContainerMb: function(config) {
     return this.validatorLessThenDefaultValue(config);
+  },
+
+  hiveTezJavaOpts: function(config) {
+    return this.validateXmxValue(config);
+  },
+
+  hiveTezJoinNoConditionalBytes: function(config) {
+    return this.validatorLessThenDefaultValue(config);
   }
 });