You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by sr...@apache.org on 2013/11/13 19:54:57 UTC

[01/20] git commit: AMBARI-3578. Update repoinfo URLs with appropriate values. (swagle)

Updated Branches:
  refs/heads/branch-1.4-bk [created] b954a8d46


AMBARI-3578. Update repoinfo URLs with appropriate values. (swagle)


Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/105a6788
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/105a6788
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/105a6788

Branch: refs/heads/branch-1.4-bk
Commit: 105a678824c8b762f4eab74f1a2ce8c68a87fdf7
Parents: 6696a62
Author: Siddharth Wagle <sw...@hortonworks.com>
Authored: Tue Oct 22 15:00:11 2013 -0700
Committer: Mahadev Konar <ma...@apache.org>
Committed: Tue Oct 22 15:12:23 2013 -0700

----------------------------------------------------------------------
 ambari-server/pom.xml                             |  2 +-
 .../resources/stacks/HDP/2.0.6/repos/repoinfo.xml | 16 ++++++++--------
 .../stacks/HDPLocal/2.0.6/repos/repoinfo.xml      | 18 +++++++++---------
 3 files changed, 18 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/105a6788/ambari-server/pom.xml
----------------------------------------------------------------------
diff --git a/ambari-server/pom.xml b/ambari-server/pom.xml
index c94bfe6..cebf47b 100644
--- a/ambari-server/pom.xml
+++ b/ambari-server/pom.xml
@@ -29,7 +29,7 @@
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <python.ver>python &gt;= 2.6</python.ver>
-    <hdpUrlForCentos6>http://s3.amazonaws.com/dev.hortonworks.com/HDP-2.0.6.0/repos/centos6</hdpUrlForCentos6>
+    <hdpUrlForCentos6>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.6.0</hdpUrlForCentos6>
   </properties>
   <build>
     <plugins>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/105a6788/ambari-server/src/main/resources/stacks/HDP/2.0.6/repos/repoinfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/repos/repoinfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.0.6/repos/repoinfo.xml
index 09f1834..ec62810 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/repos/repoinfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/repos/repoinfo.xml
@@ -18,56 +18,56 @@
 <reposinfo>
   <os type="centos6">
     <repo>
-      <baseurl>REPLACE_WITH_CENTOS6_URL</baseurl>
+      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.6.0</baseurl>
       <repoid>HDP-2.0.6</repoid>
       <reponame>HDP</reponame>
     </repo>
   </os>
   <os type="centos5">
     <repo>
-      <baseurl>REPLACE_WITH_CENTOS5_URL</baseurl>
+      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/2.x/updates/2.0.6.0</baseurl>
       <repoid>HDP-2.0.6</repoid>
       <reponame>HDP</reponame>
     </repo>
   </os>
   <os type="redhat6">
     <repo>
-      <baseurl>REPLACE_WITH_CENTOS6_URL</baseurl>
+      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.6.0</baseurl>
       <repoid>HDP-2.0.6</repoid>
       <reponame>HDP</reponame>
     </repo>
   </os>
   <os type="redhat5">
     <repo>
-      <baseurl>REPLACE_WITH_CENTOS5_URL</baseurl>
+      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/2.x/updates/2.0.6.0</baseurl>
       <repoid>HDP-2.0.6</repoid>
       <reponame>HDP</reponame>
     </repo>
   </os>
    <os type="oraclelinux6">
     <repo>
-      <baseurl>REPLACE_WITH_CENTOS6_URL</baseurl>
+      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.6.0</baseurl>
       <repoid>HDP-2.0.6</repoid>
       <reponame>HDP</reponame>
     </repo>
   </os>
   <os type="oraclelinux5">
     <repo>
-      <baseurl>REPLACE_WITH_CENTOS5_URL</baseurl>
+      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/2.x/updates/2.0.6.0</baseurl>
       <repoid>HDP-2.0.6</repoid>
       <reponame>HDP</reponame>
     </repo>
   </os>
   <os type="suse11">
     <repo>
-      <baseurl>REPLACE_WITH_SUSE11_URL</baseurl>
+      <baseurl>http://public-repo-1.hortonworks.com/HDP/suse11/2.x/updates/2.0.6.0</baseurl>
       <repoid>HDP-2.0.6</repoid>
       <reponame>HDP</reponame>
     </repo>
   </os>
   <os type="sles11">
     <repo>
-      <baseurl>REPLACE_WITH_SUSE11_URL</baseurl>
+      <baseurl>http://public-repo-1.hortonworks.com/HDP/suse11/2.x/updates/2.0.6.0</baseurl>
       <repoid>HDP-2.0.6</repoid>
       <reponame>HDP</reponame>
     </repo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/105a6788/ambari-server/src/main/resources/stacks/HDPLocal/2.0.6/repos/repoinfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/2.0.6/repos/repoinfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/2.0.6/repos/repoinfo.xml
index 09f1834..6409d73 100644
--- a/ambari-server/src/main/resources/stacks/HDPLocal/2.0.6/repos/repoinfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/2.0.6/repos/repoinfo.xml
@@ -18,56 +18,56 @@
 <reposinfo>
   <os type="centos6">
     <repo>
-      <baseurl>REPLACE_WITH_CENTOS6_URL</baseurl>
+      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.6.0</baseurl>
       <repoid>HDP-2.0.6</repoid>
       <reponame>HDP</reponame>
     </repo>
   </os>
   <os type="centos5">
     <repo>
-      <baseurl>REPLACE_WITH_CENTOS5_URL</baseurl>
+      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/2.x/updates/2.0.6.0</baseurl>
       <repoid>HDP-2.0.6</repoid>
       <reponame>HDP</reponame>
     </repo>
   </os>
   <os type="redhat6">
     <repo>
-      <baseurl>REPLACE_WITH_CENTOS6_URL</baseurl>
+      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.6.0</baseurl>
       <repoid>HDP-2.0.6</repoid>
       <reponame>HDP</reponame>
     </repo>
   </os>
   <os type="redhat5">
     <repo>
-      <baseurl>REPLACE_WITH_CENTOS5_URL</baseurl>
+      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/2.x/updates/2.0.6.0</baseurl>
       <repoid>HDP-2.0.6</repoid>
       <reponame>HDP</reponame>
     </repo>
   </os>
-   <os type="oraclelinux6">
+  <os type="oraclelinux6">
     <repo>
-      <baseurl>REPLACE_WITH_CENTOS6_URL</baseurl>
+      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.6.0</baseurl>
       <repoid>HDP-2.0.6</repoid>
       <reponame>HDP</reponame>
     </repo>
   </os>
   <os type="oraclelinux5">
     <repo>
-      <baseurl>REPLACE_WITH_CENTOS5_URL</baseurl>
+      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/2.x/updates/2.0.6.0</baseurl>
       <repoid>HDP-2.0.6</repoid>
       <reponame>HDP</reponame>
     </repo>
   </os>
   <os type="suse11">
     <repo>
-      <baseurl>REPLACE_WITH_SUSE11_URL</baseurl>
+      <baseurl>http://public-repo-1.hortonworks.com/HDP/suse11/2.x/updates/2.0.6.0</baseurl>
       <repoid>HDP-2.0.6</repoid>
       <reponame>HDP</reponame>
     </repo>
   </os>
   <os type="sles11">
     <repo>
-      <baseurl>REPLACE_WITH_SUSE11_URL</baseurl>
+      <baseurl>http://public-repo-1.hortonworks.com/HDP/suse11/2.x/updates/2.0.6.0</baseurl>
       <repoid>HDP-2.0.6</repoid>
       <reponame>HDP</reponame>
     </repo>


[11/20] git commit: AMBARI-3687. Default YARN/MR2 AM mem defaults are empty. (srimanth)

Posted by sr...@apache.org.
AMBARI-3687. Default YARN/MR2 AM mem defaults are empty. (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/0ae51790
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/0ae51790
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/0ae51790

Branch: refs/heads/branch-1.4-bk
Commit: 0ae517904cfe2574a78c2147ca67c68a6ae33b65
Parents: 2204615
Author: Srimanth Gunturi <sg...@hortonworks.com>
Authored: Mon Nov 4 16:19:34 2013 -0800
Committer: Srimanth Gunturi <sg...@hortonworks.com>
Committed: Tue Nov 5 12:52:33 2013 -0800

----------------------------------------------------------------------
 .../app/utils/defaults_providers/yarn_defaults_provider.js     | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/0ae51790/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js b/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js
index 80732cb..9e83949 100644
--- a/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js
+++ b/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js
@@ -133,7 +133,7 @@ App.YARNDefaultsProvider = App.DefaultsProvider.create({
     return ramPerContainer <= 2048 ? 2 * ramPerContainer : ramPerContainer;
   }.property('ramPerContainer'),
 
-  amMemeory: function () {
+  amMemory: function () {
     return Math.max(this.get('mapMemory'), this.get('reduceMemory'));
   }.property('mapMemory', 'reduceMemory'),
 
@@ -262,11 +262,11 @@ App.YARNDefaultsProvider = App.DefaultsProvider.create({
     var host = hosts[0] && localDB.hosts[hosts[0]];
     if (host) {
       clusterData.cpu = parseInt(host.cpu);
-      invalidMountPoints= ['/homes/','/dev/','/tmp/'];
       var length = 0;
       host.disk_info.forEach(function(disk) {
         //invalid mountpoints
-        if (!(disk.mountpoint.startsWith('/homes/') || disk.mountpoint.startsWith('/dev/') || disk.mountpoint.startsWith('/tmp/'))) {
+        if (!(disk.mountpoint.startsWith('/home/') || disk.mountpoint.startsWith('/homes/') || 
+        		disk.mountpoint.startsWith('/dev/') || disk.mountpoint.startsWith('/tmp/'))) {
           length++;
         }
       },this);


[17/20] git commit: AMBARI-3719. YARN default number of containers calculation skewed towards heavier resources. (srimanth)

Posted by sr...@apache.org.
AMBARI-3719. YARN default number of containers calculation skewed towards heavier resources. (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/4ff28653
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/4ff28653
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/4ff28653

Branch: refs/heads/branch-1.4-bk
Commit: 4ff28653bcd22859974d412d4d88c46f0255dcfb
Parents: 3bd4b53
Author: Srimanth Gunturi <sg...@hortonworks.com>
Authored: Thu Nov 7 14:29:45 2013 -0800
Committer: Srimanth Gunturi <sg...@hortonworks.com>
Committed: Thu Nov 7 14:32:44 2013 -0800

----------------------------------------------------------------------
 .../app/utils/configs/defaults_providers/yarn_defaults_provider.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/4ff28653/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js b/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
index a263602..7a37f0b 100644
--- a/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
+++ b/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
@@ -106,7 +106,7 @@ App.YARNDefaultsProvider = App.DefaultsProvider.create({
     }
     ram *= this.get('GB');
     ram /= containerSize;
-    return Math.round(Math.max(cpu, Math.min(disk, ram)));
+    return Math.round(Math.min(cpu, Math.min(disk, ram)));
   }.property('clusterData.cpu', 'clusterData.ram', 'clusterData.hBaseInstalled', 'clusterData.disk', 'reservedRam', 'hBaseRam', 'recommendedMinimumContainerSize'),
 
   /**


[02/20] AMBARI-3579. Adding new stack based on hadoop 1.0. (mahadev)

Posted by sr...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/OOZIE/configuration/global.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/OOZIE/configuration/global.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/OOZIE/configuration/global.xml
new file mode 100644
index 0000000..ddbf780
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/OOZIE/configuration/global.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>oozie_user</name>
+    <value>oozie</value>
+    <description>Oozie User.</description>
+  </property>
+  <property>
+    <name>oozieserver_host</name>
+    <value></value>
+    <description>Oozie Server Host.</description>
+  </property>
+  <property>
+    <name>oozie_database</name>
+    <value></value>
+    <description>Oozie Server Database.</description>
+  </property>
+  <property>
+    <name>oozie_derby_database</name>
+    <value>Derby</value>
+    <description>Oozie Derby Database.</description>
+  </property>
+  <property>
+    <name>oozie_existing_mysql_database</name>
+    <value>MySQL</value>
+    <description>Oozie MySQL Database.</description>
+  </property>
+  <property>
+    <name>oozie_existing_mysql_host</name>
+    <value></value>
+    <description>Existing MySQL Host.</description>
+  </property>
+  <property>
+    <name>oozie_existing_oracle_database</name>
+    <value>Oracle</value>
+    <description>Oracle Database</description>
+  </property>
+  <property>
+    <name>oozie_existing_oracle_host</name>
+    <value></value>
+    <description>Database Host.</description>
+  </property>
+  <property>
+    <name>oozie_ambari_database</name>
+    <value>MySQL</value>
+    <description>Database default.</description>
+  </property>
+  <property>
+    <name>oozie_ambari_host</name>
+    <value></value>
+    <description>Host on which databse will be created.</description>
+  </property>
+  <property>
+    <name>oozie_database_name</name>
+    <value>oozie</value>
+    <description>Database name used for the Oozie.</description>
+  </property>
+  <property>
+    <name>oozie_metastore_user_name</name>
+    <value>oozie</value>
+    <description>Database user name to use to connect to the database</description>
+  </property>
+  <property>
+    <name>oozie_metastore_user_passwd</name>
+    <value></value>
+    <description>Database password to use to connect to the database</description>
+  </property>
+  <property>
+    <name>oozie_data_dir</name>
+    <value>/hadoop/oozie/data</value>
+    <description>Data directory in which the Oozie DB exists</description>
+  </property>
+  <property>
+    <name>oozie_log_dir</name>
+    <value>/var/log/oozie</value>
+    <description>Directory for oozie logs</description>
+  </property>
+  <property>
+    <name>oozie_pid_dir</name>
+    <value>/var/run/oozie</value>
+    <description>Directory in which the pid files for oozie reside.</description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/OOZIE/configuration/oozie-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/OOZIE/configuration/oozie-site.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/OOZIE/configuration/oozie-site.xml
new file mode 100644
index 0000000..eeed0d8
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/OOZIE/configuration/oozie-site.xml
@@ -0,0 +1,237 @@
+<?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+        
+       http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->     
+
+<configuration>
+
+<!--
+    Refer to the oozie-default.xml file for the complete list of
+    Oozie configuration properties and their default values.
+-->
+  <property>
+    <name>oozie.base.url</name>
+    <value>http://localhost:11000/oozie</value>
+    <description>Base Oozie URL.</description>
+   </property>
+
+  <property>
+    <name>oozie.system.id</name>
+    <value>oozie-${user.name}</value>
+    <description>
+    The Oozie system ID.
+    </description>
+   </property>
+
+   <property>
+     <name>oozie.systemmode</name>
+     <value>NORMAL</value>
+     <description>
+     System mode for  Oozie at startup.
+     </description>
+   </property>
+
+   <property>
+     <name>oozie.service.AuthorizationService.authorization.enabled</name>
+     <value>true</value>
+     <description>
+     Specifies whether security (user name/admin role) is enabled or not.
+     If disabled any user can manage Oozie system and manage any job.
+     </description>
+   </property>
+
+   <property>
+     <name>oozie.service.PurgeService.older.than</name>
+     <value>30</value>
+     <description>
+     Jobs older than this value, in days, will be purged by the PurgeService.
+     </description>
+   </property>
+
+   <property>
+     <name>oozie.service.PurgeService.purge.interval</name>
+     <value>3600</value>
+     <description>
+     Interval at which the purge service will run, in seconds.
+     </description>
+   </property>
+
+   <property>
+     <name>oozie.service.CallableQueueService.queue.size</name>
+     <value>1000</value>
+     <description>Max callable queue size</description>
+   </property>
+
+   <property>
+     <name>oozie.service.CallableQueueService.threads</name>
+     <value>10</value>
+     <description>Number of threads used for executing callables</description>
+   </property>
+
+   <property>
+     <name>oozie.service.CallableQueueService.callable.concurrency</name>
+     <value>3</value>
+     <description>
+     Maximum concurrency for a given callable type.
+     Each command is a callable type (submit, start, run, signal, job, jobs, suspend,resume, etc).
+     Each action type is a callable type (Map-Reduce, Pig, SSH, FS, sub-workflow, etc).
+     All commands that use action executors (action-start, action-end, action-kill and action-check) use
+     the action type as the callable type.
+     </description>
+   </property>
+
+   <property>
+     <name>oozie.service.coord.normal.default.timeout</name>
+     <value>120</value>
+     <description>Default timeout for a coordinator action input check (in minutes) for normal job.
+      -1 means infinite timeout</description>
+   </property>
+
+   <property>
+     <name>oozie.db.schema.name</name>
+     <value>oozie</value>
+     <description>
+      Oozie DataBase Name
+     </description>
+   </property>
+
+    <property>
+      <name>oozie.service.HadoopAccessorService.jobTracker.whitelist</name>
+      <value> </value>
+      <description>
+      Whitelisted job tracker for Oozie service.
+      </description>
+    </property>
+   
+    <property>
+      <name>oozie.authentication.type</name>
+      <value>simple</value>
+      <description>
+      </description>
+    </property>
+   
+    <property>
+      <name>oozie.service.HadoopAccessorService.nameNode.whitelist</name>
+      <value> </value>
+      <description>
+      </description>
+    </property>
+
+    <property>
+      <name>oozie.service.WorkflowAppService.system.libpath</name>
+      <value>/user/${user.name}/share/lib</value>
+      <description>
+      System library path to use for workflow applications.
+      This path is added to workflow application if their job properties sets
+      the property 'oozie.use.system.libpath' to true.
+      </description>
+    </property>
+
+    <property>
+      <name>use.system.libpath.for.mapreduce.and.pig.jobs</name>
+      <value>false</value>
+      <description>
+      If set to true, submissions of MapReduce and Pig jobs will include
+      automatically the system library path, thus not requiring users to
+      specify where the Pig JAR files are. Instead, the ones from the system
+      library path are used.
+      </description>
+    </property>
+    <property>
+      <name>oozie.authentication.kerberos.name.rules</name>
+      <value>DEFAULT</value>
+      <description>The mapping from kerberos principal names to local OS user names.</description>
+    </property>
+    <property>
+      <name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
+      <value>*=/etc/hadoop/conf</value>
+      <description>
+          Comma separated AUTHORITY=HADOOP_CONF_DIR, where AUTHORITY is the HOST:PORT of
+          the Hadoop service (JobTracker, HDFS). The wildcard '*' configuration is
+          used when there is no exact match for an authority. The HADOOP_CONF_DIR contains
+          the relevant Hadoop *-site.xml files. If the path is relative is looked within
+          the Oozie configuration directory; though the path can be absolute (i.e. to point
+          to Hadoop client conf/ directories in the local filesystem.
+      </description>
+    </property>
+    <property>
+        <name>oozie.service.ActionService.executor.ext.classes</name>
+        <value>org.apache.oozie.action.email.EmailActionExecutor,
+org.apache.oozie.action.hadoop.HiveActionExecutor,
+org.apache.oozie.action.hadoop.ShellActionExecutor,
+org.apache.oozie.action.hadoop.SqoopActionExecutor,
+org.apache.oozie.action.hadoop.DistcpActionExecutor</value>
+    </property>
+
+    <property>
+        <name>oozie.service.SchemaService.wf.ext.schemas</name>
+        <value>shell-action-0.1.xsd,email-action-0.1.xsd,hive-action-0.2.xsd,sqoop-action-0.2.xsd,ssh-action-0.1.xsd,distcp-action-0.1.xsd</value>
+    </property>
+    <property>
+        <name>oozie.service.JPAService.create.db.schema</name>
+        <value>false</value>
+        <description>
+            Creates Oozie DB.
+
+            If set to true, it creates the DB schema if it does not exist. If the DB schema exists is a NOP.
+            If set to false, it does not create the DB schema. If the DB schema does not exist it fails start up.
+        </description>
+    </property>
+
+    <property>
+        <name>oozie.service.JPAService.jdbc.driver</name>
+        <value>org.apache.derby.jdbc.EmbeddedDriver</value>
+        <description>
+            JDBC driver class.
+        </description>
+    </property>
+
+    <property>
+        <name>oozie.service.JPAService.jdbc.url</name>
+        <value>jdbc:derby:${oozie.data.dir}/${oozie.db.schema.name}-db;create=true</value>
+        <description>
+            JDBC URL.
+        </description>
+    </property>
+
+    <property>
+        <name>oozie.service.JPAService.jdbc.username</name>
+        <value>sa</value>
+        <description>
+            DB user name.
+        </description>
+    </property>
+
+    <property>
+        <name>oozie.service.JPAService.jdbc.password</name>
+        <value> </value>
+        <description>
+            DB user password.
+
+            IMPORTANT: if password is emtpy leave a 1 space string, the service trims the value,
+                       if empty Configuration assumes it is NULL.
+        </description>
+    </property>
+
+    <property>
+        <name>oozie.service.JPAService.pool.max.active.conn</name>
+        <value>10</value>
+        <description>
+             Max number of connections.
+        </description>
+    </property>
+</configuration>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/OOZIE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/OOZIE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/OOZIE/metainfo.xml
new file mode 100644
index 0000000..3f9fff5
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/OOZIE/metainfo.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>System for workflow coordination and execution of Apache Hadoop jobs.  This also includes the installation of the optional Oozie Web Console which relies on and will install the &lt;a target="_blank" href="http://www.sencha.com/products/extjs/license/"&gt;ExtJS&lt;/a&gt; Library.</comment>
+    <version>3.3.2.1.3.2.0</version>
+
+    <components>
+        <component>
+            <name>OOZIE_SERVER</name>
+            <category>MASTER</category>
+        </component>
+
+        <component>
+            <name>OOZIE_CLIENT</name>
+            <category>CLIENT</category>
+        </component>
+    </components>
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/PIG/configuration/pig.properties
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/PIG/configuration/pig.properties b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/PIG/configuration/pig.properties
new file mode 100644
index 0000000..01000b5
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/PIG/configuration/pig.properties
@@ -0,0 +1,52 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Pig default configuration file. All values can be overwritten by pig.properties and command line arguments.
+# see bin/pig -help
+
+# brief logging (no timestamps)
+brief=false
+
+#debug level, INFO is default
+debug=INFO
+
+#verbose print all log messages to screen (default to print only INFO and above to screen)
+verbose=false
+
+#exectype local|mapreduce, mapreduce is default
+exectype=mapreduce
+
+#Enable insertion of information about script into hadoop job conf 
+pig.script.info.enabled=true
+
+#Do not spill temp files smaller than this size (bytes)
+pig.spill.size.threshold=5000000
+#EXPERIMENT: Activate garbage collection when spilling a file bigger than this size (bytes)
+#This should help reduce the number of files being spilled.
+pig.spill.gc.activation.size=40000000
+
+#the following two parameters are to help estimate the reducer number
+pig.exec.reducers.bytes.per.reducer=1000000000
+pig.exec.reducers.max=999
+
+#Temporary location to store the intermediate data.
+pig.temp.dir=/tmp/
+
+#Threshold for merging FRJoin fragment files
+pig.files.concatenation.threshold=100
+pig.optimistic.files.concatenation=false;
+
+pig.disable.counter=false

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/PIG/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/PIG/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/PIG/metainfo.xml
new file mode 100644
index 0000000..8efacb4
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/PIG/metainfo.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>Scripting platform for analyzing large datasets</comment>
+    <version>0.11.1.1.3.2.0</version>
+
+    <components>
+        <component>
+            <name>PIG</name>
+            <category>CLIENT</category>
+        </component>
+    </components>
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/SQOOP/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/SQOOP/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/SQOOP/metainfo.xml
new file mode 100644
index 0000000..1f03a35
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/SQOOP/metainfo.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>Tool for transferring bulk data between Apache Hadoop and structured data stores such as relational databases</comment>
+    <version>1.4.3.1.3.2.0</version>
+
+    <components>
+        <component>
+            <name>SQOOP</name>
+            <category>CLIENT</category>
+        </component>
+    </components>
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/WEBHCAT/configuration/webhcat-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/WEBHCAT/configuration/webhcat-site.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/WEBHCAT/configuration/webhcat-site.xml
new file mode 100644
index 0000000..31d0113
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/WEBHCAT/configuration/webhcat-site.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+<!-- The default settings for Templeton. -->
+<!-- Edit templeton-site.xml to change settings for your local -->
+<!-- install. -->
+
+<configuration>
+
+  <property>
+    <name>templeton.port</name>
+      <value>50111</value>
+    <description>The HTTP port for the main server.</description>
+  </property>
+
+  <property>
+    <name>templeton.hadoop.conf.dir</name>
+    <value>/etc/hadoop/conf</value>
+    <description>The path to the Hadoop configuration.</description>
+  </property>
+
+  <property>
+    <name>templeton.jar</name>
+    <value>/usr/lib/hcatalog/share/webhcat/svr/webhcat.jar</value>
+    <description>The path to the Templeton jar file.</description>
+  </property>
+
+  <property>
+    <name>templeton.libjars</name>
+    <value>/usr/lib/zookeeper/zookeeper.jar</value>
+    <description>Jars to add the the classpath.</description>
+  </property>
+
+
+  <property>
+    <name>templeton.hadoop</name>
+    <value>/usr/bin/hadoop</value>
+    <description>The path to the Hadoop executable.</description>
+  </property>
+
+  <property>
+    <name>templeton.pig.archive</name>
+    <value>hdfs:///apps/webhcat/pig.tar.gz</value>
+    <description>The path to the Pig archive.</description>
+  </property>
+
+  <property>
+    <name>templeton.pig.path</name>
+    <value>pig.tar.gz/pig/bin/pig</value>
+    <description>The path to the Pig executable.</description>
+  </property>
+
+  <property>
+    <name>templeton.hcat</name>
+    <value>/usr/bin/hcat</value>
+    <description>The path to the hcatalog executable.</description>
+  </property>
+
+  <property>
+    <name>templeton.hive.archive</name>
+    <value>hdfs:///apps/webhcat/hive.tar.gz</value>
+    <description>The path to the Hive archive.</description>
+  </property>
+
+  <property>
+    <name>templeton.hive.path</name>
+    <value>hive.tar.gz/hive/bin/hive</value>
+    <description>The path to the Hive executable.</description>
+  </property>
+
+  <property>
+    <name>templeton.hive.properties</name>
+    <value></value>
+    <description>Properties to set when running hive.</description>
+  </property>
+
+
+  <property>
+    <name>templeton.zookeeper.hosts</name>
+    <value></value>
+    <description>ZooKeeper servers, as comma separated host:port pairs</description>
+  </property>
+
+  <property>
+    <name>templeton.storage.class</name>
+    <value>org.apache.hcatalog.templeton.tool.ZooKeeperStorage</value>
+    <description>The class to use as storage</description>
+  </property>
+
+  <property>
+   <name>templeton.override.enabled</name>
+   <value>false</value>
+   <description>
+     Enable the override path in templeton.override.jars
+   </description>
+ </property>
+
+ <property>
+    <name>templeton.streaming.jar</name>
+    <value>hdfs:///apps/webhcat/hadoop-streaming.jar</value>
+    <description>The hdfs path to the Hadoop streaming jar file.</description>
+  </property> 
+
+  <property>
+    <name>templeton.exec.timeout</name>
+    <value>60000</value>
+    <description>Time out for templeton api</description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/WEBHCAT/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/WEBHCAT/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/WEBHCAT/metainfo.xml
new file mode 100644
index 0000000..c47b34e
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/WEBHCAT/metainfo.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>This is comment for WEBHCAT service</comment>
+    <version>0.11.0.1.3.2.0</version>
+
+    <components>
+        <component>
+            <name>WEBHCAT_SERVER</name>
+            <category>MASTER</category>
+        </component>
+    </components>
+
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/ZOOKEEPER/configuration/global.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/ZOOKEEPER/configuration/global.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/ZOOKEEPER/configuration/global.xml
new file mode 100644
index 0000000..f78df89
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/ZOOKEEPER/configuration/global.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>zk_user</name>
+    <value>zookeeper</value>
+    <description>ZooKeeper User.</description>
+  </property>
+  <property>
+    <name>zookeeperserver_host</name>
+    <value></value>
+    <description>ZooKeeper Server Hosts.</description>
+  </property>
+  <property>
+    <name>zk_data_dir</name>
+    <value>/hadoop/zookeeper</value>
+    <description>Data directory for ZooKeeper.</description>
+  </property>
+  <property>
+    <name>zk_log_dir</name>
+    <value>/var/log/zookeeper</value>
+    <description>ZooKeeper Log Dir</description>
+  </property>
+  <property>
+    <name>zk_pid_dir</name>
+    <value>/var/run/zookeeper</value>
+    <description>ZooKeeper Pid Dir</description>
+  </property>
+  <property>
+    <name>zk_pid_file</name>
+    <value>/var/run/zookeeper/zookeeper_server.pid</value>
+    <description>ZooKeeper Pid File</description>
+  </property>
+  <property>
+    <name>tickTime</name>
+    <value>2000</value>
+    <description>The length of a single tick in milliseconds, which is the basic time unit used by ZooKeeper</description>
+  </property>
+  <property>
+    <name>initLimit</name>
+    <value>10</value>
+    <description>Ticks to allow for sync at Init.</description>
+  </property>
+  <property>
+    <name>syncLimit</name>
+    <value>5</value>
+    <description>Ticks to allow for sync at Runtime.</description>
+  </property>
+  <property>
+    <name>clientPort</name>
+    <value>2181</value>
+    <description>Port for running ZK Server.</description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/ZOOKEEPER/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/ZOOKEEPER/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/ZOOKEEPER/metainfo.xml
new file mode 100644
index 0000000..b18ae7e
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/ZOOKEEPER/metainfo.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>Centralized service which provides highly reliable distributed coordination</comment>
+    <version>3.4.5.1.3.2.0</version>
+
+    <components>
+        <component>
+            <name>ZOOKEEPER_SERVER</name>
+            <category>MASTER</category>
+        </component>
+
+        <component>
+            <name>ZOOKEEPER_CLIENT</name>
+            <category>CLIENT</category>
+        </component>
+    </components>
+
+</metainfo>


[16/20] git commit: AMBARI-3708. Reconfigure of dynamic configs not showing modified values. (srimanth)

Posted by sr...@apache.org.
AMBARI-3708. Reconfigure of dynamic configs not showing modified values. (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/3bd4b535
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/3bd4b535
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/3bd4b535

Branch: refs/heads/branch-1.4-bk
Commit: 3bd4b535c889926eea463cb9d4165b04062d2558
Parents: 24b8a58
Author: Srimanth Gunturi <sg...@hortonworks.com>
Authored: Wed Nov 6 15:53:07 2013 -0800
Committer: Srimanth Gunturi <sg...@hortonworks.com>
Committed: Wed Nov 6 16:01:01 2013 -0800

----------------------------------------------------------------------
 .../app/controllers/main/service/info/configs.js | 19 +++++++++++--------
 .../validators/mapreduce2_configs_validator.js   |  6 +++---
 2 files changed, 14 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/3bd4b535/ambari-web/app/controllers/main/service/info/configs.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/info/configs.js b/ambari-web/app/controllers/main/service/info/configs.js
index b77e4db..24c9a72 100644
--- a/ambari-web/app/controllers/main/service/info/configs.js
+++ b/ambari-web/app/controllers/main/service/info/configs.js
@@ -657,14 +657,17 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
       }
       if (serviceConfigProperty.get('serviceName') === this.get('content.serviceName')) {
 
-        defaults.forEach(function(defaults) {
-          for(var name in defaults) {
-            if (serviceConfigProperty.name == name) {
-              serviceConfigProperty.set('value', defaults[name]);
-              serviceConfigProperty.set('defaultValue', defaults[name]);
-            }
-          }
-        });
+        // Do not reset values when reconfiguring.
+        // This might be useful to setting better descriptions
+        // or default values sometime in the future.
+        // defaults.forEach(function(defaults) {
+        //   for(var name in defaults) {
+        //    if (serviceConfigProperty.name == name) {
+        //       serviceConfigProperty.set('value', defaults[name]);
+        //       serviceConfigProperty.set('defaultValue', defaults[name]);
+        //     }
+        //   }
+        // });
 
         if (s.configsValidator) {
           var validators = s.configsValidator.get('configValidators');

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/3bd4b535/ambari-web/app/utils/configs/validators/mapreduce2_configs_validator.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/configs/validators/mapreduce2_configs_validator.js b/ambari-web/app/utils/configs/validators/mapreduce2_configs_validator.js
index d2f30d2..b1e2583 100644
--- a/ambari-web/app/utils/configs/validators/mapreduce2_configs_validator.js
+++ b/ambari-web/app/utils/configs/validators/mapreduce2_configs_validator.js
@@ -39,11 +39,11 @@ App.MapReduce2ConfigsValidator = App.ServiceConfigsValidator.create({
   configProperties: [],
 
   mapreduceMapJavaOpts: function(config) {
-    return this.validatorLessThenDefaultValue(config);
+    return null;
   },
 
   mapreduceReduceJavaOpts: function(config) {
-	return this.validatorLessThenDefaultValue(config);
+    return null;
   },
 
   mapreduceTaskIoSortMb: function(config) {
@@ -63,7 +63,7 @@ App.MapReduce2ConfigsValidator = App.ServiceConfigsValidator.create({
   },
 
   yarnAppMapreduceAmCommandOpts: function(config) {
-    return this.validatorLessThenDefaultValue(config);
+    return null;
   }
 
 });


[14/20] git commit: AMBARI-3707. YARN dynamic configs generate 0 map/reduce memory on 2GB machines. (srimanth)

Posted by sr...@apache.org.
AMBARI-3707. YARN dynamic configs generate 0 map/reduce memory on 2GB machines. (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/1737fb0f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/1737fb0f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/1737fb0f

Branch: refs/heads/branch-1.4-bk
Commit: 1737fb0fba47a2dcb5fcef5cbd2f61a18977119b
Parents: 4720ee5
Author: Srimanth Gunturi <sg...@hortonworks.com>
Authored: Wed Nov 6 13:07:50 2013 -0800
Committer: Srimanth Gunturi <sg...@hortonworks.com>
Committed: Wed Nov 6 13:15:46 2013 -0800

----------------------------------------------------------------------
 .../app/utils/defaults_providers/yarn_defaults_provider.js     | 6 ++++++
 1 file changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/1737fb0f/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js b/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js
index 4b10e97..a22395a 100644
--- a/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js
+++ b/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js
@@ -101,6 +101,9 @@ App.YARNDefaultsProvider = App.DefaultsProvider.create({
     if (this.get('clusterData.hBaseInstalled')) {
       ram -= this.get('hBaseRam')
     }
+    if (ram < 1) {
+      ram = 1;
+    }
     ram *= this.get('GB');
     ram /= containerSize;
     return Math.round(Math.max(cpu, Math.min(disk, ram)));
@@ -119,6 +122,9 @@ App.YARNDefaultsProvider = App.DefaultsProvider.create({
     if (this.get('clusterData.hBaseInstalled')) {
       ram -= this.get('hBaseRam')
     }
+    if (ram < 1) {
+      ram = 1;
+    }
     ram *= this.get('GB');
     var container_ram = Math.abs(ram / containers);
     return container_ram > this.get('GB') ? container_ram / (512 * 512) : container_ram;


[20/20] git commit: AMBARI-3752. MR jobs are hanging on a 2-node cluster with default configuration. Fixing missed memory. (srimanth)

Posted by sr...@apache.org.
AMBARI-3752. MR jobs are hanging on a 2-node cluster with default configuration. Fixing missed memory. (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/b954a8d4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/b954a8d4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/b954a8d4

Branch: refs/heads/branch-1.4-bk
Commit: b954a8d4632dc62fa0fb89186a977d7eaee7366e
Parents: ef5b0ac
Author: Srimanth Gunturi <sg...@hortonworks.com>
Authored: Tue Nov 12 17:37:02 2013 -0800
Committer: Srimanth Gunturi <sg...@hortonworks.com>
Committed: Tue Nov 12 17:45:56 2013 -0800

----------------------------------------------------------------------
 .../configs/defaults_providers/yarn_defaults_provider.js     | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/b954a8d4/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js b/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
index c12a300..4950b6b 100644
--- a/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
+++ b/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
@@ -100,8 +100,12 @@ App.YARNDefaultsProvider = App.DefaultsProvider.create({
     if (this.get('clusterData.hBaseInstalled')) {
       ram -= this.get('hBaseRam')
     }
-    if (ram < 1) {
-      ram = 1;
+    // On low memory systems, memory left over after
+    // removing reserved-RAM and HBase might be
+    // less than 2GB (even negative). If so, we force
+    // a 2GB value relying on virtual memory.
+    if (ram < 2) {
+      ram = 2;
     }
     ram *= this.get('GB');
     ram /= containerSize;


[15/20] git commit: AMBARI-3699. App.ServiceConfig needs 'configsValidator' validating across service values. (onechiporenko, srimanth via srimanth)

Posted by sr...@apache.org.
AMBARI-3699. App.ServiceConfig needs 'configsValidator' validating across service values. (onechiporenko, srimanth via 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/24b8a588
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/24b8a588
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/24b8a588

Branch: refs/heads/branch-1.4-bk
Commit: 24b8a588db4d87fb78931da66a4b1f1506c3da66
Parents: 1737fb0
Author: Srimanth Gunturi <sg...@hortonworks.com>
Authored: Tue Nov 5 18:27:02 2013 -0800
Committer: Srimanth Gunturi <sg...@hortonworks.com>
Committed: Wed Nov 6 15:28:11 2013 -0800

----------------------------------------------------------------------
 ambari-web/app/assets/test/tests.js             |   2 +-
 .../controllers/main/service/info/configs.js    |  90 ++++++
 ambari-web/app/data/HDP2/site_properties.js     |  13 +
 ambari-web/app/data/service_configs.js          |   6 +-
 ambari-web/app/models/service_config.js         |  28 +-
 .../templates/common/configs/service_config.hbs |   3 +-
 ambari-web/app/utils/config.js                  |  15 +-
 .../defaults_providers/defaultsProvider.js      |  37 +++
 .../yarn_defaults_provider.js                   | 294 ++++++++++++++++++
 .../validators/mapreduce2_configs_validator.js  |  69 +++++
 .../validators/service_configs_validator.js     |  68 +++++
 .../validators/yarn_configs_validator.js        |  48 +++
 .../defaults_providers/defaultsProvider.js      |  37 ---
 .../yarn_defaults_provider.js                   | 294 ------------------
 .../yarn_defaults_provider_test.js              | 295 +++++++++++++++++++
 .../yarn_defaults_provider_test.js              | 295 -------------------
 16 files changed, 959 insertions(+), 635 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/24b8a588/ambari-web/app/assets/test/tests.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/test/tests.js b/ambari-web/app/assets/test/tests.js
index 0bc3a59..59da974 100644
--- a/ambari-web/app/assets/test/tests.js
+++ b/ambari-web/app/assets/test/tests.js
@@ -60,7 +60,7 @@ require('test/mappers/runs_mapper_test');
 require('test/mappers/service_mapper_test');
 require('test/mappers/status_mapper_test');
 require('test/mappers/users_mapper_test');
-require('test/utils/defaults_providers/yarn_defaults_provider_test');
+require('test/utils/configs/defaults_providers/yarn_defaults_provider_test');
 require('test/utils/config_test');
 require('test/utils/date_test');
 require('test/utils/config_test');

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/24b8a588/ambari-web/app/controllers/main/service/info/configs.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/info/configs.js b/ambari-web/app/controllers/main/service/info/configs.js
index 3601887..b77e4db 100644
--- a/ambari-web/app/controllers/main/service/info/configs.js
+++ b/ambari-web/app/controllers/main/service/info/configs.js
@@ -28,6 +28,7 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
   globalConfigs: [],
   uiConfigs: [],
   customConfig: [],
+  serviceConfigsData: require('data/service_configs'),
   isApplyingChanges: false,
   serviceConfigs: function () {
     return App.config.get('preDefinedServiceConfigs');
@@ -551,12 +552,82 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
   },
 
   /**
+   * Get info about hosts and host components to configDefaultsProviders
+   * @returns {{masterComponentHosts: Array, slaveComponentHosts: Array, hosts: {}}}
+   */
+  getInfoForDefaults: function() {
+
+    var slaveComponentHosts = [];
+    var slaves = App.HostComponent.find().filterProperty('isSlave', true).map(function(item) {
+      return Em.Object.create({
+        host: item.get('host.hostName'),
+        componentName: item.get('componentName')
+      });
+    });
+    slaves.forEach(function(slave) {
+      var s = slaveComponentHosts.findProperty('componentName', slave.componentName);
+      if (s) {
+        s.hosts.push({hostName: slave.host});
+      }
+      else {
+        slaveComponentHosts.push({
+          componentName: slave.get('componentName'),
+          hosts: [{hostName: slave.host}]
+        });
+      }
+    });
+
+    var masterComponentHosts = App.HostComponent.find().filterProperty('isMaster', true).map(function(item) {
+      return {
+        component: item.get('componentName'),
+        serviceId: item.get('service.serviceName'),
+        host: item.get('host.hostName')
+      }
+    });
+    var hosts = {};
+    App.Host.find().map(function(host) {
+      hosts[host.get('hostName')] = {
+        name: host.get('hostName'),
+        cpu: host.get('cpu'),
+        memory: host.get('memory'),
+        disk_info: host.get('diskInfo')
+      };
+    });
+
+    return {
+      masterComponentHosts: masterComponentHosts,
+      slaveComponentHosts: slaveComponentHosts,
+      hosts: hosts
+    };
+  },
+
+  /**
    * Load child components to service config object
    * @param configs
    * @param componentConfig
    * @param restartData
    */
   loadComponentConfigs: function (configs, componentConfig, restartData) {
+
+    var localDB = this.getInfoForDefaults();
+    var recommendedDefaults = {};
+    var s = this.get('serviceConfigsData').findProperty('serviceName', this.get('content.serviceName'));
+
+    var defaults = [];
+    if (s.defaultsProviders) {
+      s.defaultsProviders.forEach(function(defaultsProvider) {
+        var d = defaultsProvider.getDefaults(localDB);
+        defaults.push(d);
+        for (var name in d) {
+          recommendedDefaults[name] = d[name];
+        }
+      });
+    }
+    if (s.configsValidator) {
+      s.configsValidator.set('recommendedDefaults', recommendedDefaults);
+    }
+
+
     configs.forEach(function (_serviceConfigProperty) {
       console.log("config", _serviceConfigProperty);
       if (!_serviceConfigProperty) return;
@@ -585,6 +656,25 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
         serviceConfigProperty.set('restartRequiredMessage', message);
       }
       if (serviceConfigProperty.get('serviceName') === this.get('content.serviceName')) {
+
+        defaults.forEach(function(defaults) {
+          for(var name in defaults) {
+            if (serviceConfigProperty.name == name) {
+              serviceConfigProperty.set('value', defaults[name]);
+              serviceConfigProperty.set('defaultValue', defaults[name]);
+            }
+          }
+        });
+
+        if (s.configsValidator) {
+          var validators = s.configsValidator.get('configValidators');
+          for (var validatorName in validators) {
+            if (serviceConfigProperty.name == validatorName) {
+              serviceConfigProperty.set('serviceValidator', s.configsValidator);
+            }
+          }
+        }
+
         // serviceConfigProperty.serviceConfig = componentConfig;
         if (App.get('isAdmin')) {
           serviceConfigProperty.set('isEditable', serviceConfigProperty.get('isReconfigurable'));

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/24b8a588/ambari-web/app/data/HDP2/site_properties.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/data/HDP2/site_properties.js b/ambari-web/app/data/HDP2/site_properties.js
index b3c7d85..4c92a9d 100644
--- a/ambari-web/app/data/HDP2/site_properties.js
+++ b/ambari-web/app/data/HDP2/site_properties.js
@@ -60,6 +60,7 @@ module.exports =
       "id": "site property",
       "name": "yarn.scheduler.minimum-allocation-mb",
       "displayName": "yarn.scheduler.minimum-allocation-mb",
+      "displayType": "int",
       "value": "",
       "defaultValue": "",
       "serviceName": "YARN",
@@ -69,6 +70,7 @@ module.exports =
       "id": "site property",
       "name": "yarn.scheduler.maximum-allocation-mb",
       "displayName": "yarn.scheduler.maximum-allocation-mb",
+      "displayType": "int",
       "value": "",
       "defaultValue": "",
       "serviceName": "YARN",
@@ -78,6 +80,7 @@ module.exports =
       "id": "site property",
       "name": "yarn.nodemanager.resource.memory-mb",
       "displayName": "yarn.nodemanager.resource.memory-mb",
+      "displayType": "int",
       "value": "",
       "defaultValue": "",
       "serviceName": "YARN",
@@ -193,6 +196,16 @@ module.exports =
       "unit": "MB",
       "category": "General",
       "serviceName": "MAPREDUCE2"
+    },
+    {
+      "id": "site property",
+      "name": "yarn.app.mapreduce.am.resource.mb",
+      "displayName": "yarn.app.mapreduce.am.resource.mb",
+      "value": "",
+      "defaultValue": "",
+      "displayType": "int",
+      "category": "Advanced",
+      "serviceName": "MAPREDUCE2"
     }
   ]
 };

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/24b8a588/ambari-web/app/data/service_configs.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/data/service_configs.js b/ambari-web/app/data/service_configs.js
index b7857b1..6858b9b 100644
--- a/ambari-web/app/data/service_configs.js
+++ b/ambari-web/app/data/service_configs.js
@@ -18,7 +18,9 @@
 
 var App = require('app');
 require('models/service_config');
-require('utils/defaults_providers/yarn_defaults_provider');
+require('utils/configs/defaults_providers/yarn_defaults_provider');
+require('utils/configs/validators/yarn_configs_validator');
+require('utils/configs/validators/mapreduce2_configs_validator');
 
 module.exports = [
   {
@@ -66,6 +68,7 @@ module.exports = [
   {
     serviceName: 'YARN',
     displayName: 'YARN',
+    configsValidator: App.YARNConfigsValidator,
     defaultsProviders: [App.YARNDefaultsProvider],
     filename: 'yarn-site',
     configCategories: [
@@ -84,6 +87,7 @@ module.exports = [
     serviceName: 'MAPREDUCE2',
     displayName: 'MapReduce 2',
     filename: 'mapred-site',
+    configsValidator: App.MapReduce2ConfigsValidator,
     defaultsProviders: [App.YARNDefaultsProvider],
     configCategories: [
       App.ServiceConfigCategory.create({ name: 'HistoryServer', displayName : 'History Server', hostComponentNames : ['HISTORYSERVER']}),

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/24b8a588/ambari-web/app/models/service_config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/service_config.js b/ambari-web/app/models/service_config.js
index 1c9bc97..68f4df4 100644
--- a/ambari-web/app/models/service_config.js
+++ b/ambari-web/app/models/service_config.js
@@ -147,6 +147,7 @@ App.ServiceConfigProperty = Ember.Object.extend({
   isVisible: true,
   isSecureConfig: false,
   errorMessage: '',
+  warnMessage: '',
   serviceConfig: null, // points to the parent App.ServiceConfig object
   filename: '',
   isOriginalSCP : true, // if true, then this is original SCP instance and its value is not overridden value.
@@ -156,11 +157,13 @@ App.ServiceConfigProperty = Ember.Object.extend({
   isUserProperty: null, // This property was added by user. Hence they get removal actions etc.
   isOverridable: true,
   error: false,
+  warn: false,
   overrideErrorTrigger: 0, //Trigger for overrridable property error
   isRestartRequired: false,
   restartRequiredMessage: 'Restart required',
   index: null, //sequence number in category
   editDone: false, //Text field: on focusOut: true, on focusIn: false
+  serviceValidator: null,
 
   /**
    * On Overridable property error message, change overrideErrorTrigger value to recount number of errors service have
@@ -481,6 +484,7 @@ App.ServiceConfigProperty = Ember.Object.extend({
     var values = [];//value split by "," to check UNIX users, groups list
 
     var isError = false;
+    var isWarn = false;
 
     if (typeof value === 'string' && value.length === 0) {
       if (this.get('isRequired')) {
@@ -614,13 +618,29 @@ App.ServiceConfigProperty = Ember.Object.extend({
         }
       }
     }
+    
+    var serviceValidator = this.get('serviceValidator');
+    if (serviceValidator!=null) {
+      var validationIssue = serviceValidator.validateConfig(this);
+      if (validationIssue) {
+    	this.set('warnMessage', validationIssue);
+    	isWarn = true;
+      }
+    }
 
-    if (!isError) {
-      this.set('errorMessage', '');
-      this.set('error', false);
+    if (!isWarn || isError) { // Errors get priority
+        this.set('warnMessage', '');
+        this.set('warn', false);
     } else {
-      this.set('error', true);
+        this.set('warn', true);
     }
+    
+    if (!isError) {
+        this.set('errorMessage', '');
+        this.set('error', false);
+      } else {
+        this.set('error', true);
+      }
   }.observes('value', 'retypedPassword')
 
 });

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/24b8a588/ambari-web/app/templates/common/configs/service_config.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/common/configs/service_config.hbs b/ambari-web/app/templates/common/configs/service_config.hbs
index cee34b6..94d25f1 100644
--- a/ambari-web/app/templates/common/configs/service_config.hbs
+++ b/ambari-web/app/templates/common/configs/service_config.hbs
@@ -83,7 +83,7 @@
                           </span>
                           <div class="controls">
                             {{! Here serviceConfigBinding should ideally be serviceConfigPropertyBinding }}
-                              <div {{bindAttr class="errorMessage:error: :control-group"}}>
+                              <div {{bindAttr class="errorMessage:error: warnMessage:warning: :control-group"}}>
                                 {{view viewClass serviceConfigBinding="this" categoryConfigsAllBinding="view.categoryConfigsAll" }}
                                 {{#if view.canEdit}}
 	                                {{#if isPropertyOverridable}}
@@ -101,6 +101,7 @@
 	                                {{/if}}
                                 {{/if}}
                                   <span class="help-inline">{{errorMessage}}</span>
+                                  <span class="help-inline">{{warnMessage}}</span>
                               </div>
                             {{#if this.isOverridden}}
                               {{view App.ServiceConfigView.SCPOverriddenRowsView serviceConfigPropertyBinding="this"}}

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/24b8a588/ambari-web/app/utils/config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js
index 054c234..39adda0 100644
--- a/ambari-web/app/utils/config.js
+++ b/ambari-web/app/utils/config.js
@@ -506,11 +506,12 @@ App.config = Em.Object.create({
       serviceConfig.set('showConfig', service.showConfig);
 
       // Use calculated default values for some configs
-
-      if (!storedConfigs && service.defaultsProviders)  {
+      var recommendedDefaults = {};
+      if (!storedConfigs && service.defaultsProviders) {
         service.defaultsProviders.forEach(function(defaultsProvider) {
           var defaults = defaultsProvider.getDefaults(localDB);
           for(var name in defaults) {
+        	recommendedDefaults[name] = defaults[name];
             var config = configsByService.findProperty('name', name);
             if (config) {
               config.set('value', defaults[name]);
@@ -519,6 +520,16 @@ App.config = Em.Object.create({
           }
         });
       }
+      if (service.configsValidator) {
+    	service.configsValidator.set('recommendedDefaults', recommendedDefaults);
+    	var validators = service.configsValidator.get('configValidators');
+    	for (var validatorName in validators) {
+        var c = configsByService.findProperty('name', validatorName);
+          if (c) {
+            c.set('serviceValidator', service.configsValidator);
+          }
+        }
+      }
 
       serviceConfig.set('configs', configsByService);
       renderedServiceConfigs.push(serviceConfig);

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/24b8a588/ambari-web/app/utils/configs/defaults_providers/defaultsProvider.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/configs/defaults_providers/defaultsProvider.js b/ambari-web/app/utils/configs/defaults_providers/defaultsProvider.js
new file mode 100644
index 0000000..1eaad12
--- /dev/null
+++ b/ambari-web/app/utils/configs/defaults_providers/defaultsProvider.js
@@ -0,0 +1,37 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+var App = require('app');
+
+App.DefaultsProvider = Em.Object.extend({
+
+  /**
+   * Look at cluster setup, the provided properties, and provide an object where keys are property-names, and values are the recommended defaults
+   * @param {App.ServiceConfigProperty} serviceConfigProperty
+   */
+  getDefaults: function(serviceConfigProperty) {
+
+  },
+
+  /**
+   * Cluster info used to calculate properties values
+   * Should be redeclared in the child providers
+   */
+  getClusterData: function() {
+
+  }
+});

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/24b8a588/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js b/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
new file mode 100644
index 0000000..a263602
--- /dev/null
+++ b/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
@@ -0,0 +1,294 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+var App = require('app');
+require('utils/configs/defaults_providers/defaultsProvider');
+
+App.YARNDefaultsProvider = App.DefaultsProvider.create({
+
+  /**
+   * List of the configs that should be calculated
+   */
+  configsTemplate: {
+    'yarn.nodemanager.resource.memory-mb': null,
+    'yarn.scheduler.minimum-allocation-mb': null,
+    'yarn.scheduler.maximum-allocation-mb': null,
+    'mapreduce.map.memory.mb': null,
+    'mapreduce.reduce.memory.mb': null,
+    'mapreduce.map.java.opts': null,
+    'mapreduce.reduce.java.opts': null,
+    'mapreduce.task.io.sort.mb': null,
+    'yarn.app.mapreduce.am.resource.mb': null,
+    'yarn.app.mapreduce.am.command-opts': null
+  },
+
+  /**
+   * Information about ram, disk count, cpu count and hbase availability
+   * Example:
+   * {
+   *   disk: 12,
+   *   ram: 48 * 1024, // MB
+   *   cpu: 12,
+   *   hBaseInstalled: false
+   * }
+   */
+  clusterData: null,
+
+  /**
+   * Reserved for system memory
+   *
+   * Value in MB!
+   */
+  reservedRam: null,
+
+  /**
+   * Reserved for HBase memory
+   *
+   * Value in MB!
+   */
+  hBaseRam: null,
+
+  GB: 1024,
+  /**
+   *  Minimum container size (in RAM).
+   *  This value is dependent on the amount of RAM available, as in smaller memory nodes the minimum container size should also be smaller
+   *
+   *  Value in MB!
+   */
+  recommendedMinimumContainerSize: function () {
+    if (!this.clusterDataIsValid()) return null;
+    var ram = this.get('clusterData.ram');
+    switch (true) {
+      case (ram <=4 ):
+        return 256;
+      case (ram <= 8):
+        return 512;
+      case (ram <= 24):
+        return 1024;
+      default:
+        return 2048;
+    }
+  }.property('clusterData.ram'),
+
+  /**
+   * Maximum number of containers allowed per node
+   * max (2*cores,min (1.8*DISKS,(Total available RAM) / MIN_CONTAINER_SIZE)))
+   * min (2*CORES, 1.8*DISKS, (Total available RAM) / MIN_CONTAINER_SIZE)
+   */
+  containers: function () {
+    if (!this.clusterDataIsValid()) return null;
+    var cpu = this.get('clusterData.cpu');
+    var disk = this.get('clusterData.disk');
+    var ram = this.get('clusterData.ram');
+    var containerSize = this.get('recommendedMinimumContainerSize');
+    cpu *= 2;
+    disk = Math.ceil(disk * 1.8);
+    ram = (ram - this.get('reservedRam'));
+    if (this.get('clusterData.hBaseInstalled')) {
+      ram -= this.get('hBaseRam')
+    }
+    if (ram < 1) {
+      ram = 1;
+    }
+    ram *= this.get('GB');
+    ram /= containerSize;
+    return Math.round(Math.max(cpu, Math.min(disk, ram)));
+  }.property('clusterData.cpu', 'clusterData.ram', 'clusterData.hBaseInstalled', 'clusterData.disk', 'reservedRam', 'hBaseRam', 'recommendedMinimumContainerSize'),
+
+  /**
+   * amount of RAM per container
+   * RAM-per-container = abs(MIN_CONTAINER_SIZE, (Total Available RAM) / containers))
+   *
+   * Value in MB!
+   */
+  ramPerContainer: function () {
+    var containers = this.get('containers');
+    var ram = this.get('clusterData.ram');
+    ram = (ram - this.get('reservedRam'));
+    if (this.get('clusterData.hBaseInstalled')) {
+      ram -= this.get('hBaseRam')
+    }
+    if (ram < 1) {
+      ram = 1;
+    }
+    ram *= this.get('GB');
+    var container_ram = Math.abs(ram / containers);
+    return container_ram > this.get('GB') ? container_ram / (512 * 512) : container_ram;
+  }.property('recommendedMinimumContainerSize', 'containers', 'clusterData.ram', 'clusterData.hBaseInstalled', 'hBaseRam', 'reservedRam'),
+
+  mapMemory: function () {
+    return this.get('ramPerContainer');
+  }.property('ramPerContainer'),
+
+  reduceMemory: function () {
+    var ramPerContainer = this.get('ramPerContainer');
+    return ramPerContainer <= 2048 ? 2 * ramPerContainer : ramPerContainer;
+  }.property('ramPerContainer'),
+
+  amMemory: function () {
+    return Math.max(this.get('mapMemory'), this.get('reduceMemory'));
+  }.property('mapMemory', 'reduceMemory'),
+
+  /**
+   * Reserved for HBase and system memory is based on total available memory
+   */
+
+
+
+  reservedStackRecommendations: function () {
+    var memory = this.get('clusterData.ram');
+    var reservedStack = { 4: 1, 8: 2, 16: 2, 24: 4, 48: 6, 64: 8, 72: 8, 96: 12,
+      128: 24, 256: 32, 512: 64};
+
+    if (memory in reservedStack) {
+      this.set('reservedRam', reservedStack[memory]);
+    }
+    if (memory <= 4)
+      this.set('reservedRam', 1);
+    else if (memory >= 512)
+      this.set('reservedRam', 64);
+    else
+      this.set('reservedRam', 1);
+  }.observes('clusterData.ram'),
+
+  hbaseMemRecommendations: function () {
+    var memory = this.get('clusterData.ram');
+    var reservedHBase = {4:1, 8:1, 16:2, 24:4, 48:8, 64:8, 72:8, 96:16,
+      128:24, 256:32, 512:64};
+
+    if (memory in reservedHBase) {
+      this.set('reservedRam', reservedHBase[memory]);
+    }
+    if (memory <= 4)
+      this.set('hBaseRam', 1);
+    else if (memory >= 512)
+      this.set('hBaseRam', 64);
+    else
+      this.set('hBaseRam', 2);
+
+  }.observes('clusterData.ram'),
+
+  /**
+   * Provide an object where keys are property-names and values are the recommended defaults
+   * @param {object} localDB Object with information about hosts and master/slave components
+   * Example:
+   *  <code>
+   *    {
+   *       "hosts": {
+   *           "host1": {
+   *               "name": "host1",
+   *               "cpu": 1,
+   *               "memory": "6123683.00",
+   *               "disk_info": [{
+   *                   ....
+   *               },...]
+   *           },...
+   *       },
+   *       "masterComponentHosts": [{
+   *           "component": "NAMENODE",
+   *           "hostName": "host1",
+   *           "serviceId": "HDFS"
+   *       },...],
+   *       "slaveComponentHosts": [{
+   *           "componentName": "DATANODE",
+   *           "hosts": [{
+   *               "hostName": "host2"
+   *           }]
+   *       },...]
+   *   }
+   *  </code>
+   * @return {object}
+   */
+  getDefaults: function (localDB) {
+    this._super();
+    this.getClusterData(localDB);
+    var configs = {};
+    jQuery.extend(configs, this.get('configsTemplate'));
+    configs['yarn.nodemanager.resource.memory-mb'] = Math.round(this.get('containers') * this.get('ramPerContainer'));
+    configs['yarn.scheduler.minimum-allocation-mb'] = Math.round(this.get('ramPerContainer'));
+    configs['yarn.scheduler.maximum-allocation-mb'] = Math.round(this.get('containers') * this.get('ramPerContainer'));
+    configs['yarn.app.mapreduce.am.resource.mb'] = Math.round(this.get('amMemory'));
+    configs['yarn.app.mapreduce.am.command-opts'] = "-Xmx" + Math.round(0.8 * this.get('amMemory')) + "m";
+    configs['mapreduce.map.memory.mb'] = Math.round(this.get('mapMemory'));
+    configs['mapreduce.reduce.memory.mb'] = Math.round(this.get('reduceMemory'));
+    configs['mapreduce.map.java.opts'] = "-Xmx" + Math.round(0.8 * this.get('mapMemory')) + "m";
+    configs['mapreduce.reduce.java.opts'] = "-Xmx" + Math.round(0.8 * this.get('reduceMemory')) + "m";
+    configs['mapreduce.task.io.sort.mb'] = Math.round(0.4 * this.get('mapMemory'));
+    return configs;
+  },
+
+  /**
+   * Calculate needed cluster data (like disk count, cpu count, ram (in MB!) and hbase availability)
+   * @param {object} localDB Object with information about hosts and master/slave components
+   */
+  getClusterData: function (localDB) {
+    this._super();
+    var components = ['NODEMANAGER'];
+    var hosts = [];
+    if (!localDB.hosts || !(localDB.masterComponentHosts || localDB.slaveComponentHosts)) return;
+    var hBaseInstalled = !!localDB.masterComponentHosts.filterProperty('component', 'HBASE_MASTER').length;
+    components.forEach(function (component) {
+      var mc = localDB.masterComponentHosts.findProperty('component', component);
+      if (mc) {
+        if (!hosts.contains(mc.hostName)) {
+          hosts.push(mc.hostName);
+        }
+      }
+      else {
+        var sc = localDB.slaveComponentHosts.findProperty('componentName', component);
+        if (sc) {
+          sc.hosts.map(function (host) {
+            if (!hosts.contains(host.hostName)) {
+              hosts.push(host.hostName);
+            }
+          });
+        }
+      }
+    });
+    var clusterData = {
+      cpu: 0,
+      disk: 0,
+      ram: 0,
+      hBaseInstalled: hBaseInstalled
+    };
+    var host = hosts[0] && localDB.hosts[hosts[0]];
+    if (host) {
+      clusterData.cpu = parseInt(host.cpu);
+      var length = 0;
+      host.disk_info.forEach(function(disk) {
+        //invalid mountpoints
+        if (!(disk.mountpoint.startsWith('/home/') || disk.mountpoint.startsWith('/homes/') || 
+        		disk.mountpoint.startsWith('/dev/') || disk.mountpoint.startsWith('/tmp/'))) {
+          length++;
+        }
+      },this);
+      clusterData.disk = length;
+      clusterData.ram = Math.round(parseFloat(host.memory) / (1024 * 1024));
+    }
+    this.set('clusterData', clusterData);
+  },
+
+  /**
+   * Verify <code>clusterData</code> - check if all properties are defined
+   */
+  clusterDataIsValid: function () {
+    if (!this.get('clusterData')) return false;
+    if (this.get('clusterData.ram') == null || this.get('clusterData.cpu') == null || this.get('clusterData.disk') == null || this.get('clusterData.hBaseInstalled') == null) return false;
+    return true;
+  }
+
+});

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/24b8a588/ambari-web/app/utils/configs/validators/mapreduce2_configs_validator.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/configs/validators/mapreduce2_configs_validator.js b/ambari-web/app/utils/configs/validators/mapreduce2_configs_validator.js
new file mode 100644
index 0000000..d2f30d2
--- /dev/null
+++ b/ambari-web/app/utils/configs/validators/mapreduce2_configs_validator.js
@@ -0,0 +1,69 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+var App = require('app');
+require('utils/configs/validators/service_configs_validator');
+
+App.MapReduce2ConfigsValidator = App.ServiceConfigsValidator.create({
+
+  /**
+   * List of the configs that should be validated
+   */
+  configValidators: {
+    'mapreduce.map.java.opts': 'mapreduceMapJavaOpts',
+    'mapreduce.reduce.java.opts': 'mapreduceReduceJavaOpts',
+    'mapreduce.task.io.sort.mb': 'mapreduceTaskIoSortMb',
+    'mapreduce.map.memory.mb': 'mapreduceMapMemoryMb',
+    'mapreduce.reduce.memory.mb': 'mapreduceReduceMemoryMb',
+    'yarn.app.mapreduce.am.resource.mb': 'yarnAppMapreduceAmResourceMb',
+    'yarn.app.mapreduce.am.command-opts': 'yarnAppMapreduceAmCommandOpts'
+  },
+
+  /**
+   * List of the real configProperty objects
+   */
+  configProperties: [],
+
+  mapreduceMapJavaOpts: function(config) {
+    return this.validatorLessThenDefaultValue(config);
+  },
+
+  mapreduceReduceJavaOpts: function(config) {
+	return this.validatorLessThenDefaultValue(config);
+  },
+
+  mapreduceTaskIoSortMb: function(config) {
+    return this.validatorLessThenDefaultValue(config);
+  },
+
+  mapreduceMapMemoryMb: function(config) {
+    return this.validatorLessThenDefaultValue(config);
+  },
+
+  mapreduceReduceMemoryMb: function(config) {
+    return this.validatorLessThenDefaultValue(config);
+  },
+
+  yarnAppMapreduceAmResourceMb: function(config) {
+    return this.validatorLessThenDefaultValue(config);
+  },
+
+  yarnAppMapreduceAmCommandOpts: function(config) {
+    return this.validatorLessThenDefaultValue(config);
+  }
+
+});

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/24b8a588/ambari-web/app/utils/configs/validators/service_configs_validator.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/configs/validators/service_configs_validator.js b/ambari-web/app/utils/configs/validators/service_configs_validator.js
new file mode 100644
index 0000000..c9e2a90
--- /dev/null
+++ b/ambari-web/app/utils/configs/validators/service_configs_validator.js
@@ -0,0 +1,68 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+var App = require('app');
+
+App.ServiceConfigsValidator = Em.Object.extend({
+
+  /**
+   * Defaults recommended for various properties. This is to be used 
+   * by this validator to validate a property. Generally this value should be 
+   * set to values given by the defaults provider of the service.
+   * 
+   * The key is the property name, and the value is the recommended default.
+   */
+  recommendedDefaults: {},
+  
+  /**
+   * Per property validators where key is config name and value 
+   * is the validation function. This field is expected to be
+   * overridden by extending classes.
+   */
+  configValidators: {},
+  
+  /**
+   * Validate the given config property with the available  
+   * {@param recommendedDefaults}. This can do cross-property
+   * validations also. 
+   * 
+   * @param config  {App.ServiceConfigProperty}
+   * @return {string}  No validation issues when <code>null</code> returned.
+   */
+  validateConfig: function(config) {
+    var validatorFunction = this.get('configValidators')[config.get('name')];
+    if (validatorFunction) {
+      return this[validatorFunction](config);
+    }
+    return null;
+  },
+  
+  /**
+   * Check if provided <code>config.value</code> is less than <code>recommendedDefaults</code>
+   * @param {object} config - configProperty name
+   */
+  validatorLessThenDefaultValue: function(config) {
+    var defaultValue = this.recommendedDefaults[config.get('name')];
+    var currentValue = parseInt(config.get('value').toString().replace( /\D+/g, ''));
+    defaultValue = parseInt(defaultValue.toString().replace( /\D+/g, ''));
+    if (defaultValue && currentValue &&  currentValue < defaultValue) {
+      return "Value is less than the recommended default of "+defaultValue;
+    }
+    return null;
+  }
+
+});

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/24b8a588/ambari-web/app/utils/configs/validators/yarn_configs_validator.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/configs/validators/yarn_configs_validator.js b/ambari-web/app/utils/configs/validators/yarn_configs_validator.js
new file mode 100644
index 0000000..dda3f10
--- /dev/null
+++ b/ambari-web/app/utils/configs/validators/yarn_configs_validator.js
@@ -0,0 +1,48 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+var App = require('app');
+require('utils/configs/validators/service_configs_validator');
+
+App.YARNConfigsValidator = App.ServiceConfigsValidator.create({
+  /**
+   * List of the configs that should be validated
+   */
+  configValidators: {
+    'yarn.nodemanager.resource.memory-mb': 'yarnNodemanagerResourceMemoryMb',
+    'yarn.scheduler.minimum-allocation-mb': 'yarnSchedulerMinimumAllocationMb',
+    'yarn.scheduler.maximum-allocation-mb': 'yarnSchedulerMaximumAllocationMb'
+  },
+
+  /**
+   * List of the real configProperty objects
+   */
+  configProperties: [],
+
+  yarnNodemanagerResourceMemoryMb: function(config) {
+    return this.validatorLessThenDefaultValue(config);
+  },
+
+  yarnSchedulerMinimumAllocationMb: function(config) {
+    return this.validatorLessThenDefaultValue(config);
+  },
+
+  yarnSchedulerMaximumAllocationMb: function(config) {
+    return this.validatorLessThenDefaultValue(config);
+  }
+
+});

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/24b8a588/ambari-web/app/utils/defaults_providers/defaultsProvider.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/defaults_providers/defaultsProvider.js b/ambari-web/app/utils/defaults_providers/defaultsProvider.js
deleted file mode 100644
index 1eaad12..0000000
--- a/ambari-web/app/utils/defaults_providers/defaultsProvider.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with this
- * work for additional information regarding copyright ownership. The ASF
- * licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-var App = require('app');
-
-App.DefaultsProvider = Em.Object.extend({
-
-  /**
-   * Look at cluster setup, the provided properties, and provide an object where keys are property-names, and values are the recommended defaults
-   * @param {App.ServiceConfigProperty} serviceConfigProperty
-   */
-  getDefaults: function(serviceConfigProperty) {
-
-  },
-
-  /**
-   * Cluster info used to calculate properties values
-   * Should be redeclared in the child providers
-   */
-  getClusterData: function() {
-
-  }
-});

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/24b8a588/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js b/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js
deleted file mode 100644
index a22395a..0000000
--- a/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js
+++ /dev/null
@@ -1,294 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with this
- * work for additional information regarding copyright ownership. The ASF
- * licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-var App = require('app');
-require('utils/defaults_providers/defaultsProvider');
-
-App.YARNDefaultsProvider = App.DefaultsProvider.create({
-
-  /**
-   * List of the configs that should be calculated
-   */
-  configsTemplate: {
-    'yarn.nodemanager.resource.memory-mb': null,
-    'yarn.scheduler.minimum-allocation-mb': null,
-    'yarn.scheduler.maximum-allocation-mb': null,
-    'mapreduce.map.memory.mb': null,
-    'mapreduce.reduce.memory.mb': null,
-    'mapreduce.map.java.opts': null,
-    'mapreduce.reduce.java.opts': null,
-    'mapreduce.task.io.sort.mb': null,
-    'yarn.app.mapreduce.am.resource.mb': null,
-    'yarn.app.mapreduce.am.command-opts': null
-  },
-
-  /**
-   * Information about ram, disk count, cpu count and hbase availability
-   * Example:
-   * {
-   *   disk: 12,
-   *   ram: 48 * 1024, // MB
-   *   cpu: 12,
-   *   hBaseInstalled: false
-   * }
-   */
-  clusterData: null,
-
-  /**
-   * Reserved for system memory
-   *
-   * Value in MB!
-   */
-  reservedRam: null,
-
-  /**
-   * Reserved for HBase memory
-   *
-   * Value in MB!
-   */
-  hBaseRam: null,
-
-  GB: 1024,
-  /**
-   *  Minimum container size (in RAM).
-   *  This value is dependent on the amount of RAM available, as in smaller memory nodes the minimum container size should also be smaller
-   *
-   *  Value in MB!
-   */
-  recommendedMinimumContainerSize: function () {
-    if (!this.clusterDataIsValid()) return null;
-    var ram = this.get('clusterData.ram');
-    switch (true) {
-      case (ram <=4 ):
-        return 256;
-      case (ram <= 8):
-        return 512;
-      case (ram <= 24):
-        return 1024;
-      default:
-        return 2048;
-    }
-  }.property('clusterData.ram'),
-
-  /**
-   * Maximum number of containers allowed per node
-   * max (2*cores,min (1.8*DISKS,(Total available RAM) / MIN_CONTAINER_SIZE)))
-   * min (2*CORES, 1.8*DISKS, (Total available RAM) / MIN_CONTAINER_SIZE)
-   */
-  containers: function () {
-    if (!this.clusterDataIsValid()) return null;
-    var cpu = this.get('clusterData.cpu');
-    var disk = this.get('clusterData.disk');
-    var ram = this.get('clusterData.ram');
-    var containerSize = this.get('recommendedMinimumContainerSize');
-    cpu *= 2;
-    disk = Math.ceil(disk * 1.8);
-    ram = (ram - this.get('reservedRam'));
-    if (this.get('clusterData.hBaseInstalled')) {
-      ram -= this.get('hBaseRam')
-    }
-    if (ram < 1) {
-      ram = 1;
-    }
-    ram *= this.get('GB');
-    ram /= containerSize;
-    return Math.round(Math.max(cpu, Math.min(disk, ram)));
-  }.property('clusterData.cpu', 'clusterData.ram', 'clusterData.hBaseInstalled', 'clusterData.disk', 'reservedRam', 'hBaseRam', 'recommendedMinimumContainerSize'),
-
-  /**
-   * amount of RAM per container
-   * RAM-per-container = abs(MIN_CONTAINER_SIZE, (Total Available RAM) / containers))
-   *
-   * Value in MB!
-   */
-  ramPerContainer: function () {
-    var containers = this.get('containers');
-    var ram = this.get('clusterData.ram');
-    ram = (ram - this.get('reservedRam'));
-    if (this.get('clusterData.hBaseInstalled')) {
-      ram -= this.get('hBaseRam')
-    }
-    if (ram < 1) {
-      ram = 1;
-    }
-    ram *= this.get('GB');
-    var container_ram = Math.abs(ram / containers);
-    return container_ram > this.get('GB') ? container_ram / (512 * 512) : container_ram;
-  }.property('recommendedMinimumContainerSize', 'containers', 'clusterData.ram', 'clusterData.hBaseInstalled', 'hBaseRam', 'reservedRam'),
-
-  mapMemory: function () {
-    return this.get('ramPerContainer');
-  }.property('ramPerContainer'),
-
-  reduceMemory: function () {
-    var ramPerContainer = this.get('ramPerContainer');
-    return ramPerContainer <= 2048 ? 2 * ramPerContainer : ramPerContainer;
-  }.property('ramPerContainer'),
-
-  amMemory: function () {
-    return Math.max(this.get('mapMemory'), this.get('reduceMemory'));
-  }.property('mapMemory', 'reduceMemory'),
-
-  /**
-   * Reserved for HBase and system memory is based on total available memory
-   */
-
-
-
-  reservedStackRecommendations: function () {
-    var memory = this.get('clusterData.ram');
-    var reservedStack = { 4: 1, 8: 2, 16: 2, 24: 4, 48: 6, 64: 8, 72: 8, 96: 12,
-      128: 24, 256: 32, 512: 64};
-
-    if (memory in reservedStack) {
-      this.set('reservedRam', reservedStack[memory]);
-    }
-    if (memory <= 4)
-      this.set('reservedRam', 1);
-    else if (memory >= 512)
-      this.set('reservedRam', 64);
-    else
-      this.set('reservedRam', 1);
-  }.observes('clusterData.ram'),
-
-  hbaseMemRecommendations: function () {
-    var memory = this.get('clusterData.ram');
-    var reservedHBase = {4:1, 8:1, 16:2, 24:4, 48:8, 64:8, 72:8, 96:16,
-      128:24, 256:32, 512:64};
-
-    if (memory in reservedHBase) {
-      this.set('reservedRam', reservedHBase[memory]);
-    }
-    if (memory <= 4)
-      this.set('hBaseRam', 1);
-    else if (memory >= 512)
-      this.set('hBaseRam', 64);
-    else
-      this.set('hBaseRam', 2);
-
-  }.observes('clusterData.ram'),
-
-  /**
-   * Provide an object where keys are property-names and values are the recommended defaults
-   * @param {object} localDB Object with information about hosts and master/slave components
-   * Example:
-   *  <code>
-   *    {
-   *       "hosts": {
-   *           "host1": {
-   *               "name": "host1",
-   *               "cpu": 1,
-   *               "memory": "6123683.00",
-   *               "disk_info": [{
-   *                   ....
-   *               },...]
-   *           },...
-   *       },
-   *       "masterComponentHosts": [{
-   *           "component": "NAMENODE",
-   *           "hostName": "host1",
-   *           "serviceId": "HDFS"
-   *       },...],
-   *       "slaveComponentHosts": [{
-   *           "componentName": "DATANODE",
-   *           "hosts": [{
-   *               "hostName": "host2"
-   *           }]
-   *       },...]
-   *   }
-   *  </code>
-   * @return {object}
-   */
-  getDefaults: function (localDB) {
-    this._super();
-    this.getClusterData(localDB);
-    var configs = {};
-    jQuery.extend(configs, this.get('configsTemplate'));
-    configs['yarn.nodemanager.resource.memory-mb'] = Math.round(this.get('containers') * this.get('ramPerContainer'));
-    configs['yarn.scheduler.minimum-allocation-mb'] = Math.round(this.get('ramPerContainer'));
-    configs['yarn.scheduler.maximum-allocation-mb'] = Math.round(this.get('containers') * this.get('ramPerContainer'));
-    configs['yarn.app.mapreduce.am.resource.mb'] = Math.round(this.get('amMemory'));
-    configs['yarn.app.mapreduce.am.command-opts'] = "-Xmx" + Math.round(0.8 * this.get('amMemory')) + "m";
-    configs['mapreduce.map.memory.mb'] = Math.round(this.get('mapMemory'));
-    configs['mapreduce.reduce.memory.mb'] = Math.round(this.get('reduceMemory'));
-    configs['mapreduce.map.java.opts'] = "-Xmx" + Math.round(0.8 * this.get('mapMemory')) + "m";
-    configs['mapreduce.reduce.java.opts'] = "-Xmx" + Math.round(0.8 * this.get('reduceMemory')) + "m";
-    configs['mapreduce.task.io.sort.mb'] = Math.round(0.4 * this.get('mapMemory'));
-    return configs;
-  },
-
-  /**
-   * Calculate needed cluster data (like disk count, cpu count, ram (in MB!) and hbase availability)
-   * @param {object} localDB Object with information about hosts and master/slave components
-   */
-  getClusterData: function (localDB) {
-    this._super();
-    var components = ['NODEMANAGER'];
-    var hosts = [];
-    if (!localDB.hosts || !(localDB.masterComponentHosts || localDB.slaveComponentHosts)) return;
-    var hBaseInstalled = !!localDB.masterComponentHosts.filterProperty('component', 'HBASE_MASTER').length;
-    components.forEach(function (component) {
-      var mc = localDB.masterComponentHosts.findProperty('component', component);
-      if (mc) {
-        if (!hosts.contains(mc.hostName)) {
-          hosts.push(mc.hostName);
-        }
-      }
-      else {
-        var sc = localDB.slaveComponentHosts.findProperty('componentName', component);
-        if (sc) {
-          sc.hosts.map(function (host) {
-            if (!hosts.contains(host.hostName)) {
-              hosts.push(host.hostName);
-            }
-          });
-        }
-      }
-    });
-    var clusterData = {
-      cpu: 0,
-      disk: 0,
-      ram: 0,
-      hBaseInstalled: hBaseInstalled
-    };
-    var host = hosts[0] && localDB.hosts[hosts[0]];
-    if (host) {
-      clusterData.cpu = parseInt(host.cpu);
-      var length = 0;
-      host.disk_info.forEach(function(disk) {
-        //invalid mountpoints
-        if (!(disk.mountpoint.startsWith('/home/') || disk.mountpoint.startsWith('/homes/') || 
-        		disk.mountpoint.startsWith('/dev/') || disk.mountpoint.startsWith('/tmp/'))) {
-          length++;
-        }
-      },this);
-      clusterData.disk = length;
-      clusterData.ram = Math.round(parseFloat(host.memory) / (1024 * 1024));
-    }
-    this.set('clusterData', clusterData);
-  },
-
-  /**
-   * Verify <code>clusterData</code> - check if all properties are defined
-   */
-  clusterDataIsValid: function () {
-    if (!this.get('clusterData')) return false;
-    if (this.get('clusterData.ram') == null || this.get('clusterData.cpu') == null || this.get('clusterData.disk') == null || this.get('clusterData.hBaseInstalled') == null) return false;
-    return true;
-  }
-
-});

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/24b8a588/ambari-web/test/utils/configs/defaults_providers/yarn_defaults_provider_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/utils/configs/defaults_providers/yarn_defaults_provider_test.js b/ambari-web/test/utils/configs/defaults_providers/yarn_defaults_provider_test.js
new file mode 100644
index 0000000..c8e36f0
--- /dev/null
+++ b/ambari-web/test/utils/configs/defaults_providers/yarn_defaults_provider_test.js
@@ -0,0 +1,295 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+var App = require('app');
+require('utils/configs/defaults_providers/defaultsProvider');
+require('utils/configs/defaults_providers/yarn_defaults_provider');
+
+describe('YARNDefaultsProvider', function() {
+
+  describe('#clusterDataIsValid', function() {
+    var tests = [
+      {clusterData: {disk: 12,ram: 48 * 1024,cpu: 12,hBaseInstalled: false},e: true},
+      {clusterData: {disk: null,ram: 48 * 1024,cpu: 12,hBaseInstalled: false},e: false},
+      {clusterData: {disk: 12,ram: null,cpu: 12,hBaseInstalled: false},e: false},
+      {clusterData: {disk: 12,ram: 48 * 1024,cpu: null,hBaseInstalled: false},e: false},
+      {clusterData: {disk: 12,ram: 48 * 1024,cpu: 12,hBaseInstalled: null},e: false},
+      {clusterData: {disk: 12,ram: 48 * 1024,cpu: 12},e: false},
+      {clusterData: {disk: 12,ram: 48 * 1024,hBaseInstalled: true},e: false},
+      {clusterData: {disk: 12,cpu: 12,hBaseInstalled: true},e: false},
+      {clusterData: {ram: 48 * 1024,cpu: 12,hBaseInstalled: false},e: false}
+    ];
+    tests.forEach(function(test) {
+      it((test.e?'valid':'invalid') + ' clusterData', function() {
+        App.YARNDefaultsProvider.set('clusterData', test.clusterData);
+        expect(App.YARNDefaultsProvider.clusterDataIsValid()).to.equal(test.e);
+      });
+    });
+  });
+
+  describe('#reservedMemoryRecommendations', function() {
+    var tests = [
+      {ram: null, e: {os: 1, hbase: 1}},
+      {ram: 2, e: {os: 1, hbase: 1}},
+      {ram: 4, e: {os: 1, hbase: 1}},
+      {ram: 6, e: {os: 2, hbase: 1}},
+      {ram: 8, e: {os: 2, hbase: 1}},
+      {ram: 12, e: {os: 2, hbase: 2}},
+      {ram: 16, e: {os: 2, hbase: 2}},
+      {ram: 20, e: {os: 4, hbase: 4}},
+      {ram: 24, e: {os: 4, hbase: 4}},
+      {ram: 36, e: {os: 6, hbase: 8}},
+      {ram: 48, e: {os: 6, hbase: 8}},
+      {ram: 56, e: {os: 8, hbase: 8}},
+      {ram: 64, e: {os: 8, hbase: 8}},
+      {ram: 68, e: {os: 8, hbase: 8}},
+      {ram: 72, e: {os: 8, hbase: 8}},
+      {ram: 84, e: {os: 12, hbase: 16}},
+      {ram: 96, e: {os: 12, hbase: 16}},
+      {ram: 112, e: {os: 24, hbase: 24}},
+      {ram: 128, e: {os: 24, hbase: 24}},
+      {ram: 196, e: {os: 32, hbase: 32}},
+      {ram: 256, e: {os: 32, hbase: 32}},
+      {ram: 384, e: {os: 64, hbase: 64}},
+      {ram: 512, e: {os: 64, hbase: 64}},
+      {ram: 756, e: {os: 64, hbase: 64}}
+    ];
+    App.YARNDefaultsProvider.set('clusterData');
+    tests.forEach(function(test) {
+      it('ram: ' + test.ram + ' GB', function() {
+        App.YARNDefaultsProvider.set('clusterData', {
+          disk: 12,
+          ram: test.ram * 1024,
+          cpu: 12,
+          hBaseInstalled: false
+        });
+        expect(App.YARNDefaultsProvider.get('reservedRam')).to.equal(test.e.os * 1024);
+        expect(App.YARNDefaultsProvider.get('hBaseRam')).to.equal(test.e.hbase * 1024);
+      });
+    });
+  });
+
+  describe('#recommendedMinimumContainerSize', function() {
+    it('No clusterData', function() {
+      App.YARNDefaultsProvider.set('clusterData', null);
+      expect(App.YARNDefaultsProvider.get('recommendedMinimumContainerSize')).to.equal(null);
+    });
+    it('No clusterData.ram', function() {
+      App.YARNDefaultsProvider.set('clusterData', {});
+      expect(App.YARNDefaultsProvider.get('recommendedMinimumContainerSize')).to.equal(null);
+    });
+
+    var tests = [
+      {ram: 3, e: 256},
+      {ram: 4, e: 512},
+      {ram: 6, e: 512},
+      {ram: 8, e: 1024},
+      {ram: 12, e: 1024},
+      {ram: 24, e: 2048}
+    ];
+
+    tests.forEach(function(test) {
+      it('ram: ' + test.ram + ' GB', function() {
+        App.YARNDefaultsProvider.set('clusterData', {
+          disk: 12,
+          ram: test.ram * 1024,
+          cpu: 12,
+          hBaseInstalled: false
+        });
+        expect(App.YARNDefaultsProvider.get('recommendedMinimumContainerSize')).to.equal(test.e);
+      });
+    });
+
+  });
+
+  describe('#containers', function() {
+    it('No clusterData', function() {
+      App.YARNDefaultsProvider.set('clusterData', null);
+      expect(App.YARNDefaultsProvider.get('containers')).to.equal(null);
+    });
+    it('Some clusterData metric is null', function() {
+      App.YARNDefaultsProvider.set('clusterData', {disk: null, cpu: 1, ram: 1});
+      expect(App.YARNDefaultsProvider.get('containers')).to.equal(null);
+      App.YARNDefaultsProvider.set('clusterData', {disk: 1, cpu: null, ram: 1});
+      expect(App.YARNDefaultsProvider.get('containers')).to.equal(null);
+      App.YARNDefaultsProvider.set('clusterData', {disk:1, cpu: 1, ram: null});
+      expect(App.YARNDefaultsProvider.get('containers')).to.equal(null);
+    });
+
+    var tests = [
+      {
+        clusterData: {
+          disk: 12,
+          ram: 48 * 1024,
+          cpu: 12,
+          hBaseInstalled: false
+        },
+        e: 21
+      },
+      {
+        clusterData: {
+          disk: 12,
+          ram: 48 * 1024,
+          cpu: 12,
+          hBaseInstalled: true
+        },
+        e: 17
+      }
+    ];
+
+    tests.forEach(function(test) {
+      it((test.hBaseInstalled?'With':'Without') + ' hBase', function() {
+        App.YARNDefaultsProvider.set('clusterData', test.clusterData);
+        expect(App.YARNDefaultsProvider.get('containers')).to.equal(test.e);
+      });
+    });
+
+  });
+
+  describe('#ramPerContainer', function() {
+    it('No clusterData', function() {
+      App.YARNDefaultsProvider.set('clusterData', null);
+      expect(App.YARNDefaultsProvider.get('ramPerContainer')).to.equal(null);
+    });
+    var tests = [
+      {
+        clusterData: {
+          disk: 12,
+          ram: 48 * 1024,
+          cpu: 12,
+          hBaseInstalled: false
+        },
+        e: 2048
+      },
+      {
+        clusterData: {
+          disk: 12,
+          ram: 16 * 1024,
+          cpu: 12,
+          hBaseInstalled: true
+        },
+        e: 1024
+      }
+    ];
+
+    tests.forEach(function(test) {
+      it((test.hBaseInstalled?'With':'Without') + ' hBase', function() {
+        App.YARNDefaultsProvider.set('clusterData', test.clusterData);
+        expect(App.YARNDefaultsProvider.get('ramPerContainer')).to.equal(test.e);
+      });
+    });
+  });
+
+  describe('#getDefaults', function() {
+    var tests = [
+      {
+        localDB: {},
+        m: 'Empty localDB',
+        e: null
+      },
+      {
+        localDB: {
+          "masterComponentHosts": []
+        },
+        m: 'localDB without hosts',
+        e: null
+      },
+      {
+        localDB: {
+          "hosts": {}
+        },
+        m: 'localDB without masterComponentHosts amd slaveComponentHosts',
+        e: null
+      },
+      {
+        localDB: {
+          "hosts": {
+            "host1": {"name": "host1","cpu": 8,"memory": "25165824.00","disk_info": [{},{},{},{},{},{},{},{}]},
+            "host2": {"name": "host2","cpu": 4,"memory": "25165824.00","disk_info": [{},{},{},{}]}
+          },
+          "masterComponentHosts": [
+            {"component": "RESOURCEMANAGER","hostName": "host1","serviceId": "HDFS"}
+          ],
+          "slaveComponentHosts": [
+            {
+              "componentName": "NODEMANAGER",
+              "hosts": [{"hostName": "host2"}]
+            }
+          ]
+        },
+        m: 'Without HBase',
+        e: {
+          'mapreduce.map.java.opts': 1638,
+          'mapreduce.map.memory.mb': 2048,
+          'mapreduce.reduce.java.opts': 3277,
+          'mapreduce.reduce.memory.mb': 4096,
+          'yarn.app.mapreduce.am.command-opts': 3277,
+          'yarn.app.mapreduce.am.resource.mb': 4096,
+          'yarn.nodemanager.resource.memory-mb': 43008,
+          'yarn.scheduler.maximum-allocation-mb': 43008,
+          'yarn.scheduler.minimum-allocation-mb': 2048
+        }
+      },
+      {
+        localDB: {
+          "hosts": {
+            "host1": {"name": "host1","cpu": 8,"memory": "25165824.00","disk_info": [{},{},{},{},{},{},{},{}]},
+            "host2": {"name": "host2","cpu": 4,"memory": "12582912.00","disk_info": [{},{},{},{}]}
+          },
+          "masterComponentHosts": [
+            {"component": "RESOURCEMANAGER","hostName": "host1","serviceId": "HDFS"},
+            {"component": "HBASE_MASTER","hostName": "host1","serviceId": "HDFS"}
+          ],
+          "slaveComponentHosts": [
+            {
+              "componentName": "NODEMANAGER",
+              "hosts": [{"hostName": "host2"}]
+            }
+          ]
+        },
+        m: 'With HBase',
+        e: {
+          'mapreduce.map.java.opts': 1638,
+          'mapreduce.map.memory.mb': 2048,
+          'mapreduce.reduce.java.opts': 3277,
+          'mapreduce.reduce.memory.mb': 4096,
+          'yarn.app.mapreduce.am.command-opts': 3277,
+          'yarn.app.mapreduce.am.resource.mb': 4096,
+          'yarn.nodemanager.resource.memory-mb': 22528,
+          'yarn.scheduler.maximum-allocation-mb': 22528,
+          'yarn.scheduler.minimum-allocation-mb': 2048
+        }
+      }
+    ];
+    tests.forEach(function(test) {
+      it(test.m, function() {
+        App.YARNDefaultsProvider.set('clusterData', null);
+        var configs = App.YARNDefaultsProvider.getDefaults(test.localDB);
+
+        for(var config in configs) {
+          if (test.e) {
+            expect(configs[config]).to.equal(test.e[config]);
+          }
+          else {
+            expect(configs[config] == 0 || configs[config] == null).to.equal(true);
+          }
+        }
+      });
+    });
+  });
+
+});

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/24b8a588/ambari-web/test/utils/defaults_providers/yarn_defaults_provider_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/utils/defaults_providers/yarn_defaults_provider_test.js b/ambari-web/test/utils/defaults_providers/yarn_defaults_provider_test.js
deleted file mode 100644
index 4f1efef..0000000
--- a/ambari-web/test/utils/defaults_providers/yarn_defaults_provider_test.js
+++ /dev/null
@@ -1,295 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with this
- * work for additional information regarding copyright ownership. The ASF
- * licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-var App = require('app');
-require('utils/defaults_providers/defaultsProvider');
-require('utils/defaults_providers/yarn_defaults_provider');
-
-describe('YARNDefaultsProvider', function() {
-
-  describe('#clusterDataIsValid', function() {
-    var tests = [
-      {clusterData: {disk: 12,ram: 48 * 1024,cpu: 12,hBaseInstalled: false},e: true},
-      {clusterData: {disk: null,ram: 48 * 1024,cpu: 12,hBaseInstalled: false},e: false},
-      {clusterData: {disk: 12,ram: null,cpu: 12,hBaseInstalled: false},e: false},
-      {clusterData: {disk: 12,ram: 48 * 1024,cpu: null,hBaseInstalled: false},e: false},
-      {clusterData: {disk: 12,ram: 48 * 1024,cpu: 12,hBaseInstalled: null},e: false},
-      {clusterData: {disk: 12,ram: 48 * 1024,cpu: 12},e: false},
-      {clusterData: {disk: 12,ram: 48 * 1024,hBaseInstalled: true},e: false},
-      {clusterData: {disk: 12,cpu: 12,hBaseInstalled: true},e: false},
-      {clusterData: {ram: 48 * 1024,cpu: 12,hBaseInstalled: false},e: false}
-    ];
-    tests.forEach(function(test) {
-      it((test.e?'valid':'invalid') + ' clusterData', function() {
-        App.YARNDefaultsProvider.set('clusterData', test.clusterData);
-        expect(App.YARNDefaultsProvider.clusterDataIsValid()).to.equal(test.e);
-      });
-    });
-  });
-
-  describe('#reservedMemoryRecommendations', function() {
-    var tests = [
-      {ram: null, e: {os: 1, hbase: 1}},
-      {ram: 2, e: {os: 1, hbase: 1}},
-      {ram: 4, e: {os: 1, hbase: 1}},
-      {ram: 6, e: {os: 2, hbase: 1}},
-      {ram: 8, e: {os: 2, hbase: 1}},
-      {ram: 12, e: {os: 2, hbase: 2}},
-      {ram: 16, e: {os: 2, hbase: 2}},
-      {ram: 20, e: {os: 4, hbase: 4}},
-      {ram: 24, e: {os: 4, hbase: 4}},
-      {ram: 36, e: {os: 6, hbase: 8}},
-      {ram: 48, e: {os: 6, hbase: 8}},
-      {ram: 56, e: {os: 8, hbase: 8}},
-      {ram: 64, e: {os: 8, hbase: 8}},
-      {ram: 68, e: {os: 8, hbase: 8}},
-      {ram: 72, e: {os: 8, hbase: 8}},
-      {ram: 84, e: {os: 12, hbase: 16}},
-      {ram: 96, e: {os: 12, hbase: 16}},
-      {ram: 112, e: {os: 24, hbase: 24}},
-      {ram: 128, e: {os: 24, hbase: 24}},
-      {ram: 196, e: {os: 32, hbase: 32}},
-      {ram: 256, e: {os: 32, hbase: 32}},
-      {ram: 384, e: {os: 64, hbase: 64}},
-      {ram: 512, e: {os: 64, hbase: 64}},
-      {ram: 756, e: {os: 64, hbase: 64}}
-    ];
-    App.YARNDefaultsProvider.set('clusterData');
-    tests.forEach(function(test) {
-      it('ram: ' + test.ram + ' GB', function() {
-        App.YARNDefaultsProvider.set('clusterData', {
-          disk: 12,
-          ram: test.ram * 1024,
-          cpu: 12,
-          hBaseInstalled: false
-        });
-        expect(App.YARNDefaultsProvider.get('reservedRam')).to.equal(test.e.os * 1024);
-        expect(App.YARNDefaultsProvider.get('hBaseRam')).to.equal(test.e.hbase * 1024);
-      });
-    });
-  });
-
-  describe('#recommendedMinimumContainerSize', function() {
-    it('No clusterData', function() {
-      App.YARNDefaultsProvider.set('clusterData', null);
-      expect(App.YARNDefaultsProvider.get('recommendedMinimumContainerSize')).to.equal(null);
-    });
-    it('No clusterData.ram', function() {
-      App.YARNDefaultsProvider.set('clusterData', {});
-      expect(App.YARNDefaultsProvider.get('recommendedMinimumContainerSize')).to.equal(null);
-    });
-
-    var tests = [
-      {ram: 3, e: 256},
-      {ram: 4, e: 512},
-      {ram: 6, e: 512},
-      {ram: 8, e: 1024},
-      {ram: 12, e: 1024},
-      {ram: 24, e: 2048}
-    ];
-
-    tests.forEach(function(test) {
-      it('ram: ' + test.ram + ' GB', function() {
-        App.YARNDefaultsProvider.set('clusterData', {
-          disk: 12,
-          ram: test.ram * 1024,
-          cpu: 12,
-          hBaseInstalled: false
-        });
-        expect(App.YARNDefaultsProvider.get('recommendedMinimumContainerSize')).to.equal(test.e);
-      });
-    });
-
-  });
-
-  describe('#containers', function() {
-    it('No clusterData', function() {
-      App.YARNDefaultsProvider.set('clusterData', null);
-      expect(App.YARNDefaultsProvider.get('containers')).to.equal(null);
-    });
-    it('Some clusterData metric is null', function() {
-      App.YARNDefaultsProvider.set('clusterData', {disk: null, cpu: 1, ram: 1});
-      expect(App.YARNDefaultsProvider.get('containers')).to.equal(null);
-      App.YARNDefaultsProvider.set('clusterData', {disk: 1, cpu: null, ram: 1});
-      expect(App.YARNDefaultsProvider.get('containers')).to.equal(null);
-      App.YARNDefaultsProvider.set('clusterData', {disk:1, cpu: 1, ram: null});
-      expect(App.YARNDefaultsProvider.get('containers')).to.equal(null);
-    });
-
-    var tests = [
-      {
-        clusterData: {
-          disk: 12,
-          ram: 48 * 1024,
-          cpu: 12,
-          hBaseInstalled: false
-        },
-        e: 21
-      },
-      {
-        clusterData: {
-          disk: 12,
-          ram: 48 * 1024,
-          cpu: 12,
-          hBaseInstalled: true
-        },
-        e: 17
-      }
-    ];
-
-    tests.forEach(function(test) {
-      it((test.hBaseInstalled?'With':'Without') + ' hBase', function() {
-        App.YARNDefaultsProvider.set('clusterData', test.clusterData);
-        expect(App.YARNDefaultsProvider.get('containers')).to.equal(test.e);
-      });
-    });
-
-  });
-
-  describe('#ramPerContainer', function() {
-    it('No clusterData', function() {
-      App.YARNDefaultsProvider.set('clusterData', null);
-      expect(App.YARNDefaultsProvider.get('ramPerContainer')).to.equal(null);
-    });
-    var tests = [
-      {
-        clusterData: {
-          disk: 12,
-          ram: 48 * 1024,
-          cpu: 12,
-          hBaseInstalled: false
-        },
-        e: 2048
-      },
-      {
-        clusterData: {
-          disk: 12,
-          ram: 16 * 1024,
-          cpu: 12,
-          hBaseInstalled: true
-        },
-        e: 1024
-      }
-    ];
-
-    tests.forEach(function(test) {
-      it((test.hBaseInstalled?'With':'Without') + ' hBase', function() {
-        App.YARNDefaultsProvider.set('clusterData', test.clusterData);
-        expect(App.YARNDefaultsProvider.get('ramPerContainer')).to.equal(test.e);
-      });
-    });
-  });
-
-  describe('#getDefaults', function() {
-    var tests = [
-      {
-        localDB: {},
-        m: 'Empty localDB',
-        e: null
-      },
-      {
-        localDB: {
-          "masterComponentHosts": []
-        },
-        m: 'localDB without hosts',
-        e: null
-      },
-      {
-        localDB: {
-          "hosts": {}
-        },
-        m: 'localDB without masterComponentHosts amd slaveComponentHosts',
-        e: null
-      },
-      {
-        localDB: {
-          "hosts": {
-            "host1": {"name": "host1","cpu": 8,"memory": "25165824.00","disk_info": [{},{},{},{},{},{},{},{}]},
-            "host2": {"name": "host2","cpu": 4,"memory": "25165824.00","disk_info": [{},{},{},{}]}
-          },
-          "masterComponentHosts": [
-            {"component": "RESOURCEMANAGER","hostName": "host1","serviceId": "HDFS"}
-          ],
-          "slaveComponentHosts": [
-            {
-              "componentName": "NODEMANAGER",
-              "hosts": [{"hostName": "host2"}]
-            }
-          ]
-        },
-        m: 'Without HBase',
-        e: {
-          'mapreduce.map.java.opts': 1638,
-          'mapreduce.map.memory.mb': 2048,
-          'mapreduce.reduce.java.opts': 3277,
-          'mapreduce.reduce.memory.mb': 4096,
-          'yarn.app.mapreduce.am.command-opts': 3277,
-          'yarn.app.mapreduce.am.resource.mb': 4096,
-          'yarn.nodemanager.resource.memory-mb': 43008,
-          'yarn.scheduler.maximum-allocation-mb': 43008,
-          'yarn.scheduler.minimum-allocation-mb': 2048
-        }
-      },
-      {
-        localDB: {
-          "hosts": {
-            "host1": {"name": "host1","cpu": 8,"memory": "25165824.00","disk_info": [{},{},{},{},{},{},{},{}]},
-            "host2": {"name": "host2","cpu": 4,"memory": "12582912.00","disk_info": [{},{},{},{}]}
-          },
-          "masterComponentHosts": [
-            {"component": "RESOURCEMANAGER","hostName": "host1","serviceId": "HDFS"},
-            {"component": "HBASE_MASTER","hostName": "host1","serviceId": "HDFS"}
-          ],
-          "slaveComponentHosts": [
-            {
-              "componentName": "NODEMANAGER",
-              "hosts": [{"hostName": "host2"}]
-            }
-          ]
-        },
-        m: 'With HBase',
-        e: {
-          'mapreduce.map.java.opts': 1638,
-          'mapreduce.map.memory.mb': 2048,
-          'mapreduce.reduce.java.opts': 3277,
-          'mapreduce.reduce.memory.mb': 4096,
-          'yarn.app.mapreduce.am.command-opts': 3277,
-          'yarn.app.mapreduce.am.resource.mb': 4096,
-          'yarn.nodemanager.resource.memory-mb': 22528,
-          'yarn.scheduler.maximum-allocation-mb': 22528,
-          'yarn.scheduler.minimum-allocation-mb': 2048
-        }
-      }
-    ];
-    tests.forEach(function(test) {
-      it(test.m, function() {
-        App.YARNDefaultsProvider.set('clusterData', null);
-        var configs = App.YARNDefaultsProvider.getDefaults(test.localDB);
-
-        for(var config in configs) {
-          if (test.e) {
-            expect(configs[config]).to.equal(test.e[config]);
-          }
-          else {
-            expect(configs[config] == 0 || configs[config] == null).to.equal(true);
-          }
-        }
-      });
-    });
-  });
-
-});


[10/20] git commit: AMBARI-3675: Default value of 'Default virtual memory for a job's map-task' is not valid. [Merged] (jaimin)

Posted by sr...@apache.org.
AMBARI-3675: Default value of 'Default virtual memory for a job's map-task' is not valid. [Merged] (jaimin)


Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/2204615e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/2204615e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/2204615e

Branch: refs/heads/branch-1.4-bk
Commit: 2204615e7632e0fd8e234db2fbbe2ed79ad98dfd
Parents: e7c2b07
Author: Jaimin Jetly <ja...@hortonworks.com>
Authored: Mon Nov 4 01:19:01 2013 -0800
Committer: Srimanth Gunturi <sg...@hortonworks.com>
Committed: Tue Nov 5 12:52:17 2013 -0800

----------------------------------------------------------------------
 .../app/controllers/wizard/step7_controller.js  |   2 +-
 ambari-web/app/utils/config.js                  |   7 +-
 .../yarn_defaults_provider.js                   | 192 ++++++++++---------
 ambari-web/app/utils/helper.js                  |   3 +
 ambari-web/app/utils/string_utils.js            |   2 +-
 5 files changed, 114 insertions(+), 92 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/2204615e/ambari-web/app/controllers/wizard/step7_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step7_controller.js b/ambari-web/app/controllers/wizard/step7_controller.js
index b46e6eb..5ac149b 100644
--- a/ambari-web/app/controllers/wizard/step7_controller.js
+++ b/ambari-web/app/controllers/wizard/step7_controller.js
@@ -93,7 +93,7 @@ App.WizardStep7Controller = Em.Controller.extend({
       configs = App.config.fileConfigsIntoTextarea(configs, 'capacity-scheduler.xml');
     }
     //STEP 6: Distribute configs by service and wrap each one in App.ServiceConfigProperty (configs -> serviceConfigs)
-    var serviceConfigs = App.config.renderConfigs(configs, storedConfigs, this.get('allInstalledServiceNames'), this.get('selectedServiceNames'));
+    var serviceConfigs = App.config.renderConfigs(configs, storedConfigs, this.get('allInstalledServiceNames'), this.get('selectedServiceNames'), localDB, storedConfigs);
     this.set('stepConfigs', serviceConfigs);
     this.activateSpecialConfigs();
     this.set('selectedService', this.get('stepConfigs').filterProperty('showConfig', true).objectAt(0));

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/2204615e/ambari-web/app/utils/config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js
index 6897de1..288665d 100644
--- a/ambari-web/app/utils/config.js
+++ b/ambari-web/app/utils/config.js
@@ -365,6 +365,7 @@ App.config = Em.Object.create({
         configData.filename = stored.filename;
         configData.description = stored.description;
       } else if (!preDefined && stored) {
+
         configData = {
           id: stored.id,
           name: stored.name,
@@ -465,9 +466,10 @@ App.config = Em.Object.create({
    * @param allInstalledServiceNames
    * @param selectedServiceNames
    * @param localDB
+   * @param storedConfigs
    * @return {Array}
    */
-  renderConfigs: function (configs, storedConfigs, allInstalledServiceNames, selectedServiceNames) {
+  renderConfigs: function (configs, storedConfigs, allInstalledServiceNames, selectedServiceNames, localDB, storedConfigs) {
     var renderedServiceConfigs = [];
     var localDB = {
       hosts: App.db.getHosts(),
@@ -505,7 +507,8 @@ App.config = Em.Object.create({
       serviceConfig.set('showConfig', service.showConfig);
 
       // Use calculated default values for some configs
-      if (service.defaultsProviders) {
+
+      if (!storedConfigs && service.defaultsProviders)  {
         service.defaultsProviders.forEach(function(defaultsProvider) {
           var defaults = defaultsProvider.getDefaults(localDB);
           for(var name in defaults) {

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/2204615e/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js b/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js
index 0ae3e70..80732cb 100644
--- a/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js
+++ b/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js
@@ -31,6 +31,7 @@ App.YARNDefaultsProvider = App.DefaultsProvider.create({
     'mapreduce.reduce.memory.mb': null,
     'mapreduce.map.java.opts': null,
     'mapreduce.reduce.java.opts': null,
+    'mapreduce.task.io.sort.mb': null,
     'yarn.app.mapreduce.am.resource.mb': null,
     'yarn.app.mapreduce.am.command-opts': null
   },
@@ -61,110 +62,118 @@ App.YARNDefaultsProvider = App.DefaultsProvider.create({
    */
   hBaseRam: null,
 
+  GB: 1024,
   /**
    *  Minimum container size (in RAM).
    *  This value is dependent on the amount of RAM available, as in smaller memory nodes the minimum container size should also be smaller
    *
    *  Value in MB!
    */
-  recommendedMinimumContainerSize: function() {
+  recommendedMinimumContainerSize: function () {
     if (!this.clusterDataIsValid()) return null;
     var ram = this.get('clusterData.ram');
-    switch(true) {
-      case (ram < 4*1024): return 256;
-      case (ram >= 4*1024 && ram < 8*1024): return 512;
-      case (ram >= 8*1024 && ram < 24*1024): return 1024;
-      case (ram >= 24*1024):
-      default: return 2048;
+    switch (true) {
+      case (ram <=4 ):
+        return 256;
+      case (ram <= 8):
+        return 512;
+      case (ram <= 24):
+        return 1024;
+      default:
+        return 2048;
     }
   }.property('clusterData.ram'),
 
   /**
    * Maximum number of containers allowed per node
+   * max (2*cores,min (1.8*DISKS,(Total available RAM) / MIN_CONTAINER_SIZE)))
    * min (2*CORES, 1.8*DISKS, (Total available RAM) / MIN_CONTAINER_SIZE)
    */
-  containers: function() {
+  containers: function () {
     if (!this.clusterDataIsValid()) return null;
     var cpu = this.get('clusterData.cpu');
     var disk = this.get('clusterData.disk');
     var ram = this.get('clusterData.ram');
     var containerSize = this.get('recommendedMinimumContainerSize');
     cpu *= 2;
-    disk *= 1.8;
+    disk = Math.ceil(disk * 1.8);
     ram = (ram - this.get('reservedRam'));
     if (this.get('clusterData.hBaseInstalled')) {
       ram -= this.get('hBaseRam')
     }
+    ram *= this.get('GB');
     ram /= containerSize;
-    if (cpu < disk) {
-      if (cpu < ram) {
-        return cpu;
-      }
-      return ram;
-    }
-    else {
-      if (disk < ram) {
-        return parseInt(disk);
-      }
-      return ram;
-    }
-  }.property('clusterData.cpu', 'clusterData.ram', 'clusterData.disk', 'recommendedMinimumContainerSize'),
+    return Math.round(Math.max(cpu, Math.min(disk, ram)));
+  }.property('clusterData.cpu', 'clusterData.ram', 'clusterData.hBaseInstalled', 'clusterData.disk', 'reservedRam', 'hBaseRam', 'recommendedMinimumContainerSize'),
 
   /**
    * amount of RAM per container
-   * RAM-per-container = max(MIN_CONTAINER_SIZE, (Total Available RAM) / containers))
+   * RAM-per-container = abs(MIN_CONTAINER_SIZE, (Total Available RAM) / containers))
    *
    * Value in MB!
    */
-  ramPerContainer: function() {
-    var containerSize = this.get('recommendedMinimumContainerSize');
+  ramPerContainer: function () {
     var containers = this.get('containers');
-    if (!containerSize || !containers) {
-      return null;
-    }
-    var s = this.get('clusterData.ram') - this.get('reservedRam');
+    var ram = this.get('clusterData.ram');
+    ram = (ram - this.get('reservedRam'));
     if (this.get('clusterData.hBaseInstalled')) {
-      s -= this.get('hBaseRam');
+      ram -= this.get('hBaseRam')
     }
-    s /= containers;
-    return (containerSize > s) ? containerSize : s;
-  }.property('recommendedMinimumContainerSize', 'containers'),
+    ram *= this.get('GB');
+    var container_ram = Math.abs(ram / containers);
+    return container_ram > this.get('GB') ? container_ram / (512 * 512) : container_ram;
+  }.property('recommendedMinimumContainerSize', 'containers', 'clusterData.ram', 'clusterData.hBaseInstalled', 'hBaseRam', 'reservedRam'),
+
+  mapMemory: function () {
+    return this.get('ramPerContainer');
+  }.property('ramPerContainer'),
+
+  reduceMemory: function () {
+    var ramPerContainer = this.get('ramPerContainer');
+    return ramPerContainer <= 2048 ? 2 * ramPerContainer : ramPerContainer;
+  }.property('ramPerContainer'),
+
+  amMemeory: function () {
+    return Math.max(this.get('mapMemory'), this.get('reduceMemory'));
+  }.property('mapMemory', 'reduceMemory'),
 
   /**
    * Reserved for HBase and system memory is based on total available memory
    */
-  reservedMemoryRecommendations: function() {
-    var table = [
-      {os:1,hbase:1},
-      {os:2,hbase:1},
-      {os:2,hbase:2},
-      {os:4,hbase:4},
-      {os:6,hbase:8},
-      {os:8,hbase:8},
-      {os:8,hbase:8},
-      {os:12,hbase:16},
-      {os:24,hbase:24},
-      {os:32,hbase:32},
-      {os:64,hbase:64}
-    ];
-    var ram = this.get('clusterData.ram') / 1024;
-    var index = 0;
-    switch (true) {
-      case (ram <= 4): index = 0; break;
-      case (ram > 4 && ram <= 8): index = 1; break;
-      case (ram > 8 && ram <= 16): index = 2; break;
-      case (ram > 16 && ram <= 24): index = 3; break;
-      case (ram > 24 && ram <= 48): index = 4; break;
-      case (ram > 48 && ram <= 64): index = 5; break;
-      case (ram > 64 && ram <= 72): index = 6; break;
-      case (ram > 72 && ram <= 96): index = 7; break;
-      case (ram > 96 && ram <= 128): index = 8; break;
-      case (ram > 128 && ram <= 256): index = 9; break;
-      case (ram > 256 && ram <= 512): index = 10; break;
-      default: index = 10; break;
+
+
+
+  reservedStackRecommendations: function () {
+    var memory = this.get('clusterData.ram');
+    var reservedStack = { 4: 1, 8: 2, 16: 2, 24: 4, 48: 6, 64: 8, 72: 8, 96: 12,
+      128: 24, 256: 32, 512: 64};
+
+    if (memory in reservedStack) {
+      this.set('reservedRam', reservedStack[memory]);
     }
-    this.set('reservedRam', table[index].os * 1024);
-    this.set('hBaseRam', table[index].hbase * 1024);
+    if (memory <= 4)
+      this.set('reservedRam', 1);
+    else if (memory >= 512)
+      this.set('reservedRam', 64);
+    else
+      this.set('reservedRam', 1);
+  }.observes('clusterData.ram'),
+
+  hbaseMemRecommendations: function () {
+    var memory = this.get('clusterData.ram');
+    var reservedHBase = {4:1, 8:1, 16:2, 24:4, 48:8, 64:8, 72:8, 96:16,
+      128:24, 256:32, 512:64};
+
+    if (memory in reservedHBase) {
+      this.set('reservedRam', reservedHBase[memory]);
+    }
+    if (memory <= 4)
+      this.set('hBaseRam', 1);
+    else if (memory >= 512)
+      this.set('hBaseRam', 64);
+    else
+      this.set('hBaseRam', 2);
+
   }.observes('clusterData.ram'),
 
   /**
@@ -198,20 +207,21 @@ App.YARNDefaultsProvider = App.DefaultsProvider.create({
    *  </code>
    * @return {object}
    */
-  getDefaults: function(localDB) {
+  getDefaults: function (localDB) {
     this._super();
     this.getClusterData(localDB);
     var configs = {};
     jQuery.extend(configs, this.get('configsTemplate'));
-    configs['yarn.nodemanager.resource.memory-mb'] = this.get('containers') * this.get('ramPerContainer');
-    configs['yarn.scheduler.minimum-allocation-mb'] = this.get('ramPerContainer');
-    configs['yarn.scheduler.maximum-allocation-mb'] = this.get('containers') * this.get('ramPerContainer');
-    configs['mapreduce.map.memory.mb'] = this.get('ramPerContainer');
-    configs['mapreduce.reduce.memory.mb'] = 2 * this.get('ramPerContainer');
-    configs['mapreduce.map.java.opts'] = Math.round(0.8 * this.get('ramPerContainer'));
-    configs['mapreduce.reduce.java.opts'] = Math.round(0.8 *2 * this.get('ramPerContainer'));
-    configs['yarn.app.mapreduce.am.resource.mb'] = 2 * this.get('ramPerContainer');
-    configs['yarn.app.mapreduce.am.command-opts'] = Math.round(0.8 * 2 * this.get('ramPerContainer'));
+    configs['yarn.nodemanager.resource.memory-mb'] = Math.round(this.get('containers') * this.get('ramPerContainer'));
+    configs['yarn.scheduler.minimum-allocation-mb'] = Math.round(this.get('ramPerContainer'));
+    configs['yarn.scheduler.maximum-allocation-mb'] = Math.round(this.get('containers') * this.get('ramPerContainer'));
+    configs['yarn.app.mapreduce.am.resource.mb'] = Math.round(this.get('amMemory'));
+    configs['yarn.app.mapreduce.am.command-opts'] = Math.round(0.8 * this.get('amMemory'));
+    configs['mapreduce.map.memory.mb'] = Math.round(this.get('mapMemory'));
+    configs['mapreduce.reduce.memory.mb'] = Math.round(this.get('reduceMemory'));
+    configs['mapreduce.map.java.opts'] = Math.round(0.8 * this.get('mapMemory'));
+    configs['mapreduce.reduce.java.opts'] = Math.round(0.8 * this.get('reduceMemory'));
+    configs['mapreduce.task.io.sort.mb'] = Math.round(0.4 * this.get('mapMemory'));
     return configs;
   },
 
@@ -219,13 +229,13 @@ App.YARNDefaultsProvider = App.DefaultsProvider.create({
    * Calculate needed cluster data (like disk count, cpu count, ram (in MB!) and hbase availability)
    * @param {object} localDB Object with information about hosts and master/slave components
    */
-  getClusterData: function(localDB) {
+  getClusterData: function (localDB) {
     this._super();
-    var components = ['RESOURCEMANAGER', 'NODEMANAGER'];
+    var components = ['NODEMANAGER'];
     var hosts = [];
     if (!localDB.hosts || !(localDB.masterComponentHosts || localDB.slaveComponentHosts)) return;
     var hBaseInstalled = !!localDB.masterComponentHosts.filterProperty('component', 'HBASE_MASTER').length;
-    components.forEach(function(component) {
+    components.forEach(function (component) {
       var mc = localDB.masterComponentHosts.findProperty('component', component);
       if (mc) {
         if (!hosts.contains(mc.hostName)) {
@@ -235,7 +245,7 @@ App.YARNDefaultsProvider = App.DefaultsProvider.create({
       else {
         var sc = localDB.slaveComponentHosts.findProperty('componentName', component);
         if (sc) {
-          sc.hosts.map(function(host) {
+          sc.hosts.map(function (host) {
             if (!hosts.contains(host.hostName)) {
               hosts.push(host.hostName);
             }
@@ -249,23 +259,29 @@ App.YARNDefaultsProvider = App.DefaultsProvider.create({
       ram: 0,
       hBaseInstalled: hBaseInstalled
     };
-    hosts.forEach(function(hostName) {
-      var host = localDB.hosts[hostName];
-      if (host) {
-        clusterData.cpu += parseInt(host.cpu);
-        clusterData.disk += host.disk_info.length;
-        clusterData.ram += Math.round(parseFloat(host.memory) / 1024);
-      }
-    });
+    var host = hosts[0] && localDB.hosts[hosts[0]];
+    if (host) {
+      clusterData.cpu = parseInt(host.cpu);
+      invalidMountPoints= ['/homes/','/dev/','/tmp/'];
+      var length = 0;
+      host.disk_info.forEach(function(disk) {
+        //invalid mountpoints
+        if (!(disk.mountpoint.startsWith('/homes/') || disk.mountpoint.startsWith('/dev/') || disk.mountpoint.startsWith('/tmp/'))) {
+          length++;
+        }
+      },this);
+      clusterData.disk = length;
+      clusterData.ram = Math.round(parseFloat(host.memory) / (1024 * 1024));
+    }
     this.set('clusterData', clusterData);
   },
 
   /**
    * Verify <code>clusterData</code> - check if all properties are defined
    */
-  clusterDataIsValid: function() {
+  clusterDataIsValid: function () {
     if (!this.get('clusterData')) return false;
-    if (this.get('clusterData.ram') == null || this.get('clusterData.cpu') == null || this.get('clusterData.disk') == null  || this.get('clusterData.hBaseInstalled') == null) return false;
+    if (this.get('clusterData.ram') == null || this.get('clusterData.cpu') == null || this.get('clusterData.disk') == null || this.get('clusterData.hBaseInstalled') == null) return false;
     return true;
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/2204615e/ambari-web/app/utils/helper.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/helper.js b/ambari-web/app/utils/helper.js
index 60961dc..f86a2be 100644
--- a/ambari-web/app/utils/helper.js
+++ b/ambari-web/app/utils/helper.js
@@ -23,6 +23,9 @@ String.prototype.trim = function () {
 String.prototype.endsWith = function(suffix) {
   return this.indexOf(suffix, this.length - suffix.length) !== -1;
 };
+String.prototype.startsWith = function (prefix){
+  return this.indexOf(prefix) == 0;
+};
 
 /**
  * convert ip address string to long int

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/2204615e/ambari-web/app/utils/string_utils.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/string_utils.js b/ambari-web/app/utils/string_utils.js
index 85068ad..92cb75f 100644
--- a/ambari-web/app/utils/string_utils.js
+++ b/ambari-web/app/utils/string_utils.js
@@ -107,7 +107,7 @@ module.exports = {
   },
 
   isSingleLine: function(string){
-    return string.trim().indexOf("\n") == -1;
+    return String(string).trim().indexOf("\n") == -1;
   },
   /**
    * transform array of objects into CSV format content


[18/20] git commit: AMBARI-3743. YARN dynamic configs generate 0 values nodes. (srimanth)

Posted by sr...@apache.org.
AMBARI-3743. YARN dynamic configs generate 0 values nodes. (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/5b204e1c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/5b204e1c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/5b204e1c

Branch: refs/heads/branch-1.4-bk
Commit: 5b204e1cee5f48da23c105f532c436a3e8ee797d
Parents: 4ff2865
Author: Srimanth Gunturi <sg...@hortonworks.com>
Authored: Mon Nov 11 12:20:09 2013 -0800
Committer: Srimanth Gunturi <sg...@hortonworks.com>
Committed: Mon Nov 11 13:33:48 2013 -0800

----------------------------------------------------------------------
 .../defaults_providers/yarn_defaults_provider.js     | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/5b204e1c/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js b/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
index 7a37f0b..4b49f0f 100644
--- a/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
+++ b/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
@@ -110,10 +110,11 @@ App.YARNDefaultsProvider = App.DefaultsProvider.create({
   }.property('clusterData.cpu', 'clusterData.ram', 'clusterData.hBaseInstalled', 'clusterData.disk', 'reservedRam', 'hBaseRam', 'recommendedMinimumContainerSize'),
 
   /**
-   * amount of RAM per container
-   * RAM-per-container = abs(MIN_CONTAINER_SIZE, (Total Available RAM) / containers))
+   * Amount of RAM per container.
+   * Calculated to be max(1GB, RAM - reservedRam - hBaseRam) / containers
    *
-   * Value in MB!
+   * @return Memory per container in MB. If greater than 1GB, 
+   *          value will be in multiples of 512. 
    */
   ramPerContainer: function () {
     var containers = this.get('containers');
@@ -122,12 +123,18 @@ App.YARNDefaultsProvider = App.DefaultsProvider.create({
     if (this.get('clusterData.hBaseInstalled')) {
       ram -= this.get('hBaseRam')
     }
+    // On low memory systems, memory left over after
+    // removing reserved-RAM and HBase might be
+    // less than 1GB (even negative). If so, we force
+    // a 1GB value relying on virtual memory.
     if (ram < 1) {
       ram = 1;
     }
     ram *= this.get('GB');
     var container_ram = Math.abs(ram / containers);
-    return container_ram > this.get('GB') ? container_ram / (512 * 512) : container_ram;
+    // If container memory is greater than 1GB, 
+    // we use multiples of 512 as value
+    return container_ram > this.get('GB') ? (Math.floor(container_ram / 512) * 512) : container_ram;
   }.property('recommendedMinimumContainerSize', 'containers', 'clusterData.ram', 'clusterData.hBaseInstalled', 'hBaseRam', 'reservedRam'),
 
   mapMemory: function () {


[03/20] AMBARI-3579. Adding new stack based on hadoop 1.0. (mahadev)

Posted by sr...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/configuration/hdfs-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/configuration/hdfs-site.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/configuration/hdfs-site.xml
new file mode 100644
index 0000000..bd978a9
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/configuration/hdfs-site.xml
@@ -0,0 +1,454 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration>
+
+<!-- file system properties -->
+
+  <property>
+    <name>dfs.name.dir</name>
+    <!-- cluster variant -->
+    <value></value>
+    <description>Determines where on the local filesystem the DFS name node
+      should store the name table.  If this is a comma-delimited list
+      of directories then the name table is replicated in all of the
+      directories, for redundancy. </description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>dfs.support.append</name>
+    <value></value>
+    <description>to enable dfs append</description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>dfs.webhdfs.enabled</name>
+    <value></value>
+    <description>to enable webhdfs</description>
+    <final>true</final>
+  </property>
+
+ <property>
+    <name>dfs.datanode.socket.write.timeout</name>
+    <value>0</value>
+    <description>DFS Client write socket timeout</description>
+  </property>
+
+  <property>
+    <name>dfs.datanode.failed.volumes.tolerated</name>
+    <value></value>
+    <description>#of failed disks dn would tolerate</description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>dfs.block.local-path-access.user</name>
+    <value></value>
+    <description>the user who is allowed to perform short
+    circuit reads.
+    </description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>dfs.data.dir</name>
+    <value></value>
+    <description>Determines where on the local filesystem an DFS data node
+  should store its blocks.  If this is a comma-delimited
+  list of directories, then data will be stored in all named
+  directories, typically on different devices.
+  Directories that do not exist are ignored.
+  </description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>dfs.hosts.exclude</name>
+    <value></value>
+    <description>Names a file that contains a list of hosts that are
+    not permitted to connect to the namenode.  The full pathname of the
+    file must be specified.  If the value is empty, no hosts are
+    excluded.</description>
+  </property>
+
+  <property>
+    <name>dfs.hosts</name>
+    <value></value>
+    <description>Names a file that contains a list of hosts that are
+    permitted to connect to the namenode. The full pathname of the file
+    must be specified.  If the value is empty, all hosts are
+    permitted.</description>
+  </property>
+
+  <property>
+    <name>dfs.replication.max</name>
+    <value>50</value>
+    <description>Maximal block replication.
+  </description>
+  </property>
+
+  <property>
+    <name>dfs.replication</name>
+    <value></value>
+    <description>Default block replication.
+  </description>
+  </property>
+
+  <property>
+    <name>dfs.heartbeat.interval</name>
+    <value>3</value>
+    <description>Determines datanode heartbeat interval in seconds.</description>
+  </property>
+
+  <property>
+    <name>dfs.safemode.threshold.pct</name>
+    <value>1.0f</value>
+    <description>
+        Specifies the percentage of blocks that should satisfy
+        the minimal replication requirement defined by dfs.replication.min.
+        Values less than or equal to 0 mean not to start in safe mode.
+        Values greater than 1 will make safe mode permanent.
+        </description>
+  </property>
+
+  <property>
+    <name>dfs.balance.bandwidthPerSec</name>
+    <value>6250000</value>
+    <description>
+        Specifies the maximum amount of bandwidth that each datanode
+        can utilize for the balancing purpose in term of
+        the number of bytes per second.
+  </description>
+  </property>
+
+  <property>
+    <name>dfs.https.port</name>
+    <value>50070</value>
+    <description>
+      This property is used by HftpFileSystem.
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.datanode.address</name>
+    <value></value>
+  </property>
+
+  <property>
+    <name>dfs.datanode.http.address</name>
+    <value></value>
+  </property>
+
+  <property>
+    <name>dfs.block.size</name>
+    <value>134217728</value>
+    <description>The default block size for new files.</description>
+  </property>
+
+  <property>
+    <name>dfs.http.address</name>
+    <value></value>
+<description>The name of the default file system.  Either the
+literal string "local" or a host:port for NDFS.</description>
+<final>true</final>
+</property>
+
+<property>
+<name>dfs.datanode.du.reserved</name>
+<!-- cluster variant -->
+<value></value>
+<description>Reserved space in bytes per volume. Always leave this much space free for non dfs use.
+</description>
+</property>
+
+<property>
+<name>dfs.datanode.ipc.address</name>
+<value>0.0.0.0:8010</value>
+<description>
+The datanode ipc server address and port.
+If the port is 0 then the server will start on a free port.
+</description>
+</property>
+
+<property>
+<name>dfs.blockreport.initialDelay</name>
+<value>120</value>
+<description>Delay for first block report in seconds.</description>
+</property>
+
+<property>
+<name>dfs.datanode.du.pct</name>
+<value>0.85f</value>
+<description>When calculating remaining space, only use this percentage of the real available space
+</description>
+</property>
+
+<property>
+<name>dfs.namenode.handler.count</name>
+<value>40</value>
+<description>The number of server threads for the namenode.</description>
+</property>
+
+<property>
+<name>dfs.datanode.max.xcievers</name>
+<value>4096</value>
+<description>PRIVATE CONFIG VARIABLE</description>
+</property>
+
+<!-- Permissions configuration -->
+
+<property>
+<name>dfs.umaskmode</name>
+<value>077</value>
+<description>
+The octal umask used when creating files and directories.
+</description>
+</property>
+
+<property>
+<name>dfs.web.ugi</name>
+<!-- cluster variant -->
+<value>gopher,gopher</value>
+<description>The user account used by the web interface.
+Syntax: USERNAME,GROUP1,GROUP2, ...
+</description>
+</property>
+
+<property>
+<name>dfs.permissions</name>
+<value>true</value>
+<description>
+If "true", enable permission checking in HDFS.
+If "false", permission checking is turned off,
+but all other behavior is unchanged.
+Switching from one parameter value to the other does not change the mode,
+owner or group of files or directories.
+</description>
+</property>
+
+<property>
+<name>dfs.permissions.supergroup</name>
+<value>hdfs</value>
+<description>The name of the group of super-users.</description>
+</property>
+
+<property>
+<name>dfs.namenode.handler.count</name>
+<value>100</value>
+<description>Added to grow Queue size so that more client connections are allowed</description>
+</property>
+
+<property>
+<name>ipc.server.max.response.size</name>
+<value>5242880</value>
+</property>
+<property>
+<name>dfs.block.access.token.enable</name>
+<value>true</value>
+<description>
+If "true", access tokens are used as capabilities for accessing datanodes.
+If "false", no access tokens are checked on accessing datanodes.
+</description>
+</property>
+
+<property>
+<name>dfs.namenode.kerberos.principal</name>
+<value></value>
+<description>
+Kerberos principal name for the NameNode
+</description>
+</property>
+
+<property>
+<name>dfs.secondary.namenode.kerberos.principal</name>
+<value></value>
+    <description>
+        Kerberos principal name for the secondary NameNode.
+    </description>
+  </property>
+
+
+<!--
+  This is KRB DOMAIN specific. The FQDN of the namenode has to be mentioned.
+-->
+  <property>
+    <name>dfs.namenode.kerberos.https.principal</name>
+    <value></value>
+     <description>The Kerberos principal for the host that the NameNode runs on.</description>
+
+  </property>
+
+  <property>
+    <name>dfs.secondary.namenode.kerberos.https.principal</name>
+    <value></value>
+    <description>The Kerberos principal for the hostthat the secondary NameNode runs on.</description>
+
+  </property>
+
+  <property>
+    <!-- cluster variant -->
+    <name>dfs.secondary.http.address</name>
+    <value></value>
+    <description>Address of secondary namenode web server</description>
+  </property>
+
+  <property>
+    <name>dfs.secondary.https.port</name>
+    <value>50490</value>
+    <description>The https port where secondary-namenode binds</description>
+  </property>
+
+  <property>
+    <name>dfs.web.authentication.kerberos.principal</name>
+    <value></value>
+    <description>
+      The HTTP Kerberos principal used by Hadoop-Auth in the HTTP endpoint.
+      The HTTP Kerberos principal MUST start with 'HTTP/' per Kerberos
+      HTTP SPENGO specification.
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.web.authentication.kerberos.keytab</name>
+    <value></value>
+    <description>
+      The Kerberos keytab file with the credentials for the
+      HTTP Kerberos principal used by Hadoop-Auth in the HTTP endpoint.
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.datanode.kerberos.principal</name>
+    <value></value>
+ <description>
+        The Kerberos principal that the DataNode runs as. "_HOST" is replaced by the real host name.
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.namenode.keytab.file</name>
+    <value></value>
+ <description>
+        Combined keytab file containing the namenode service and host principals.
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.secondary.namenode.keytab.file</name>
+    <value></value>
+  <description>
+        Combined keytab file containing the namenode service and host principals.
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.datanode.keytab.file</name>
+    <value></value>
+ <description>
+        The filename of the keytab file for the DataNode.
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.https.port</name>
+    <value>50470</value>
+ <description>The https port where namenode binds</description>
+
+  </property>
+
+  <property>
+    <name>dfs.https.address</name>
+    <value></value>
+  <description>The https address where namenode binds</description>
+
+  </property>
+
+  <property>
+    <name>dfs.datanode.data.dir.perm</name>
+    <value></value>
+<description>The permissions that should be there on dfs.data.dir
+directories. The datanode will not come up if the permissions are
+different on existing dfs.data.dir directories. If the directories
+don't exist, they will be created with this permission.</description>
+  </property>
+
+  <property>
+  <name>dfs.access.time.precision</name>
+  <value>0</value>
+  <description>The access time for HDFS file is precise upto this value.
+               The default value is 1 hour. Setting a value of 0 disables
+               access times for HDFS.
+  </description>
+</property>
+
+<property>
+ <name>dfs.cluster.administrators</name>
+ <value> hdfs</value>
+ <description>ACL for who all can view the default servlets in the HDFS</description>
+</property>
+
+<property>
+  <name>ipc.server.read.threadpool.size</name>
+  <value>5</value>
+  <description></description>
+</property>
+
+<property>
+  <name>dfs.datanode.failed.volumes.tolerated</name>
+  <value>0</value>
+  <description>Number of failed disks datanode would tolerate</description>
+</property>
+
+  <property>
+    <name>dfs.namenode.avoid.read.stale.datanode</name>
+    <value>true</value>
+    <description>
+      Indicate whether or not to avoid reading from stale datanodes whose
+      heartbeat messages have not been received by the namenode for more than a
+      specified time interval.
+    </description>
+  </property>
+  <property>
+    <name>dfs.namenode.avoid.write.stale.datanode</name>
+    <value>true</value>
+    <description>
+      Indicate whether or not to avoid writing to stale datanodes whose
+      heartbeat messages have not been received by the namenode for more than a
+      specified time interval.
+    </description>
+  </property>
+  <property>
+    <name>dfs.namenode.write.stale.datanode.ratio</name>
+    <value>1.0f</value>
+    <description>When the ratio of number stale datanodes to total datanodes marked is greater
+      than this ratio, stop avoiding writing to stale nodes so as to prevent causing hotspots.
+    </description>
+  </property>
+  <property>
+    <name>dfs.namenode.stale.datanode.interval</name>
+    <value>30000</value>
+    <description>Datanode is stale after not getting a heartbeat in this interval in ms</description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/metainfo.xml
new file mode 100644
index 0000000..2729261
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/metainfo.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>Apache Hadoop Distributed File System</comment>
+    <version>1.2.0.1.3.2.0</version>
+
+    <components>
+        <component>
+            <name>NAMENODE</name>
+            <category>MASTER</category>
+        </component>
+
+        <component>
+            <name>DATANODE</name>
+            <category>SLAVE</category>
+        </component>
+
+        <component>
+            <name>SECONDARY_NAMENODE</name>
+            <category>MASTER</category>
+        </component>
+
+        <component>
+            <name>HDFS_CLIENT</name>
+            <category>CLIENT</category>
+        </component>
+    </components>
+
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HIVE/configuration/global.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HIVE/configuration/global.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HIVE/configuration/global.xml
new file mode 100644
index 0000000..d9adc80
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HIVE/configuration/global.xml
@@ -0,0 +1,125 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>hivemetastore_host</name>
+    <value></value>
+    <description>Hive Metastore host.</description>
+  </property>
+  <property>
+    <name>hive_database</name>
+    <value></value>
+    <description>Hive database name.</description>
+  </property>
+  <property>
+    <name>hive_existing_mysql_database</name>
+    <value></value>
+    <description>Hive database name.</description>
+  </property>
+  <property>
+    <name>hive_existing_mysql_host</name>
+    <value></value>
+    <description></description>
+  </property>
+  <property>
+    <name>hive_existing_oracle_database</name>
+    <value></value>
+    <description>Hive database name.</description>
+  </property>
+  <property>
+    <name>hive_existing_oracle_host</name>
+    <value></value>
+    <description></description>
+  </property>
+  <property>
+    <name>hive_ambari_database</name>
+    <value>MySQL</value>
+    <description>Database type.</description>
+  </property>  
+  <property>
+    <name>hive_ambari_host</name>
+    <value></value>
+    <description>Database hostname.</description>
+  </property>
+  <property>
+    <name>hive_database_name</name>
+    <value></value>
+    <description>Database hname</description>
+  </property>    
+  <property>
+    <name>hive_metastore_user_name</name>
+    <value>hive</value>
+    <description>Database username to use to connect to the database.</description>
+  </property>    
+  <property>
+    <name>hive_metastore_user_passwd</name>
+    <value></value>
+    <description>Database password to use to connect to the database.</description>
+  </property>    
+  <property>
+    <name>hive_metastore_port</name>
+    <value>9083</value>
+    <description>Hive Metastore port.</description>
+  </property>    
+  <property>
+    <name>hive_lib</name>
+    <value>/usr/lib/hive/lib/</value>
+    <description>Hive Library.</description>
+  </property>    
+  <property>
+    <name>hive_dbroot</name>
+    <value>/usr/lib/hive/lib/</value>
+    <description>Hive DB Directory.</description>
+  </property>      
+  <property>
+    <name>hive_conf_dir</name>
+    <value>/etc/hive/conf</value>
+    <description>Hive Conf Dir.</description>
+  </property>
+  <property>
+    <name>hive_log_dir</name>
+    <value>/var/log/hive</value>
+    <description>Directory for Hive Log files.</description>
+  </property>
+  <property>
+    <name>hive_pid_dir</name>
+    <value>/var/run/hive</value>
+    <description>Hive PID Dir.</description>
+  </property>
+  <property>
+    <name>mysql_connector_url</name>
+    <value>${download_url}/mysql-connector-java-5.1.18.zip</value>
+    <description>Hive PID Dir.</description>
+  </property>
+  <property>
+    <name>hive_aux_jars_path</name>
+    <value>/usr/lib/hcatalog/share/hcatalog/hcatalog-core.jar</value>
+    <description>Hive auxiliary jar path.</description>
+  </property>
+  <property>
+    <name>hive_user</name>
+    <value>hive</value>
+    <description>Hive User.</description>
+  </property>
+  
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HIVE/configuration/hive-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HIVE/configuration/hive-site.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HIVE/configuration/hive-site.xml
new file mode 100644
index 0000000..e5c834e
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HIVE/configuration/hive-site.xml
@@ -0,0 +1,230 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+<configuration>
+  <property>
+    <name>javax.jdo.option.ConnectionURL</name>
+    <value></value>
+    <description>JDBC connect string for a JDBC metastore</description>
+  </property>
+
+  <property>
+    <name>javax.jdo.option.ConnectionDriverName</name>
+    <value>com.mysql.jdbc.Driver</value>
+    <description>Driver class name for a JDBC metastore</description>
+  </property>
+
+  <property>
+    <name>javax.jdo.option.ConnectionUserName</name>
+    <value></value>
+    <description>username to use against metastore database</description>
+  </property>
+
+  <property>
+    <name>javax.jdo.option.ConnectionPassword</name>
+    <value></value>
+    <description>password to use against metastore database</description>
+  </property>
+
+  <property>
+    <name>hive.metastore.warehouse.dir</name>
+    <value>/apps/hive/warehouse</value>
+    <description>location of default database for the warehouse</description>
+  </property>
+
+  <property>
+    <name>hive.metastore.sasl.enabled</name>
+    <value></value>
+    <description>If true, the metastore thrift interface will be secured with SASL.
+     Clients must authenticate with Kerberos.</description>
+  </property>
+
+  <property>
+    <name>hive.metastore.kerberos.keytab.file</name>
+    <value></value>
+    <description>The path to the Kerberos Keytab file containing the metastore
+     thrift server's service principal.</description>
+  </property>
+
+  <property>
+    <name>hive.metastore.kerberos.principal</name>
+    <value></value>
+    <description>The service principal for the metastore thrift server. The special
+    string _HOST will be replaced automatically with the correct host name.</description>
+  </property>
+
+  <property>
+    <name>hive.metastore.cache.pinobjtypes</name>
+    <value>Table,Database,Type,FieldSchema,Order</value>
+    <description>List of comma separated metastore object types that should be pinned in the cache</description>
+  </property>
+
+  <property>
+    <name>hive.metastore.uris</name>
+    <value></value>
+    <description>URI for client to contact metastore server</description>
+  </property>
+
+  <property>
+    <name>hive.semantic.analyzer.factory.impl</name>
+    <value>org.apache.hivealog.cli.HCatSemanticAnalyzerFactory</value>
+    <description>controls which SemanticAnalyzerFactory implemenation class is used by CLI</description>
+  </property>
+
+  <property>
+    <name>hive.metastore.client.socket.timeout</name>
+    <value>60</value>
+    <description>MetaStore Client socket timeout in seconds</description>
+  </property>
+
+  <property>
+    <name>hive.metastore.execute.setugi</name>
+    <value>true</value>
+    <description>In unsecure mode, setting this property to true will cause the metastore to execute DFS operations using the client's reported user and group permissions. Note that this property must be set on both the client and     server sides. Further note that its best effort. If client sets its to true and server sets it to false, client setting will be ignored.</description>
+  </property>
+
+  <property>
+    <name>hive.security.authorization.enabled</name>
+    <value>true</value>
+    <description>enable or disable the hive client authorization</description>
+  </property>
+
+  <property>
+    <name>hive.security.authorization.manager</name>
+    <value>org.apache.hcatalog.security.HdfsAuthorizationProvider</value>
+    <description>the hive client authorization manager class name.
+    The user defined authorization class should implement interface org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider.  </description>
+  </property>
+
+  <property>
+    <name>hive.server2.enable.doAs</name>
+    <value>true</value>
+  </property>
+
+  <property>
+    <name>fs.hdfs.impl.disable.cache</name>
+    <value>true</value>
+  </property>
+
+  <property>
+    <name>fs.file.impl.disable.cache</name>
+    <value>true</value>
+  </property>
+
+  <property>
+    <name>hive.enforce.bucketing</name>
+    <value>true</value>
+    <description>Whether bucketing is enforced. If true, while inserting into the table, bucketing is enforced.</description>
+  </property>
+
+  <property>
+    <name>hive.enforce.sorting</name>
+    <value>true</value>
+    <description>Whether sorting is enforced. If true, while inserting into the table, sorting is enforced.</description>
+  </property>
+
+  <property>
+    <name>hive.map.aggr</name>
+    <value>true</value>
+    <description>Whether to use map-side aggregation in Hive Group By queries.</description>
+  </property>
+
+  <property>
+    <name>hive.optimize.bucketmapjoin</name>
+    <value>true</value>
+  </property>
+
+  <property>
+    <name>hive.optimize.bucketmapjoin.sortedmerge</name>
+    <value>true</value>
+  </property>
+
+  <property>
+    <name>hive.mapred.reduce.tasks.speculative.execution</name>
+    <value>false</value>
+    <description>Whether speculative execution for reducers should be turned on.</description>
+  </property>
+
+  <property>
+    <name>hive.auto.convert.join</name>
+    <value>true</value>
+    <description>Whether Hive enable the optimization about converting common
+      join into mapjoin based on the input file size.</description>
+  </property>
+
+  <property>
+    <name>hive.auto.convert.sortmerge.join</name>
+    <value>true</value>
+    <description>Will the join be automatically converted to a sort-merge join, if the joined tables pass
+      the criteria for sort-merge join.
+    </description>
+  </property>
+
+  <property>
+    <name>hive.auto.convert.sortmerge.join.noconditionaltask</name>
+    <value>true</value>
+  </property>
+
+  <property>
+    <name>hive.auto.convert.join.noconditionaltask</name>
+    <value>true</value>
+    <description>Whether Hive enable the optimization about converting common join into mapjoin based on the input file
+      size. If this paramater is on, and the sum of size for n-1 of the tables/partitions for a n-way join is smaller than the
+      specified size, the join is directly converted to a mapjoin (there is no conditional task).
+    </description>
+  </property>
+
+  <property>
+    <name>hive.auto.convert.join.noconditionaltask.size</name>
+    <value>1000000000</value>
+    <description>If hive.auto.convert.join.noconditionaltask is off, this parameter does not take affect. However, if it
+      is on, and the sum of size for n-1 of the tables/partitions for a n-way join is smaller than this size, the join is directly
+      converted to a mapjoin(there is no conditional task). The default is 10MB.
+    </description>
+  </property>
+
+  <property>
+    <name>hive.optimize.reducededuplication.min.reducer</name>
+    <value>1</value>
+    <description>Reduce deduplication merges two RSs by moving key/parts/reducer-num of the child RS to parent RS.
+      That means if reducer-num of the child RS is fixed (order by or forced bucketing) and small, it can make very slow, single MR.
+      The optimization will be disabled if number of reducers is less than specified value.
+    </description>
+  </property>
+
+  <property>
+    <name>hive.optimize.mapjoin.mapreduce</name>
+    <value>true</value>
+    <description>If hive.auto.convert.join is off, this parameter does not take
+      affect. If it is on, and if there are map-join jobs followed by a map-reduce
+      job (for e.g a group by), each map-only job is merged with the following
+      map-reduce job.
+    </description>
+  </property>
+
+  <property>
+    <name>hive.mapjoin.bucket.cache.size</name>
+    <value>10000</value>
+    <description>
+      Size per reducer.The default is 1G, i.e if the input size is 10G, it
+      will use 10 reducers.
+    </description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HIVE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HIVE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HIVE/metainfo.xml
new file mode 100644
index 0000000..676c610
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HIVE/metainfo.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>Data warehouse system for ad-hoc queries &amp; analysis of large datasets and table &amp; storage management service</comment>
+    <version>0.11.0.1.3.2.0</version>
+
+    <components>        
+        <component>
+            <name>HIVE_METASTORE</name>
+            <category>MASTER</category>
+        </component>
+        <component>
+            <name>HIVE_SERVER</name>
+            <category>MASTER</category>
+        </component>
+        <component>
+            <name>MYSQL_SERVER</name>
+            <category>MASTER</category>
+        </component>
+        <component>
+            <name>HIVE_CLIENT</name>
+            <category>CLIENT</category>
+        </component>
+    </components>
+
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HUE/configuration/global.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HUE/configuration/global.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HUE/configuration/global.xml
new file mode 100644
index 0000000..c49480f
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HUE/configuration/global.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>hue_pid_dir</name>
+    <value>/var/run/hue</value>
+    <description>Hue Pid Dir.</description>
+  </property>
+  <property>
+    <name>hue_log_dir</name>
+    <value>/var/log/hue</value>
+    <description>Hue Log Dir.</description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HUE/configuration/hue-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HUE/configuration/hue-site.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HUE/configuration/hue-site.xml
new file mode 100644
index 0000000..6eb52a2
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HUE/configuration/hue-site.xml
@@ -0,0 +1,290 @@
+<?xml version="1.0"?>
+
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more# Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with# contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.# this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0# The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with# (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at# the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0#     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software# Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,# distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and# See the License for the specific language governing permissions and
+   limitations under the License.# limitations under the License.
+-->
+
+<configuration>
+  <!-- General Hue server configuration properties -->
+  <property>
+      <name>send_debug_messages</name>
+      <value>1</value>
+      <description></description>
+  </property>
+
+  <property>
+    <name>database_logging</name>
+    <value>0</value>
+    <description>To show database transactions, set database_logging to 1.
+      default, database_logging=0</description>
+  </property>
+
+  <property>
+    <name>secret_key</name>
+    <value></value>
+    <description>This is used for secure hashing in the session store.</description>
+  </property>
+
+  <property>
+    <name>http_host</name>
+    <value>0.0.0.0</value>
+    <description>Webserver listens on this address and port</description>
+  </property>
+
+  <property>
+    <name>http_port</name>
+    <value>8000</value>
+    <description>Webserver listens on this address and port</description>
+  </property>
+
+  <property>
+    <name>time_zone</name>
+    <value>America/Los_Angeles</value>
+    <description>Time zone name</description>
+  </property>
+
+  <property>
+    <name>django_debug_mode</name>
+    <value>1</value>
+    <description>Turn off debug</description>
+  </property>
+
+  <property>
+    <name>use_cherrypy_server</name>
+    <value>false</value>
+    <description>Set to true to use CherryPy as the webserver, set to false
+      to use Spawning as the webserver. Defaults to Spawning if
+      key is not specified.</description>
+  </property>
+
+  <property>
+    <name>http_500_debug_mode</name>
+    <value>1</value>
+    <description>Turn off backtrace for server error</description>
+  </property>
+
+  <property>
+    <name>server_user</name>
+    <value></value>
+    <description>Webserver runs as this user</description>
+  </property>
+
+  <property>
+    <name>server_group</name>
+    <value></value>
+    <description>Webserver runs as this user</description>
+  </property>
+
+  <property>
+    <name>backend_auth_policy</name>
+    <value>desktop.auth.backend.AllowAllBackend</value>
+    <description>Authentication backend.</description>
+  </property>
+
+  <!-- Hue Database configuration properties -->
+  <property>
+    <name>db_engine</name>
+    <value>mysql</value>
+    <description>Configuration options for specifying the Desktop Database.</description>
+  </property>
+
+  <property>
+    <name>db_host</name>
+    <value>localhost</value>
+    <description>Configuration options for specifying the Desktop Database.</description>
+  </property>
+
+  <property>
+    <name>db_port</name>
+    <value>3306</value>
+    <description>Configuration options for specifying the Desktop Database.</description>
+  </property>
+
+  <property>
+    <name>db_user</name>
+    <value>sandbox</value>
+    <description>Configuration options for specifying the Desktop Database.</description>
+  </property>
+
+  <property>
+    <name>db_password</name>
+    <value>1111</value>
+    <description>Configuration options for specifying the Desktop Database.</description>
+  </property>
+
+  <property>
+    <name>db_name</name>
+    <value>sandbox</value>
+    <description>Configuration options for specifying the Desktop Database.</description>
+  </property>
+
+  <!-- Hue Email configuration properties -->
+  <property>
+    <name>smtp_host</name>
+    <value>localhost</value>
+    <description>The SMTP server information for email notification delivery.</description>
+  </property>
+
+  <property>
+    <name>smtp_port</name>
+    <value>25</value>
+    <description>The SMTP server information for email notification delivery.</description>
+  </property>
+
+  <property>
+    <name>smtp_user</name>
+    <value></value>
+    <description>The SMTP server information for email notification delivery.</description>
+  </property>
+
+  <property>
+    <name>smtp_password</name>
+    <value>25</value>
+    <description>The SMTP server information for email notification delivery.</description>
+  </property>
+
+  <property>
+    <name>tls</name>
+    <value>no</value>
+    <description>Whether to use a TLS (secure) connection when talking to the SMTP server.</description>
+  </property>
+
+  <property>
+    <name>default_from_email</name>
+    <value>sandbox@hortonworks.com</value>
+    <description>The SMTP server information for email notification delivery.</description>
+  </property>
+
+  <!-- Hue Hadoop configuration properties -->
+  <property>
+    <name>fs_defaultfs</name>
+    <value></value>
+    <description>Enter the filesystem uri. E.g
+      .:hdfs://sandbox:8020</description>
+  </property>
+
+  <property>
+    <name>webhdfs_url</name>
+    <value></value>
+    <description>Use WebHdfs/HttpFs as the communication mechanism. To fallback to
+      using the Thrift plugin (used in Hue 1.x), this must be uncommented
+      and explicitly set to the empty value.
+      Value e.g.: http://localhost:50070/webhdfs/v1/</description>
+  </property>
+
+  <property>
+    <name>jobtracker_host</name>
+    <value></value>
+    <description>Enter the host on which you are running the Hadoop JobTracker.</description>
+  </property>
+
+  <property>
+    <name>jobtracker_port</name>
+    <value>50030</value>
+    <description>The port where the JobTracker IPC listens on.</description>
+  </property>
+
+  <property>
+    <name>hadoop_mapred_home</name>
+    <value>/usr/lib/hadoop/lib</value>
+    <description>The SMTP server information for email notification delivery.</description>
+  </property>
+
+  <property>
+    <name>resourcemanager_host</name>
+    <value></value>
+    <description>Enter the host on which you are running the ResourceManager.</description>
+  </property>
+
+  <property>
+    <name>resourcemanager_port</name>
+    <value></value>
+    <description>The port where the ResourceManager IPC listens on.</description>
+  </property>
+
+  <!-- Hue Beeswax configuration properties -->
+  <property>
+    <name>hive_home_dir</name>
+    <value></value>
+    <description>Hive home directory.</description>
+  </property>
+
+  <property>
+    <name>hive_conf_dir</name>
+    <value></value>
+    <description>Hive configuration directory, where hive-site.xml is
+      located.</description>
+  </property>
+
+  <property>
+    <name>templeton_url</name>
+    <value></value>
+    <description>WebHcat http URL</description>
+  </property>
+
+  <!-- Hue shell types configuration -->
+  <property>
+    <name>pig_nice_name</name>
+    <value></value>
+    <description>Define and configure a new shell type pig</description>
+  </property>
+
+  <property>
+    <name>pig_shell_command</name>
+    <value>/usr/bin/pig -l /dev/null</value>
+    <description>Define and configure a new shell type pig.</description>
+  </property>
+
+  <property>
+    <name>pig_java_home</name>
+    <value></value>
+    <description>Define and configure a new shell type pig.</description>
+  </property>
+
+  <property>
+    <name>hbase_nice_name</name>
+    <value>HBase Shell</value>
+    <description>Define and configure a new shell type hbase</description>
+  </property>
+
+  <property>
+    <name>hbase_shell_command</name>
+    <value>/usr/bin/hbase shell</value>
+    <description>Define and configure a new shell type hbase.</description>
+  </property>
+
+  <property>
+    <name>bash_nice_name</name>
+    <value></value>
+    <description>Define and configure a new shell type bash for testing
+      only</description>
+  </property>
+
+  <property>
+    <name>bash_shell_command</name>
+    <value>/bin/bash</value>
+    <description>Define and configure a new shell type bash for testing only
+      .</description>
+  </property>
+
+  <!-- Hue Settings for the User Admin application -->
+  <property>
+    <name>whitelist</name>
+    <value>(localhost|127\.0\.0\.1):(50030|50070|50060|50075|50111)</value>
+    <description>proxy settings</description>
+  </property>
+
+</configuration>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HUE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HUE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HUE/metainfo.xml
new file mode 100644
index 0000000..56654df
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HUE/metainfo.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>Hue is a graphical user interface to operate and develop
+      applications for Apache Hadoop.</comment>
+    <version>2.2.0.1.3.2.0</version>
+
+    <components>
+        <component>
+            <name>HUE_SERVER</name>
+            <category>MASTER</category>
+        </component>
+    </components>
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/configuration/capacity-scheduler.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/configuration/capacity-scheduler.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/configuration/capacity-scheduler.xml
new file mode 100644
index 0000000..8034d19
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/configuration/capacity-scheduler.xml
@@ -0,0 +1,195 @@
+<?xml version="1.0"?>
+
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+<!-- This is the configuration file for the resource manager in Hadoop. -->
+<!-- You can configure various scheduling parameters related to queues. -->
+<!-- The properties for a queue follow a naming convention,such as, -->
+<!-- mapred.capacity-scheduler.queue.<queue-name>.property-name. -->
+
+<configuration>
+
+  <property>
+    <name>mapred.capacity-scheduler.maximum-system-jobs</name>
+    <value>3000</value>
+    <description>Maximum number of jobs in the system which can be initialized,
+     concurrently, by the CapacityScheduler.
+    </description>    
+  </property>
+  
+  <property>
+    <name>mapred.capacity-scheduler.queue.default.capacity</name>
+    <value>100</value>
+    <description>Percentage of the number of slots in the cluster that are
+      to be available for jobs in this queue.
+    </description>    
+  </property>
+  
+  <property>
+    <name>mapred.capacity-scheduler.queue.default.maximum-capacity</name>
+    <value>-1</value>
+    <description>
+	maximum-capacity defines a limit beyond which a queue cannot use the capacity of the cluster.
+	This provides a means to limit how much excess capacity a queue can use. By default, there is no limit.
+	The maximum-capacity of a queue can only be greater than or equal to its minimum capacity.
+        Default value of -1 implies a queue can use complete capacity of the cluster.
+
+        This property could be to curtail certain jobs which are long running in nature from occupying more than a 
+        certain percentage of the cluster, which in the absence of pre-emption, could lead to capacity guarantees of 
+        other queues being affected.
+        
+        One important thing to note is that maximum-capacity is a percentage , so based on the cluster's capacity
+        the max capacity would change. So if large no of nodes or racks get added to the cluster , max Capacity in 
+        absolute terms would increase accordingly.
+    </description>    
+  </property>
+  
+  <property>
+    <name>mapred.capacity-scheduler.queue.default.supports-priority</name>
+    <value>false</value>
+    <description>If true, priorities of jobs will be taken into 
+      account in scheduling decisions.
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.capacity-scheduler.queue.default.minimum-user-limit-percent</name>
+    <value>100</value>
+    <description> Each queue enforces a limit on the percentage of resources 
+    allocated to a user at any given time, if there is competition for them. 
+    This user limit can vary between a minimum and maximum value. The former
+    depends on the number of users who have submitted jobs, and the latter is
+    set to this property value. For example, suppose the value of this 
+    property is 25. If two users have submitted jobs to a queue, no single 
+    user can use more than 50% of the queue resources. If a third user submits
+    a job, no single user can use more than 33% of the queue resources. With 4 
+    or more users, no user can use more than 25% of the queue's resources. A 
+    value of 100 implies no user limits are imposed. 
+    </description>
+  </property>
+  
+  <property>
+    <name>mapred.capacity-scheduler.queue.default.user-limit-factor</name>
+    <value>1</value>
+    <description>The multiple of the queue capacity which can be configured to 
+    allow a single user to acquire more slots. 
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.capacity-scheduler.queue.default.maximum-initialized-active-tasks</name>
+    <value>200000</value>
+    <description>The maximum number of tasks, across all jobs in the queue, 
+    which can be initialized concurrently. Once the queue's jobs exceed this 
+    limit they will be queued on disk.  
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.capacity-scheduler.queue.default.maximum-initialized-active-tasks-per-user</name>
+    <value>100000</value>
+    <description>The maximum number of tasks per-user, across all the of the 
+    user's jobs in the queue, which can be initialized concurrently. Once the 
+    user's jobs exceed this limit they will be queued on disk.  
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.capacity-scheduler.queue.default.init-accept-jobs-factor</name>
+    <value>10</value>
+    <description>The multipe of (maximum-system-jobs * queue-capacity) used to 
+    determine the number of jobs which are accepted by the scheduler.  
+    </description>
+  </property>
+
+  <!-- The default configuration settings for the capacity task scheduler -->
+  <!-- The default values would be applied to all the queues which don't have -->
+  <!-- the appropriate property for the particular queue -->
+  <property>
+    <name>mapred.capacity-scheduler.default-supports-priority</name>
+    <value>false</value>
+    <description>If true, priorities of jobs will be taken into 
+      account in scheduling decisions by default in a job queue.
+    </description>
+  </property>
+  
+  <property>
+    <name>mapred.capacity-scheduler.default-minimum-user-limit-percent</name>
+    <value>100</value>
+    <description>The percentage of the resources limited to a particular user
+      for the job queue at any given point of time by default.
+    </description>
+  </property>
+
+
+  <property>
+    <name>mapred.capacity-scheduler.default-user-limit-factor</name>
+    <value>1</value>
+    <description>The default multiple of queue-capacity which is used to 
+    determine the amount of slots a single user can consume concurrently.
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.capacity-scheduler.default-maximum-active-tasks-per-queue</name>
+    <value>200000</value>
+    <description>The default maximum number of tasks, across all jobs in the 
+    queue, which can be initialized concurrently. Once the queue's jobs exceed 
+    this limit they will be queued on disk.  
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.capacity-scheduler.default-maximum-active-tasks-per-user</name>
+    <value>100000</value>
+    <description>The default maximum number of tasks per-user, across all the of 
+    the user's jobs in the queue, which can be initialized concurrently. Once 
+    the user's jobs exceed this limit they will be queued on disk.  
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.capacity-scheduler.default-init-accept-jobs-factor</name>
+    <value>10</value>
+    <description>The default multipe of (maximum-system-jobs * queue-capacity) 
+    used to determine the number of jobs which are accepted by the scheduler.  
+    </description>
+  </property>
+
+  <!-- Capacity scheduler Job Initialization configuration parameters -->
+  <property>
+    <name>mapred.capacity-scheduler.init-poll-interval</name>
+    <value>5000</value>
+    <description>The amount of time in miliseconds which is used to poll 
+    the job queues for jobs to initialize.
+    </description>
+  </property>
+  <property>
+    <name>mapred.capacity-scheduler.init-worker-threads</name>
+    <value>5</value>
+    <description>Number of worker threads which would be used by
+    Initialization poller to initialize jobs in a set of queue.
+    If number mentioned in property is equal to number of job queues
+    then a single thread would initialize jobs in a queue. If lesser
+    then a thread would get a set of queues assigned. If the number
+    is greater then number of threads would be equal to number of 
+    job queues.
+    </description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/configuration/core-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/configuration/core-site.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/configuration/core-site.xml
new file mode 100644
index 0000000..3a2af49
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/configuration/core-site.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<configuration>
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/configuration/global.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/configuration/global.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/configuration/global.xml
new file mode 100644
index 0000000..2fc33c9
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/configuration/global.xml
@@ -0,0 +1,160 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>jobtracker_host</name>
+    <value></value>
+    <description>JobTracker Host.</description>
+  </property>
+  <property>
+    <name>tasktracker_hosts</name>
+    <value></value>
+    <description>TaskTracker hosts.</description>
+  </property>
+  <property>
+    <name>mapred_local_dir</name>
+    <value>/hadoop/mapred</value>
+    <description>MapRed Local Directories.</description>
+  </property>
+  <property>
+    <name>mapred_system_dir</name>
+    <value>/mapred/system</value>
+    <description>MapRed System Directories.</description>
+  </property>
+  <property>
+    <name>scheduler_name</name>
+    <value>org.apache.hadoop.mapred.CapacityTaskScheduler</value>
+    <description>MapRed Capacity Scheduler.</description>
+  </property>
+  <property>
+    <name>jtnode_opt_newsize</name>
+    <value>200</value>
+    <description>Mem New Size.</description>
+  </property>
+  <property>
+    <name>jtnode_opt_maxnewsize</name>
+    <value>200</value>
+    <description>Max New size.</description>
+  </property>
+  <property>
+    <name>hadoop_heapsize</name>
+    <value>1024</value>
+    <description>Hadoop maximum Java heap size</description>
+  </property>
+  <property>
+    <name>jtnode_heapsize</name>
+    <value>1024</value>
+    <description>Maximum Java heap size for JobTracker in MB (Java option -Xmx)</description>
+  </property>
+  <property>
+    <name>mapred_map_tasks_max</name>
+    <value>4</value>
+    <description>Number of slots that Map tasks that run simultaneously can occupy on a TaskTracker</description>
+  </property>
+  <property>
+    <name>mapred_red_tasks_max</name>
+    <value>2</value>
+    <description>Number of slots that Reduce tasks that run simultaneously can occupy on a TaskTracker</description>
+  </property>
+  <property>
+    <name>mapred_cluster_map_mem_mb</name>
+    <value>-1</value>
+    <description>The virtual memory size of a single Map slot in the MapReduce framework</description>
+  </property>
+  <property>
+    <name>mapred_cluster_red_mem_mb</name>
+    <value>-1</value>
+    <description>The virtual memory size of a single Reduce slot in the MapReduce framework</description>
+  </property>
+  <property>
+    <name>mapred_job_map_mem_mb</name>
+    <value>-1</value>
+    <description>Virtual memory for single Map task</description>
+  </property>
+  <property>
+    <name>mapred_child_java_opts_sz</name>
+    <value>768</value>
+    <description>Java options for the TaskTracker child processes.</description>
+  </property>
+  <property>
+    <name>io_sort_mb</name>
+    <value>200</value>
+    <description>The total amount of Map-side buffer memory to use while sorting files (Expert-only configuration).</description>
+  </property>
+  <property>
+    <name>io_sort_spill_percent</name>
+    <value>0.9</value>
+    <description>Percentage of sort buffer used for record collection (Expert-only configuration.</description>
+  </property>
+  <property>
+    <name>mapreduce_userlog_retainhours</name>
+    <value>24</value>
+    <description>The maximum time, in hours, for which the user-logs are to be retained after the job completion.</description>
+  </property>
+  <property>
+    <name>maxtasks_per_job</name>
+    <value>-1</value>
+    <description>Maximum number of tasks for a single Job</description>
+  </property>
+  <property>
+    <name>lzo_enabled</name>
+    <value>true</value>
+    <description>LZO compression enabled</description>
+  </property>
+  <property>
+    <name>snappy_enabled</name>
+    <value>true</value>
+    <description>LZO compression enabled</description>
+  </property>
+  <property>
+    <name>rca_enabled</name>
+    <value>true</value>
+    <description>Enable Job Diagnostics.</description>
+  </property>
+  <property>
+    <name>mapred_hosts_exclude</name>
+    <value></value>
+    <description>Exclude entered hosts</description>
+  </property>
+  <property>
+    <name>mapred_hosts_include</name>
+    <value></value>
+    <description>Include entered hosts</description>
+  </property>
+  <property>
+    <name>mapred_jobstatus_dir</name>
+    <value>file:////mapred/jobstatus</value>
+    <description>Job Status directory</description>
+  </property>
+  <property>
+    <name>task_controller</name>
+    <value>org.apache.hadoop.mapred.DefaultTaskController</value>
+    <description>Task Controller.</description>
+  </property>
+  <property>
+    <name>mapred_user</name>
+    <value>mapred</value>
+    <description>MapReduce User.</description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/configuration/mapred-queue-acls.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/configuration/mapred-queue-acls.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/configuration/mapred-queue-acls.xml
new file mode 100644
index 0000000..ce12380
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/configuration/mapred-queue-acls.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+<!-- mapred-queue-acls.xml -->
+<configuration>
+
+
+<!-- queue default -->
+
+  <property>
+    <name>mapred.queue.default.acl-submit-job</name>
+    <value>*</value>
+  </property>
+
+  <property>
+    <name>mapred.queue.default.acl-administer-jobs</name>
+    <value>*</value>
+  </property>
+
+  <!-- END ACLs -->
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/configuration/mapred-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/configuration/mapred-site.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/configuration/mapred-site.xml
new file mode 100644
index 0000000..df6ca71
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/configuration/mapred-site.xml
@@ -0,0 +1,537 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration xmlns:xi="http://www.w3.org/2001/XInclude">
+
+<!-- i/o properties -->
+
+  <property>
+    <name>io.sort.mb</name>
+    <value></value>
+    <description>No description</description>
+  </property>
+
+  <property>
+    <name>io.sort.record.percent</name>
+    <value>.2</value>
+    <description>No description</description>
+  </property>
+
+  <property>
+    <name>io.sort.spill.percent</name>
+    <value></value>
+    <description>No description</description>
+  </property>
+
+  <property>
+    <name>io.sort.factor</name>
+    <value>100</value>
+    <description>No description</description>
+  </property>
+
+<!-- map/reduce properties -->
+
+<property>
+  <name>mapred.tasktracker.tasks.sleeptime-before-sigkill</name>
+  <value>250</value>
+  <description>Normally, this is the amount of time before killing
+  processes, and the recommended-default is 5.000 seconds - a value of
+  5000 here.  In this case, we are using it solely to blast tasks before
+  killing them, and killing them very quickly (1/4 second) to guarantee
+  that we do not leave VMs around for later jobs.
+  </description>
+</property>
+
+  <property>
+    <name>mapred.job.tracker.handler.count</name>
+    <value>50</value>
+    <description>
+    The number of server threads for the JobTracker. This should be roughly
+    4% of the number of tasktracker nodes.
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.system.dir</name>
+    <value>/mapred/system</value>
+    <description>No description</description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>mapred.job.tracker</name>
+    <!-- cluster variant -->
+    <value></value>
+    <description>No description</description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>mapred.job.tracker.http.address</name>
+    <!-- cluster variant -->
+    <value></value>
+    <description>No description</description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <!-- cluster specific -->
+    <name>mapred.local.dir</name>
+    <value></value>
+    <description>No description</description>
+    <final>true</final>
+  </property>
+
+  <property>
+  <name>mapreduce.cluster.administrators</name>
+  <value> hadoop</value>
+  </property>
+
+  <property>
+    <name>mapred.reduce.parallel.copies</name>
+    <value>30</value>
+    <description>No description</description>
+  </property>
+
+  <property>
+    <name>mapred.tasktracker.map.tasks.maximum</name>
+    <value></value>
+    <description>No description</description>
+  </property>
+
+  <property>
+    <name>mapred.tasktracker.reduce.tasks.maximum</name>
+    <value></value>
+    <description>No description</description>
+  </property>
+
+  <property>
+    <name>tasktracker.http.threads</name>
+    <value>50</value>
+  </property>
+
+  <property>
+    <name>mapred.map.tasks.speculative.execution</name>
+    <value>false</value>
+    <description>If true, then multiple instances of some map tasks
+               may be executed in parallel.</description>
+  </property>
+
+  <property>
+    <name>mapred.reduce.tasks.speculative.execution</name>
+    <value>false</value>
+    <description>If true, then multiple instances of some reduce tasks
+               may be executed in parallel.</description>
+  </property>
+
+  <property>
+    <name>mapred.reduce.slowstart.completed.maps</name>
+    <value>0.05</value>
+  </property>
+
+  <property>
+    <name>mapred.inmem.merge.threshold</name>
+    <value>1000</value>
+    <description>The threshold, in terms of the number of files
+  for the in-memory merge process. When we accumulate threshold number of files
+  we initiate the in-memory merge and spill to disk. A value of 0 or less than
+  0 indicates we want to DON'T have any threshold and instead depend only on
+  the ramfs's memory consumption to trigger the merge.
+  </description>
+  </property>
+
+  <property>
+    <name>mapred.job.shuffle.merge.percent</name>
+    <value>0.66</value>
+    <description>The usage threshold at which an in-memory merge will be
+  initiated, expressed as a percentage of the total memory allocated to
+  storing in-memory map outputs, as defined by
+  mapred.job.shuffle.input.buffer.percent.
+  </description>
+  </property>
+
+  <property>
+    <name>mapred.job.shuffle.input.buffer.percent</name>
+    <value>0.7</value>
+    <description>The percentage of memory to be allocated from the maximum heap
+  size to storing map outputs during the shuffle.
+  </description>
+  </property>
+
+  <property>
+    <name>mapred.map.output.compression.codec</name>
+    <value>org.apache.hadoop.io.compress.SnappyCodec</value>
+    <description>If the map outputs are compressed, how should they be
+      compressed
+    </description>
+  </property>
+
+<property>
+  <name>mapred.output.compression.type</name>
+  <value>BLOCK</value>
+  <description>If the job outputs are to compressed as SequenceFiles, how should
+               they be compressed? Should be one of NONE, RECORD or BLOCK.
+  </description>
+</property>
+
+
+  <property>
+    <name>mapred.jobtracker.completeuserjobs.maximum</name>
+    <value>5</value>
+  </property>
+
+  <property>
+    <name>mapred.jobtracker.taskScheduler</name>
+    <value></value>
+  </property>
+
+  <property>
+    <name>mapred.jobtracker.restart.recover</name>
+    <value>false</value>
+    <description>"true" to enable (job) recovery upon restart,
+               "false" to start afresh
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.job.reduce.input.buffer.percent</name>
+    <value>0.0</value>
+    <description>The percentage of memory- relative to the maximum heap size- to
+  retain map outputs during the reduce. When the shuffle is concluded, any
+  remaining map outputs in memory must consume less than this threshold before
+  the reduce can begin.
+  </description>
+  </property>
+
+ <property>
+  <name>mapreduce.reduce.input.limit</name>
+  <value>10737418240</value>
+  <description>The limit on the input size of the reduce. (This value
+  is 10 Gb.)  If the estimated input size of the reduce is greater than
+  this value, job is failed. A value of -1 means that there is no limit
+  set. </description>
+</property>
+
+
+  <!-- copied from kryptonite configuration -->
+  <property>
+    <name>mapred.compress.map.output</name>
+    <value></value>
+  </property>
+
+
+  <property>
+    <name>mapred.task.timeout</name>
+    <value>600000</value>
+    <description>The number of milliseconds before a task will be
+  terminated if it neither reads an input, writes an output, nor
+  updates its status string.
+  </description>
+  </property>
+
+  <property>
+    <name>jetty.connector</name>
+    <value>org.mortbay.jetty.nio.SelectChannelConnector</value>
+    <description>No description</description>
+  </property>
+
+  <property>
+    <name>mapred.task.tracker.task-controller</name>
+    <value>org.apache.hadoop.mapred.DefaultTaskController</value>
+   <description>
+     TaskController which is used to launch and manage task execution.
+  </description>
+  </property>
+
+  <property>
+    <name>mapred.child.root.logger</name>
+    <value>INFO,TLA</value>
+  </property>
+
+  <property>
+    <name>mapred.child.java.opts</name>
+    <value></value>
+
+    <description>No description</description>
+  </property>
+
+  <property>
+    <name>mapred.cluster.map.memory.mb</name>
+    <value>1536</value>
+  </property>
+
+  <property>
+    <name>mapred.cluster.reduce.memory.mb</name>
+    <value>2048</value>
+  </property>
+
+  <property>
+    <name>mapred.job.map.memory.mb</name>
+    <value>1536</value>
+  </property>
+
+  <property>
+    <name>mapred.job.reduce.memory.mb</name>
+    <value>2048</value>
+  </property>
+
+  <property>
+    <name>mapred.cluster.max.map.memory.mb</name>
+    <value>6144</value>
+  </property>
+
+  <property>
+    <name>mapred.cluster.max.reduce.memory.mb</name>
+    <value>4096</value>
+  </property>
+
+<property>
+  <name>mapred.hosts</name>
+  <value></value>
+</property>
+
+<property>
+  <name>mapred.hosts.exclude</name>
+  <value></value>
+</property>
+
+<property>
+  <name>mapred.max.tracker.blacklists</name>
+  <value>16</value>
+  <description>
+    if node is reported blacklisted by 16 successful jobs within timeout-window, it will be graylisted
+  </description>
+</property>
+
+<property>
+  <name>mapred.healthChecker.script.path</name>
+  <value></value>
+</property>
+
+<property>
+  <name>mapred.healthChecker.interval</name>
+  <value>135000</value>
+</property>
+
+<property>
+  <name>mapred.healthChecker.script.timeout</name>
+  <value>60000</value>
+</property>
+
+<property>
+  <name>mapred.job.tracker.persist.jobstatus.active</name>
+  <value>false</value>
+  <description>Indicates if persistency of job status information is
+  active or not.
+  </description>
+</property>
+
+<property>
+  <name>mapred.job.tracker.persist.jobstatus.hours</name>
+  <value>1</value>
+  <description>The number of hours job status information is persisted in DFS.
+    The job status information will be available after it drops of the memory
+    queue and between jobtracker restarts. With a zero value the job status
+    information is not persisted at all in DFS.
+  </description>
+</property>
+
+<property>
+  <name>mapred.job.tracker.persist.jobstatus.dir</name>
+  <value></value>
+  <description>The directory where the job status information is persisted
+   in a file system to be available after it drops of the memory queue and
+   between jobtracker restarts.
+  </description>
+</property>
+
+<property>
+  <name>mapred.jobtracker.retirejob.check</name>
+  <value>10000</value>
+</property>
+
+<property>
+  <name>mapred.jobtracker.retirejob.interval</name>
+  <value>21600000</value>
+</property>
+
+<property>
+  <name>mapred.job.tracker.history.completed.location</name>
+  <value>/mapred/history/done</value>
+  <description>No description</description>
+</property>
+
+<property>
+  <name>mapred.task.maxvmem</name>
+  <value></value>
+  <final>true</final>
+   <description>No description</description>
+</property>
+
+<property>
+  <name>mapred.jobtracker.maxtasks.per.job</name>
+  <value></value>
+  <final>true</final>
+  <description>The maximum number of tasks for a single job.
+  A value of -1 indicates that there is no maximum.  </description>
+</property>
+
+<property>
+  <name>mapreduce.fileoutputcommitter.marksuccessfuljobs</name>
+  <value>false</value>
+</property>
+
+<property>
+  <name>mapred.userlog.retain.hours</name>
+  <value></value>
+</property>
+
+<property>
+  <name>mapred.job.reuse.jvm.num.tasks</name>
+  <value>1</value>
+  <description>
+    How many tasks to run per jvm. If set to -1, there is no limit
+  </description>
+  <final>true</final>
+</property>
+
+<property>
+  <name>mapreduce.jobtracker.kerberos.principal</name>
+  <value></value>
+  <description>
+      JT user name key.
+ </description>
+</property>
+
+<property>
+  <name>mapreduce.tasktracker.kerberos.principal</name>
+   <value></value>
+  <description>
+       tt user name key. "_HOST" is replaced by the host name of the task tracker.
+   </description>
+</property>
+
+
+  <property>
+    <name>hadoop.job.history.user.location</name>
+    <value>none</value>
+    <final>true</final>
+  </property>
+
+
+ <property>
+   <name>mapreduce.jobtracker.keytab.file</name>
+   <value></value>
+   <description>
+       The keytab for the jobtracker principal.
+   </description>
+
+</property>
+
+ <property>
+   <name>mapreduce.tasktracker.keytab.file</name>
+   <value></value>
+    <description>The filename of the keytab for the task tracker</description>
+ </property>
+
+ <property>
+   <name>mapred.task.tracker.http.address</name>
+   <value></value>
+   <description>Http address for task tracker.</description>
+ </property>
+
+ <property>
+   <name>mapreduce.jobtracker.staging.root.dir</name>
+   <value>/user</value>
+ <description>The Path prefix for where the staging directories should be placed. The next level is always the user's
+   name. It is a path in the default file system.</description>
+ </property>
+
+ <property>
+      <name>mapreduce.tasktracker.group</name>
+      <value>hadoop</value>
+      <description>The group that the task controller uses for accessing the task controller. The mapred user must be a member and users should *not* be members.</description>
+
+ </property>
+
+  <property>
+    <name>mapreduce.jobtracker.split.metainfo.maxsize</name>
+    <value>50000000</value>
+    <final>true</final>
+     <description>If the size of the split metainfo file is larger than this, the JobTracker will fail the job during
+    initialize.
+   </description>
+  </property>
+  <property>
+    <name>mapreduce.history.server.embedded</name>
+    <value>false</value>
+    <description>Should job history server be embedded within Job tracker
+process</description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>mapreduce.history.server.http.address</name>
+    <!-- cluster variant -->
+    <value></value>
+    <description>Http address of the history server</description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>mapreduce.jobhistory.kerberos.principal</name>
+    <!-- cluster variant -->
+  <value></value>
+    <description>Job history user name key. (must map to same user as JT
+user)</description>
+  </property>
+
+ <property>
+   <name>mapreduce.jobhistory.keytab.file</name>
+    <!-- cluster variant -->
+   <value></value>
+   <description>The keytab for the job history server principal.</description>
+ </property>
+
+<property>
+  <name>mapred.jobtracker.blacklist.fault-timeout-window</name>
+  <value>180</value>
+  <description>
+    3-hour sliding window (value is in minutes)
+  </description>
+</property>
+
+<property>
+  <name>mapred.jobtracker.blacklist.fault-bucket-width</name>
+  <value>15</value>
+  <description>
+    15-minute bucket size (value is in minutes)
+  </description>
+</property>
+
+<property>
+  <name>mapred.queue.names</name>
+  <value>default</value>
+  <description> Comma separated list of queues configured for this jobtracker.</description>
+</property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/metainfo.xml
new file mode 100644
index 0000000..757bbb5
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/metainfo.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>mapred</user>
+    <comment>Apache Hadoop Distributed Processing Framework</comment>
+    <version>1.2.0.1.3.2.0</version>
+
+    <components>
+        <component>
+            <name>JOBTRACKER</name>
+            <category>MASTER</category>
+        </component>
+
+        <component>
+            <name>TASKTRACKER</name>
+            <category>SLAVE</category>
+        </component>
+
+        <component>
+            <name>MAPREDUCE_CLIENT</name>
+            <category>CLIENT</category>
+        </component>
+    </components>
+
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/NAGIOS/configuration/global.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/NAGIOS/configuration/global.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/NAGIOS/configuration/global.xml
new file mode 100644
index 0000000..61a2b90
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/NAGIOS/configuration/global.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>nagios_user</name>
+    <value>nagios</value>
+    <description>Nagios Username.</description>
+  </property>
+  <property>
+    <name>nagios_group</name>
+    <value>nagios</value>
+    <description>Nagios Group.</description>
+  </property>
+  <property>
+    <name>nagios_web_login</name>
+    <value>nagiosadmin</value>
+    <description>Nagios web user.</description>
+  </property>
+  <property>
+    <name>nagios_web_password</name>
+    <value></value>
+    <description>Nagios Admin Password.</description>
+  </property>
+  <property>
+    <name>nagios_contact</name>
+    <value></value>
+    <description>Hadoop Admin Email.</description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/NAGIOS/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/NAGIOS/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/NAGIOS/metainfo.xml
new file mode 100644
index 0000000..76471cf
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/NAGIOS/metainfo.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>Nagios Monitoring and Alerting system</comment>
+    <version>3.5.0</version>
+
+    <components>
+        <component>
+            <name>NAGIOS_SERVER</name>
+            <category>MASTER</category>
+        </component>
+    </components>
+
+</metainfo>


[07/20] git commit: AMBARI-3579. Adding new stack based on hadoop 1.0. (mahadev)

Posted by sr...@apache.org.
 AMBARI-3579. Adding new stack based on hadoop 1.0. (mahadev)


Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/593d408a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/593d408a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/593d408a

Branch: refs/heads/branch-1.4-bk
Commit: 593d408a9e193fd4fabc690d036e0e7aa421a47c
Parents: c073d42
Author: Mahadev Konar <ma...@apache.org>
Authored: Tue Oct 22 15:32:13 2013 -0700
Committer: Mahadev Konar <ma...@apache.org>
Committed: Tue Oct 22 15:32:13 2013 -0700

----------------------------------------------------------------------
 ambari-server/set-hdp-repo-url.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/593d408a/ambari-server/set-hdp-repo-url.sh
----------------------------------------------------------------------
diff --git a/ambari-server/set-hdp-repo-url.sh b/ambari-server/set-hdp-repo-url.sh
index 1f2e084..73a6447 100644
--- a/ambari-server/set-hdp-repo-url.sh
+++ b/ambari-server/set-hdp-repo-url.sh
@@ -26,7 +26,7 @@ then
   #  Modify the VERSION variable in this file to match the new version
   #  Modify the previous version to store concrete public repo url
 
-  VERSION=2.0.6
+  VERSION=1.3.3
   C6URL="$1"
   C5URL="${C6URL/centos6/centos5}"
   S11URL="${C6URL/centos6/suse11}"


[05/20] AMBARI-3579. Adding new stack based on hadoop 1.0. (mahadev)

Posted by sr...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HIVE/configuration/global.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HIVE/configuration/global.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HIVE/configuration/global.xml
new file mode 100644
index 0000000..d9adc80
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HIVE/configuration/global.xml
@@ -0,0 +1,125 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>hivemetastore_host</name>
+    <value></value>
+    <description>Hive Metastore host.</description>
+  </property>
+  <property>
+    <name>hive_database</name>
+    <value></value>
+    <description>Hive database name.</description>
+  </property>
+  <property>
+    <name>hive_existing_mysql_database</name>
+    <value></value>
+    <description>Hive database name.</description>
+  </property>
+  <property>
+    <name>hive_existing_mysql_host</name>
+    <value></value>
+    <description></description>
+  </property>
+  <property>
+    <name>hive_existing_oracle_database</name>
+    <value></value>
+    <description>Hive database name.</description>
+  </property>
+  <property>
+    <name>hive_existing_oracle_host</name>
+    <value></value>
+    <description></description>
+  </property>
+  <property>
+    <name>hive_ambari_database</name>
+    <value>MySQL</value>
+    <description>Database type.</description>
+  </property>  
+  <property>
+    <name>hive_ambari_host</name>
+    <value></value>
+    <description>Database hostname.</description>
+  </property>
+  <property>
+    <name>hive_database_name</name>
+    <value></value>
+    <description>Database hname</description>
+  </property>    
+  <property>
+    <name>hive_metastore_user_name</name>
+    <value>hive</value>
+    <description>Database username to use to connect to the database.</description>
+  </property>    
+  <property>
+    <name>hive_metastore_user_passwd</name>
+    <value></value>
+    <description>Database password to use to connect to the database.</description>
+  </property>    
+  <property>
+    <name>hive_metastore_port</name>
+    <value>9083</value>
+    <description>Hive Metastore port.</description>
+  </property>    
+  <property>
+    <name>hive_lib</name>
+    <value>/usr/lib/hive/lib/</value>
+    <description>Hive Library.</description>
+  </property>    
+  <property>
+    <name>hive_dbroot</name>
+    <value>/usr/lib/hive/lib/</value>
+    <description>Hive DB Directory.</description>
+  </property>      
+  <property>
+    <name>hive_conf_dir</name>
+    <value>/etc/hive/conf</value>
+    <description>Hive Conf Dir.</description>
+  </property>
+  <property>
+    <name>hive_log_dir</name>
+    <value>/var/log/hive</value>
+    <description>Directory for Hive Log files.</description>
+  </property>
+  <property>
+    <name>hive_pid_dir</name>
+    <value>/var/run/hive</value>
+    <description>Hive PID Dir.</description>
+  </property>
+  <property>
+    <name>mysql_connector_url</name>
+    <value>${download_url}/mysql-connector-java-5.1.18.zip</value>
+    <description>Hive PID Dir.</description>
+  </property>
+  <property>
+    <name>hive_aux_jars_path</name>
+    <value>/usr/lib/hcatalog/share/hcatalog/hcatalog-core.jar</value>
+    <description>Hive auxiliary jar path.</description>
+  </property>
+  <property>
+    <name>hive_user</name>
+    <value>hive</value>
+    <description>Hive User.</description>
+  </property>
+  
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HIVE/configuration/hive-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HIVE/configuration/hive-site.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HIVE/configuration/hive-site.xml
new file mode 100644
index 0000000..e5c834e
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HIVE/configuration/hive-site.xml
@@ -0,0 +1,230 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+<configuration>
+  <property>
+    <name>javax.jdo.option.ConnectionURL</name>
+    <value></value>
+    <description>JDBC connect string for a JDBC metastore</description>
+  </property>
+
+  <property>
+    <name>javax.jdo.option.ConnectionDriverName</name>
+    <value>com.mysql.jdbc.Driver</value>
+    <description>Driver class name for a JDBC metastore</description>
+  </property>
+
+  <property>
+    <name>javax.jdo.option.ConnectionUserName</name>
+    <value></value>
+    <description>username to use against metastore database</description>
+  </property>
+
+  <property>
+    <name>javax.jdo.option.ConnectionPassword</name>
+    <value></value>
+    <description>password to use against metastore database</description>
+  </property>
+
+  <property>
+    <name>hive.metastore.warehouse.dir</name>
+    <value>/apps/hive/warehouse</value>
+    <description>location of default database for the warehouse</description>
+  </property>
+
+  <property>
+    <name>hive.metastore.sasl.enabled</name>
+    <value></value>
+    <description>If true, the metastore thrift interface will be secured with SASL.
+     Clients must authenticate with Kerberos.</description>
+  </property>
+
+  <property>
+    <name>hive.metastore.kerberos.keytab.file</name>
+    <value></value>
+    <description>The path to the Kerberos Keytab file containing the metastore
+     thrift server's service principal.</description>
+  </property>
+
+  <property>
+    <name>hive.metastore.kerberos.principal</name>
+    <value></value>
+    <description>The service principal for the metastore thrift server. The special
+    string _HOST will be replaced automatically with the correct host name.</description>
+  </property>
+
+  <property>
+    <name>hive.metastore.cache.pinobjtypes</name>
+    <value>Table,Database,Type,FieldSchema,Order</value>
+    <description>List of comma separated metastore object types that should be pinned in the cache</description>
+  </property>
+
+  <property>
+    <name>hive.metastore.uris</name>
+    <value></value>
+    <description>URI for client to contact metastore server</description>
+  </property>
+
+  <property>
+    <name>hive.semantic.analyzer.factory.impl</name>
+    <value>org.apache.hivealog.cli.HCatSemanticAnalyzerFactory</value>
+    <description>controls which SemanticAnalyzerFactory implemenation class is used by CLI</description>
+  </property>
+
+  <property>
+    <name>hive.metastore.client.socket.timeout</name>
+    <value>60</value>
+    <description>MetaStore Client socket timeout in seconds</description>
+  </property>
+
+  <property>
+    <name>hive.metastore.execute.setugi</name>
+    <value>true</value>
+    <description>In unsecure mode, setting this property to true will cause the metastore to execute DFS operations using the client's reported user and group permissions. Note that this property must be set on both the client and     server sides. Further note that its best effort. If client sets its to true and server sets it to false, client setting will be ignored.</description>
+  </property>
+
+  <property>
+    <name>hive.security.authorization.enabled</name>
+    <value>true</value>
+    <description>enable or disable the hive client authorization</description>
+  </property>
+
+  <property>
+    <name>hive.security.authorization.manager</name>
+    <value>org.apache.hcatalog.security.HdfsAuthorizationProvider</value>
+    <description>the hive client authorization manager class name.
+    The user defined authorization class should implement interface org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider.  </description>
+  </property>
+
+  <property>
+    <name>hive.server2.enable.doAs</name>
+    <value>true</value>
+  </property>
+
+  <property>
+    <name>fs.hdfs.impl.disable.cache</name>
+    <value>true</value>
+  </property>
+
+  <property>
+    <name>fs.file.impl.disable.cache</name>
+    <value>true</value>
+  </property>
+
+  <property>
+    <name>hive.enforce.bucketing</name>
+    <value>true</value>
+    <description>Whether bucketing is enforced. If true, while inserting into the table, bucketing is enforced.</description>
+  </property>
+
+  <property>
+    <name>hive.enforce.sorting</name>
+    <value>true</value>
+    <description>Whether sorting is enforced. If true, while inserting into the table, sorting is enforced.</description>
+  </property>
+
+  <property>
+    <name>hive.map.aggr</name>
+    <value>true</value>
+    <description>Whether to use map-side aggregation in Hive Group By queries.</description>
+  </property>
+
+  <property>
+    <name>hive.optimize.bucketmapjoin</name>
+    <value>true</value>
+  </property>
+
+  <property>
+    <name>hive.optimize.bucketmapjoin.sortedmerge</name>
+    <value>true</value>
+  </property>
+
+  <property>
+    <name>hive.mapred.reduce.tasks.speculative.execution</name>
+    <value>false</value>
+    <description>Whether speculative execution for reducers should be turned on.</description>
+  </property>
+
+  <property>
+    <name>hive.auto.convert.join</name>
+    <value>true</value>
+    <description>Whether Hive enable the optimization about converting common
+      join into mapjoin based on the input file size.</description>
+  </property>
+
+  <property>
+    <name>hive.auto.convert.sortmerge.join</name>
+    <value>true</value>
+    <description>Will the join be automatically converted to a sort-merge join, if the joined tables pass
+      the criteria for sort-merge join.
+    </description>
+  </property>
+
+  <property>
+    <name>hive.auto.convert.sortmerge.join.noconditionaltask</name>
+    <value>true</value>
+  </property>
+
+  <property>
+    <name>hive.auto.convert.join.noconditionaltask</name>
+    <value>true</value>
+    <description>Whether Hive enable the optimization about converting common join into mapjoin based on the input file
+      size. If this paramater is on, and the sum of size for n-1 of the tables/partitions for a n-way join is smaller than the
+      specified size, the join is directly converted to a mapjoin (there is no conditional task).
+    </description>
+  </property>
+
+  <property>
+    <name>hive.auto.convert.join.noconditionaltask.size</name>
+    <value>1000000000</value>
+    <description>If hive.auto.convert.join.noconditionaltask is off, this parameter does not take affect. However, if it
+      is on, and the sum of size for n-1 of the tables/partitions for a n-way join is smaller than this size, the join is directly
+      converted to a mapjoin(there is no conditional task). The default is 10MB.
+    </description>
+  </property>
+
+  <property>
+    <name>hive.optimize.reducededuplication.min.reducer</name>
+    <value>1</value>
+    <description>Reduce deduplication merges two RSs by moving key/parts/reducer-num of the child RS to parent RS.
+      That means if reducer-num of the child RS is fixed (order by or forced bucketing) and small, it can make very slow, single MR.
+      The optimization will be disabled if number of reducers is less than specified value.
+    </description>
+  </property>
+
+  <property>
+    <name>hive.optimize.mapjoin.mapreduce</name>
+    <value>true</value>
+    <description>If hive.auto.convert.join is off, this parameter does not take
+      affect. If it is on, and if there are map-join jobs followed by a map-reduce
+      job (for e.g a group by), each map-only job is merged with the following
+      map-reduce job.
+    </description>
+  </property>
+
+  <property>
+    <name>hive.mapjoin.bucket.cache.size</name>
+    <value>10000</value>
+    <description>
+      Size per reducer.The default is 1G, i.e if the input size is 10G, it
+      will use 10 reducers.
+    </description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HIVE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HIVE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HIVE/metainfo.xml
new file mode 100644
index 0000000..676c610
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HIVE/metainfo.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>Data warehouse system for ad-hoc queries &amp; analysis of large datasets and table &amp; storage management service</comment>
+    <version>0.11.0.1.3.2.0</version>
+
+    <components>        
+        <component>
+            <name>HIVE_METASTORE</name>
+            <category>MASTER</category>
+        </component>
+        <component>
+            <name>HIVE_SERVER</name>
+            <category>MASTER</category>
+        </component>
+        <component>
+            <name>MYSQL_SERVER</name>
+            <category>MASTER</category>
+        </component>
+        <component>
+            <name>HIVE_CLIENT</name>
+            <category>CLIENT</category>
+        </component>
+    </components>
+
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HUE/configuration/global.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HUE/configuration/global.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HUE/configuration/global.xml
new file mode 100644
index 0000000..c49480f
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HUE/configuration/global.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>hue_pid_dir</name>
+    <value>/var/run/hue</value>
+    <description>Hue Pid Dir.</description>
+  </property>
+  <property>
+    <name>hue_log_dir</name>
+    <value>/var/log/hue</value>
+    <description>Hue Log Dir.</description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HUE/configuration/hue-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HUE/configuration/hue-site.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HUE/configuration/hue-site.xml
new file mode 100644
index 0000000..6eb52a2
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HUE/configuration/hue-site.xml
@@ -0,0 +1,290 @@
+<?xml version="1.0"?>
+
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more# Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with# contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.# this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0# The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with# (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at# the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0#     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software# Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,# distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and# See the License for the specific language governing permissions and
+   limitations under the License.# limitations under the License.
+-->
+
+<configuration>
+  <!-- General Hue server configuration properties -->
+  <property>
+      <name>send_debug_messages</name>
+      <value>1</value>
+      <description></description>
+  </property>
+
+  <property>
+    <name>database_logging</name>
+    <value>0</value>
+    <description>To show database transactions, set database_logging to 1.
+      default, database_logging=0</description>
+  </property>
+
+  <property>
+    <name>secret_key</name>
+    <value></value>
+    <description>This is used for secure hashing in the session store.</description>
+  </property>
+
+  <property>
+    <name>http_host</name>
+    <value>0.0.0.0</value>
+    <description>Webserver listens on this address and port</description>
+  </property>
+
+  <property>
+    <name>http_port</name>
+    <value>8000</value>
+    <description>Webserver listens on this address and port</description>
+  </property>
+
+  <property>
+    <name>time_zone</name>
+    <value>America/Los_Angeles</value>
+    <description>Time zone name</description>
+  </property>
+
+  <property>
+    <name>django_debug_mode</name>
+    <value>1</value>
+    <description>Turn off debug</description>
+  </property>
+
+  <property>
+    <name>use_cherrypy_server</name>
+    <value>false</value>
+    <description>Set to true to use CherryPy as the webserver, set to false
+      to use Spawning as the webserver. Defaults to Spawning if
+      key is not specified.</description>
+  </property>
+
+  <property>
+    <name>http_500_debug_mode</name>
+    <value>1</value>
+    <description>Turn off backtrace for server error</description>
+  </property>
+
+  <property>
+    <name>server_user</name>
+    <value></value>
+    <description>Webserver runs as this user</description>
+  </property>
+
+  <property>
+    <name>server_group</name>
+    <value></value>
+    <description>Webserver runs as this user</description>
+  </property>
+
+  <property>
+    <name>backend_auth_policy</name>
+    <value>desktop.auth.backend.AllowAllBackend</value>
+    <description>Authentication backend.</description>
+  </property>
+
+  <!-- Hue Database configuration properties -->
+  <property>
+    <name>db_engine</name>
+    <value>mysql</value>
+    <description>Configuration options for specifying the Desktop Database.</description>
+  </property>
+
+  <property>
+    <name>db_host</name>
+    <value>localhost</value>
+    <description>Configuration options for specifying the Desktop Database.</description>
+  </property>
+
+  <property>
+    <name>db_port</name>
+    <value>3306</value>
+    <description>Configuration options for specifying the Desktop Database.</description>
+  </property>
+
+  <property>
+    <name>db_user</name>
+    <value>sandbox</value>
+    <description>Configuration options for specifying the Desktop Database.</description>
+  </property>
+
+  <property>
+    <name>db_password</name>
+    <value>1111</value>
+    <description>Configuration options for specifying the Desktop Database.</description>
+  </property>
+
+  <property>
+    <name>db_name</name>
+    <value>sandbox</value>
+    <description>Configuration options for specifying the Desktop Database.</description>
+  </property>
+
+  <!-- Hue Email configuration properties -->
+  <property>
+    <name>smtp_host</name>
+    <value>localhost</value>
+    <description>The SMTP server information for email notification delivery.</description>
+  </property>
+
+  <property>
+    <name>smtp_port</name>
+    <value>25</value>
+    <description>The SMTP server information for email notification delivery.</description>
+  </property>
+
+  <property>
+    <name>smtp_user</name>
+    <value></value>
+    <description>The SMTP server information for email notification delivery.</description>
+  </property>
+
+  <property>
+    <name>smtp_password</name>
+    <value>25</value>
+    <description>The SMTP server information for email notification delivery.</description>
+  </property>
+
+  <property>
+    <name>tls</name>
+    <value>no</value>
+    <description>Whether to use a TLS (secure) connection when talking to the SMTP server.</description>
+  </property>
+
+  <property>
+    <name>default_from_email</name>
+    <value>sandbox@hortonworks.com</value>
+    <description>The SMTP server information for email notification delivery.</description>
+  </property>
+
+  <!-- Hue Hadoop configuration properties -->
+  <property>
+    <name>fs_defaultfs</name>
+    <value></value>
+    <description>Enter the filesystem uri. E.g
+      .:hdfs://sandbox:8020</description>
+  </property>
+
+  <property>
+    <name>webhdfs_url</name>
+    <value></value>
+    <description>Use WebHdfs/HttpFs as the communication mechanism. To fallback to
+      using the Thrift plugin (used in Hue 1.x), this must be uncommented
+      and explicitly set to the empty value.
+      Value e.g.: http://localhost:50070/webhdfs/v1/</description>
+  </property>
+
+  <property>
+    <name>jobtracker_host</name>
+    <value></value>
+    <description>Enter the host on which you are running the Hadoop JobTracker.</description>
+  </property>
+
+  <property>
+    <name>jobtracker_port</name>
+    <value>50030</value>
+    <description>The port where the JobTracker IPC listens on.</description>
+  </property>
+
+  <property>
+    <name>hadoop_mapred_home</name>
+    <value>/usr/lib/hadoop/lib</value>
+    <description>The SMTP server information for email notification delivery.</description>
+  </property>
+
+  <property>
+    <name>resourcemanager_host</name>
+    <value></value>
+    <description>Enter the host on which you are running the ResourceManager.</description>
+  </property>
+
+  <property>
+    <name>resourcemanager_port</name>
+    <value></value>
+    <description>The port where the ResourceManager IPC listens on.</description>
+  </property>
+
+  <!-- Hue Beeswax configuration properties -->
+  <property>
+    <name>hive_home_dir</name>
+    <value></value>
+    <description>Hive home directory.</description>
+  </property>
+
+  <property>
+    <name>hive_conf_dir</name>
+    <value></value>
+    <description>Hive configuration directory, where hive-site.xml is
+      located.</description>
+  </property>
+
+  <property>
+    <name>templeton_url</name>
+    <value></value>
+    <description>WebHcat http URL</description>
+  </property>
+
+  <!-- Hue shell types configuration -->
+  <property>
+    <name>pig_nice_name</name>
+    <value></value>
+    <description>Define and configure a new shell type pig</description>
+  </property>
+
+  <property>
+    <name>pig_shell_command</name>
+    <value>/usr/bin/pig -l /dev/null</value>
+    <description>Define and configure a new shell type pig.</description>
+  </property>
+
+  <property>
+    <name>pig_java_home</name>
+    <value></value>
+    <description>Define and configure a new shell type pig.</description>
+  </property>
+
+  <property>
+    <name>hbase_nice_name</name>
+    <value>HBase Shell</value>
+    <description>Define and configure a new shell type hbase</description>
+  </property>
+
+  <property>
+    <name>hbase_shell_command</name>
+    <value>/usr/bin/hbase shell</value>
+    <description>Define and configure a new shell type hbase.</description>
+  </property>
+
+  <property>
+    <name>bash_nice_name</name>
+    <value></value>
+    <description>Define and configure a new shell type bash for testing
+      only</description>
+  </property>
+
+  <property>
+    <name>bash_shell_command</name>
+    <value>/bin/bash</value>
+    <description>Define and configure a new shell type bash for testing only
+      .</description>
+  </property>
+
+  <!-- Hue Settings for the User Admin application -->
+  <property>
+    <name>whitelist</name>
+    <value>(localhost|127\.0\.0\.1):(50030|50070|50060|50075|50111)</value>
+    <description>proxy settings</description>
+  </property>
+
+</configuration>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HUE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HUE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HUE/metainfo.xml
new file mode 100644
index 0000000..56654df
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HUE/metainfo.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>Hue is a graphical user interface to operate and develop
+      applications for Apache Hadoop.</comment>
+    <version>2.2.0.1.3.2.0</version>
+
+    <components>
+        <component>
+            <name>HUE_SERVER</name>
+            <category>MASTER</category>
+        </component>
+    </components>
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/capacity-scheduler.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/capacity-scheduler.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/capacity-scheduler.xml
new file mode 100644
index 0000000..8034d19
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/capacity-scheduler.xml
@@ -0,0 +1,195 @@
+<?xml version="1.0"?>
+
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+<!-- This is the configuration file for the resource manager in Hadoop. -->
+<!-- You can configure various scheduling parameters related to queues. -->
+<!-- The properties for a queue follow a naming convention,such as, -->
+<!-- mapred.capacity-scheduler.queue.<queue-name>.property-name. -->
+
+<configuration>
+
+  <property>
+    <name>mapred.capacity-scheduler.maximum-system-jobs</name>
+    <value>3000</value>
+    <description>Maximum number of jobs in the system which can be initialized,
+     concurrently, by the CapacityScheduler.
+    </description>    
+  </property>
+  
+  <property>
+    <name>mapred.capacity-scheduler.queue.default.capacity</name>
+    <value>100</value>
+    <description>Percentage of the number of slots in the cluster that are
+      to be available for jobs in this queue.
+    </description>    
+  </property>
+  
+  <property>
+    <name>mapred.capacity-scheduler.queue.default.maximum-capacity</name>
+    <value>-1</value>
+    <description>
+	maximum-capacity defines a limit beyond which a queue cannot use the capacity of the cluster.
+	This provides a means to limit how much excess capacity a queue can use. By default, there is no limit.
+	The maximum-capacity of a queue can only be greater than or equal to its minimum capacity.
+        Default value of -1 implies a queue can use complete capacity of the cluster.
+
+        This property could be to curtail certain jobs which are long running in nature from occupying more than a 
+        certain percentage of the cluster, which in the absence of pre-emption, could lead to capacity guarantees of 
+        other queues being affected.
+        
+        One important thing to note is that maximum-capacity is a percentage , so based on the cluster's capacity
+        the max capacity would change. So if large no of nodes or racks get added to the cluster , max Capacity in 
+        absolute terms would increase accordingly.
+    </description>    
+  </property>
+  
+  <property>
+    <name>mapred.capacity-scheduler.queue.default.supports-priority</name>
+    <value>false</value>
+    <description>If true, priorities of jobs will be taken into 
+      account in scheduling decisions.
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.capacity-scheduler.queue.default.minimum-user-limit-percent</name>
+    <value>100</value>
+    <description> Each queue enforces a limit on the percentage of resources 
+    allocated to a user at any given time, if there is competition for them. 
+    This user limit can vary between a minimum and maximum value. The former
+    depends on the number of users who have submitted jobs, and the latter is
+    set to this property value. For example, suppose the value of this 
+    property is 25. If two users have submitted jobs to a queue, no single 
+    user can use more than 50% of the queue resources. If a third user submits
+    a job, no single user can use more than 33% of the queue resources. With 4 
+    or more users, no user can use more than 25% of the queue's resources. A 
+    value of 100 implies no user limits are imposed. 
+    </description>
+  </property>
+  
+  <property>
+    <name>mapred.capacity-scheduler.queue.default.user-limit-factor</name>
+    <value>1</value>
+    <description>The multiple of the queue capacity which can be configured to 
+    allow a single user to acquire more slots. 
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.capacity-scheduler.queue.default.maximum-initialized-active-tasks</name>
+    <value>200000</value>
+    <description>The maximum number of tasks, across all jobs in the queue, 
+    which can be initialized concurrently. Once the queue's jobs exceed this 
+    limit they will be queued on disk.  
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.capacity-scheduler.queue.default.maximum-initialized-active-tasks-per-user</name>
+    <value>100000</value>
+    <description>The maximum number of tasks per-user, across all the of the 
+    user's jobs in the queue, which can be initialized concurrently. Once the 
+    user's jobs exceed this limit they will be queued on disk.  
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.capacity-scheduler.queue.default.init-accept-jobs-factor</name>
+    <value>10</value>
+    <description>The multipe of (maximum-system-jobs * queue-capacity) used to 
+    determine the number of jobs which are accepted by the scheduler.  
+    </description>
+  </property>
+
+  <!-- The default configuration settings for the capacity task scheduler -->
+  <!-- The default values would be applied to all the queues which don't have -->
+  <!-- the appropriate property for the particular queue -->
+  <property>
+    <name>mapred.capacity-scheduler.default-supports-priority</name>
+    <value>false</value>
+    <description>If true, priorities of jobs will be taken into 
+      account in scheduling decisions by default in a job queue.
+    </description>
+  </property>
+  
+  <property>
+    <name>mapred.capacity-scheduler.default-minimum-user-limit-percent</name>
+    <value>100</value>
+    <description>The percentage of the resources limited to a particular user
+      for the job queue at any given point of time by default.
+    </description>
+  </property>
+
+
+  <property>
+    <name>mapred.capacity-scheduler.default-user-limit-factor</name>
+    <value>1</value>
+    <description>The default multiple of queue-capacity which is used to 
+    determine the amount of slots a single user can consume concurrently.
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.capacity-scheduler.default-maximum-active-tasks-per-queue</name>
+    <value>200000</value>
+    <description>The default maximum number of tasks, across all jobs in the 
+    queue, which can be initialized concurrently. Once the queue's jobs exceed 
+    this limit they will be queued on disk.  
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.capacity-scheduler.default-maximum-active-tasks-per-user</name>
+    <value>100000</value>
+    <description>The default maximum number of tasks per-user, across all the of 
+    the user's jobs in the queue, which can be initialized concurrently. Once 
+    the user's jobs exceed this limit they will be queued on disk.  
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.capacity-scheduler.default-init-accept-jobs-factor</name>
+    <value>10</value>
+    <description>The default multipe of (maximum-system-jobs * queue-capacity) 
+    used to determine the number of jobs which are accepted by the scheduler.  
+    </description>
+  </property>
+
+  <!-- Capacity scheduler Job Initialization configuration parameters -->
+  <property>
+    <name>mapred.capacity-scheduler.init-poll-interval</name>
+    <value>5000</value>
+    <description>The amount of time in miliseconds which is used to poll 
+    the job queues for jobs to initialize.
+    </description>
+  </property>
+  <property>
+    <name>mapred.capacity-scheduler.init-worker-threads</name>
+    <value>5</value>
+    <description>Number of worker threads which would be used by
+    Initialization poller to initialize jobs in a set of queue.
+    If number mentioned in property is equal to number of job queues
+    then a single thread would initialize jobs in a queue. If lesser
+    then a thread would get a set of queues assigned. If the number
+    is greater then number of threads would be equal to number of 
+    job queues.
+    </description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/core-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/core-site.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/core-site.xml
new file mode 100644
index 0000000..3a2af49
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/core-site.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<configuration>
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/global.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/global.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/global.xml
new file mode 100644
index 0000000..2fc33c9
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/global.xml
@@ -0,0 +1,160 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>jobtracker_host</name>
+    <value></value>
+    <description>JobTracker Host.</description>
+  </property>
+  <property>
+    <name>tasktracker_hosts</name>
+    <value></value>
+    <description>TaskTracker hosts.</description>
+  </property>
+  <property>
+    <name>mapred_local_dir</name>
+    <value>/hadoop/mapred</value>
+    <description>MapRed Local Directories.</description>
+  </property>
+  <property>
+    <name>mapred_system_dir</name>
+    <value>/mapred/system</value>
+    <description>MapRed System Directories.</description>
+  </property>
+  <property>
+    <name>scheduler_name</name>
+    <value>org.apache.hadoop.mapred.CapacityTaskScheduler</value>
+    <description>MapRed Capacity Scheduler.</description>
+  </property>
+  <property>
+    <name>jtnode_opt_newsize</name>
+    <value>200</value>
+    <description>Mem New Size.</description>
+  </property>
+  <property>
+    <name>jtnode_opt_maxnewsize</name>
+    <value>200</value>
+    <description>Max New size.</description>
+  </property>
+  <property>
+    <name>hadoop_heapsize</name>
+    <value>1024</value>
+    <description>Hadoop maximum Java heap size</description>
+  </property>
+  <property>
+    <name>jtnode_heapsize</name>
+    <value>1024</value>
+    <description>Maximum Java heap size for JobTracker in MB (Java option -Xmx)</description>
+  </property>
+  <property>
+    <name>mapred_map_tasks_max</name>
+    <value>4</value>
+    <description>Number of slots that Map tasks that run simultaneously can occupy on a TaskTracker</description>
+  </property>
+  <property>
+    <name>mapred_red_tasks_max</name>
+    <value>2</value>
+    <description>Number of slots that Reduce tasks that run simultaneously can occupy on a TaskTracker</description>
+  </property>
+  <property>
+    <name>mapred_cluster_map_mem_mb</name>
+    <value>-1</value>
+    <description>The virtual memory size of a single Map slot in the MapReduce framework</description>
+  </property>
+  <property>
+    <name>mapred_cluster_red_mem_mb</name>
+    <value>-1</value>
+    <description>The virtual memory size of a single Reduce slot in the MapReduce framework</description>
+  </property>
+  <property>
+    <name>mapred_job_map_mem_mb</name>
+    <value>-1</value>
+    <description>Virtual memory for single Map task</description>
+  </property>
+  <property>
+    <name>mapred_child_java_opts_sz</name>
+    <value>768</value>
+    <description>Java options for the TaskTracker child processes.</description>
+  </property>
+  <property>
+    <name>io_sort_mb</name>
+    <value>200</value>
+    <description>The total amount of Map-side buffer memory to use while sorting files (Expert-only configuration).</description>
+  </property>
+  <property>
+    <name>io_sort_spill_percent</name>
+    <value>0.9</value>
+    <description>Percentage of sort buffer used for record collection (Expert-only configuration.</description>
+  </property>
+  <property>
+    <name>mapreduce_userlog_retainhours</name>
+    <value>24</value>
+    <description>The maximum time, in hours, for which the user-logs are to be retained after the job completion.</description>
+  </property>
+  <property>
+    <name>maxtasks_per_job</name>
+    <value>-1</value>
+    <description>Maximum number of tasks for a single Job</description>
+  </property>
+  <property>
+    <name>lzo_enabled</name>
+    <value>true</value>
+    <description>LZO compression enabled</description>
+  </property>
+  <property>
+    <name>snappy_enabled</name>
+    <value>true</value>
+    <description>LZO compression enabled</description>
+  </property>
+  <property>
+    <name>rca_enabled</name>
+    <value>true</value>
+    <description>Enable Job Diagnostics.</description>
+  </property>
+  <property>
+    <name>mapred_hosts_exclude</name>
+    <value></value>
+    <description>Exclude entered hosts</description>
+  </property>
+  <property>
+    <name>mapred_hosts_include</name>
+    <value></value>
+    <description>Include entered hosts</description>
+  </property>
+  <property>
+    <name>mapred_jobstatus_dir</name>
+    <value>file:////mapred/jobstatus</value>
+    <description>Job Status directory</description>
+  </property>
+  <property>
+    <name>task_controller</name>
+    <value>org.apache.hadoop.mapred.DefaultTaskController</value>
+    <description>Task Controller.</description>
+  </property>
+  <property>
+    <name>mapred_user</name>
+    <value>mapred</value>
+    <description>MapReduce User.</description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/mapred-queue-acls.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/mapred-queue-acls.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/mapred-queue-acls.xml
new file mode 100644
index 0000000..ce12380
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/mapred-queue-acls.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+<!-- mapred-queue-acls.xml -->
+<configuration>
+
+
+<!-- queue default -->
+
+  <property>
+    <name>mapred.queue.default.acl-submit-job</name>
+    <value>*</value>
+  </property>
+
+  <property>
+    <name>mapred.queue.default.acl-administer-jobs</name>
+    <value>*</value>
+  </property>
+
+  <!-- END ACLs -->
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/mapred-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/mapred-site.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/mapred-site.xml
new file mode 100644
index 0000000..df6ca71
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/configuration/mapred-site.xml
@@ -0,0 +1,537 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration xmlns:xi="http://www.w3.org/2001/XInclude">
+
+<!-- i/o properties -->
+
+  <property>
+    <name>io.sort.mb</name>
+    <value></value>
+    <description>No description</description>
+  </property>
+
+  <property>
+    <name>io.sort.record.percent</name>
+    <value>.2</value>
+    <description>No description</description>
+  </property>
+
+  <property>
+    <name>io.sort.spill.percent</name>
+    <value></value>
+    <description>No description</description>
+  </property>
+
+  <property>
+    <name>io.sort.factor</name>
+    <value>100</value>
+    <description>No description</description>
+  </property>
+
+<!-- map/reduce properties -->
+
+<property>
+  <name>mapred.tasktracker.tasks.sleeptime-before-sigkill</name>
+  <value>250</value>
+  <description>Normally, this is the amount of time before killing
+  processes, and the recommended-default is 5.000 seconds - a value of
+  5000 here.  In this case, we are using it solely to blast tasks before
+  killing them, and killing them very quickly (1/4 second) to guarantee
+  that we do not leave VMs around for later jobs.
+  </description>
+</property>
+
+  <property>
+    <name>mapred.job.tracker.handler.count</name>
+    <value>50</value>
+    <description>
+    The number of server threads for the JobTracker. This should be roughly
+    4% of the number of tasktracker nodes.
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.system.dir</name>
+    <value>/mapred/system</value>
+    <description>No description</description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>mapred.job.tracker</name>
+    <!-- cluster variant -->
+    <value></value>
+    <description>No description</description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>mapred.job.tracker.http.address</name>
+    <!-- cluster variant -->
+    <value></value>
+    <description>No description</description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <!-- cluster specific -->
+    <name>mapred.local.dir</name>
+    <value></value>
+    <description>No description</description>
+    <final>true</final>
+  </property>
+
+  <property>
+  <name>mapreduce.cluster.administrators</name>
+  <value> hadoop</value>
+  </property>
+
+  <property>
+    <name>mapred.reduce.parallel.copies</name>
+    <value>30</value>
+    <description>No description</description>
+  </property>
+
+  <property>
+    <name>mapred.tasktracker.map.tasks.maximum</name>
+    <value></value>
+    <description>No description</description>
+  </property>
+
+  <property>
+    <name>mapred.tasktracker.reduce.tasks.maximum</name>
+    <value></value>
+    <description>No description</description>
+  </property>
+
+  <property>
+    <name>tasktracker.http.threads</name>
+    <value>50</value>
+  </property>
+
+  <property>
+    <name>mapred.map.tasks.speculative.execution</name>
+    <value>false</value>
+    <description>If true, then multiple instances of some map tasks
+               may be executed in parallel.</description>
+  </property>
+
+  <property>
+    <name>mapred.reduce.tasks.speculative.execution</name>
+    <value>false</value>
+    <description>If true, then multiple instances of some reduce tasks
+               may be executed in parallel.</description>
+  </property>
+
+  <property>
+    <name>mapred.reduce.slowstart.completed.maps</name>
+    <value>0.05</value>
+  </property>
+
+  <property>
+    <name>mapred.inmem.merge.threshold</name>
+    <value>1000</value>
+    <description>The threshold, in terms of the number of files
+  for the in-memory merge process. When we accumulate threshold number of files
+  we initiate the in-memory merge and spill to disk. A value of 0 or less than
+  0 indicates we want to DON'T have any threshold and instead depend only on
+  the ramfs's memory consumption to trigger the merge.
+  </description>
+  </property>
+
+  <property>
+    <name>mapred.job.shuffle.merge.percent</name>
+    <value>0.66</value>
+    <description>The usage threshold at which an in-memory merge will be
+  initiated, expressed as a percentage of the total memory allocated to
+  storing in-memory map outputs, as defined by
+  mapred.job.shuffle.input.buffer.percent.
+  </description>
+  </property>
+
+  <property>
+    <name>mapred.job.shuffle.input.buffer.percent</name>
+    <value>0.7</value>
+    <description>The percentage of memory to be allocated from the maximum heap
+  size to storing map outputs during the shuffle.
+  </description>
+  </property>
+
+  <property>
+    <name>mapred.map.output.compression.codec</name>
+    <value>org.apache.hadoop.io.compress.SnappyCodec</value>
+    <description>If the map outputs are compressed, how should they be
+      compressed
+    </description>
+  </property>
+
+<property>
+  <name>mapred.output.compression.type</name>
+  <value>BLOCK</value>
+  <description>If the job outputs are to compressed as SequenceFiles, how should
+               they be compressed? Should be one of NONE, RECORD or BLOCK.
+  </description>
+</property>
+
+
+  <property>
+    <name>mapred.jobtracker.completeuserjobs.maximum</name>
+    <value>5</value>
+  </property>
+
+  <property>
+    <name>mapred.jobtracker.taskScheduler</name>
+    <value></value>
+  </property>
+
+  <property>
+    <name>mapred.jobtracker.restart.recover</name>
+    <value>false</value>
+    <description>"true" to enable (job) recovery upon restart,
+               "false" to start afresh
+    </description>
+  </property>
+
+  <property>
+    <name>mapred.job.reduce.input.buffer.percent</name>
+    <value>0.0</value>
+    <description>The percentage of memory- relative to the maximum heap size- to
+  retain map outputs during the reduce. When the shuffle is concluded, any
+  remaining map outputs in memory must consume less than this threshold before
+  the reduce can begin.
+  </description>
+  </property>
+
+ <property>
+  <name>mapreduce.reduce.input.limit</name>
+  <value>10737418240</value>
+  <description>The limit on the input size of the reduce. (This value
+  is 10 Gb.)  If the estimated input size of the reduce is greater than
+  this value, job is failed. A value of -1 means that there is no limit
+  set. </description>
+</property>
+
+
+  <!-- copied from kryptonite configuration -->
+  <property>
+    <name>mapred.compress.map.output</name>
+    <value></value>
+  </property>
+
+
+  <property>
+    <name>mapred.task.timeout</name>
+    <value>600000</value>
+    <description>The number of milliseconds before a task will be
+  terminated if it neither reads an input, writes an output, nor
+  updates its status string.
+  </description>
+  </property>
+
+  <property>
+    <name>jetty.connector</name>
+    <value>org.mortbay.jetty.nio.SelectChannelConnector</value>
+    <description>No description</description>
+  </property>
+
+  <property>
+    <name>mapred.task.tracker.task-controller</name>
+    <value>org.apache.hadoop.mapred.DefaultTaskController</value>
+   <description>
+     TaskController which is used to launch and manage task execution.
+  </description>
+  </property>
+
+  <property>
+    <name>mapred.child.root.logger</name>
+    <value>INFO,TLA</value>
+  </property>
+
+  <property>
+    <name>mapred.child.java.opts</name>
+    <value></value>
+
+    <description>No description</description>
+  </property>
+
+  <property>
+    <name>mapred.cluster.map.memory.mb</name>
+    <value>1536</value>
+  </property>
+
+  <property>
+    <name>mapred.cluster.reduce.memory.mb</name>
+    <value>2048</value>
+  </property>
+
+  <property>
+    <name>mapred.job.map.memory.mb</name>
+    <value>1536</value>
+  </property>
+
+  <property>
+    <name>mapred.job.reduce.memory.mb</name>
+    <value>2048</value>
+  </property>
+
+  <property>
+    <name>mapred.cluster.max.map.memory.mb</name>
+    <value>6144</value>
+  </property>
+
+  <property>
+    <name>mapred.cluster.max.reduce.memory.mb</name>
+    <value>4096</value>
+  </property>
+
+<property>
+  <name>mapred.hosts</name>
+  <value></value>
+</property>
+
+<property>
+  <name>mapred.hosts.exclude</name>
+  <value></value>
+</property>
+
+<property>
+  <name>mapred.max.tracker.blacklists</name>
+  <value>16</value>
+  <description>
+    if node is reported blacklisted by 16 successful jobs within timeout-window, it will be graylisted
+  </description>
+</property>
+
+<property>
+  <name>mapred.healthChecker.script.path</name>
+  <value></value>
+</property>
+
+<property>
+  <name>mapred.healthChecker.interval</name>
+  <value>135000</value>
+</property>
+
+<property>
+  <name>mapred.healthChecker.script.timeout</name>
+  <value>60000</value>
+</property>
+
+<property>
+  <name>mapred.job.tracker.persist.jobstatus.active</name>
+  <value>false</value>
+  <description>Indicates if persistency of job status information is
+  active or not.
+  </description>
+</property>
+
+<property>
+  <name>mapred.job.tracker.persist.jobstatus.hours</name>
+  <value>1</value>
+  <description>The number of hours job status information is persisted in DFS.
+    The job status information will be available after it drops of the memory
+    queue and between jobtracker restarts. With a zero value the job status
+    information is not persisted at all in DFS.
+  </description>
+</property>
+
+<property>
+  <name>mapred.job.tracker.persist.jobstatus.dir</name>
+  <value></value>
+  <description>The directory where the job status information is persisted
+   in a file system to be available after it drops of the memory queue and
+   between jobtracker restarts.
+  </description>
+</property>
+
+<property>
+  <name>mapred.jobtracker.retirejob.check</name>
+  <value>10000</value>
+</property>
+
+<property>
+  <name>mapred.jobtracker.retirejob.interval</name>
+  <value>21600000</value>
+</property>
+
+<property>
+  <name>mapred.job.tracker.history.completed.location</name>
+  <value>/mapred/history/done</value>
+  <description>No description</description>
+</property>
+
+<property>
+  <name>mapred.task.maxvmem</name>
+  <value></value>
+  <final>true</final>
+   <description>No description</description>
+</property>
+
+<property>
+  <name>mapred.jobtracker.maxtasks.per.job</name>
+  <value></value>
+  <final>true</final>
+  <description>The maximum number of tasks for a single job.
+  A value of -1 indicates that there is no maximum.  </description>
+</property>
+
+<property>
+  <name>mapreduce.fileoutputcommitter.marksuccessfuljobs</name>
+  <value>false</value>
+</property>
+
+<property>
+  <name>mapred.userlog.retain.hours</name>
+  <value></value>
+</property>
+
+<property>
+  <name>mapred.job.reuse.jvm.num.tasks</name>
+  <value>1</value>
+  <description>
+    How many tasks to run per jvm. If set to -1, there is no limit
+  </description>
+  <final>true</final>
+</property>
+
+<property>
+  <name>mapreduce.jobtracker.kerberos.principal</name>
+  <value></value>
+  <description>
+      JT user name key.
+ </description>
+</property>
+
+<property>
+  <name>mapreduce.tasktracker.kerberos.principal</name>
+   <value></value>
+  <description>
+       tt user name key. "_HOST" is replaced by the host name of the task tracker.
+   </description>
+</property>
+
+
+  <property>
+    <name>hadoop.job.history.user.location</name>
+    <value>none</value>
+    <final>true</final>
+  </property>
+
+
+ <property>
+   <name>mapreduce.jobtracker.keytab.file</name>
+   <value></value>
+   <description>
+       The keytab for the jobtracker principal.
+   </description>
+
+</property>
+
+ <property>
+   <name>mapreduce.tasktracker.keytab.file</name>
+   <value></value>
+    <description>The filename of the keytab for the task tracker</description>
+ </property>
+
+ <property>
+   <name>mapred.task.tracker.http.address</name>
+   <value></value>
+   <description>Http address for task tracker.</description>
+ </property>
+
+ <property>
+   <name>mapreduce.jobtracker.staging.root.dir</name>
+   <value>/user</value>
+ <description>The Path prefix for where the staging directories should be placed. The next level is always the user's
+   name. It is a path in the default file system.</description>
+ </property>
+
+ <property>
+      <name>mapreduce.tasktracker.group</name>
+      <value>hadoop</value>
+      <description>The group that the task controller uses for accessing the task controller. The mapred user must be a member and users should *not* be members.</description>
+
+ </property>
+
+  <property>
+    <name>mapreduce.jobtracker.split.metainfo.maxsize</name>
+    <value>50000000</value>
+    <final>true</final>
+     <description>If the size of the split metainfo file is larger than this, the JobTracker will fail the job during
+    initialize.
+   </description>
+  </property>
+  <property>
+    <name>mapreduce.history.server.embedded</name>
+    <value>false</value>
+    <description>Should job history server be embedded within Job tracker
+process</description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>mapreduce.history.server.http.address</name>
+    <!-- cluster variant -->
+    <value></value>
+    <description>Http address of the history server</description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>mapreduce.jobhistory.kerberos.principal</name>
+    <!-- cluster variant -->
+  <value></value>
+    <description>Job history user name key. (must map to same user as JT
+user)</description>
+  </property>
+
+ <property>
+   <name>mapreduce.jobhistory.keytab.file</name>
+    <!-- cluster variant -->
+   <value></value>
+   <description>The keytab for the job history server principal.</description>
+ </property>
+
+<property>
+  <name>mapred.jobtracker.blacklist.fault-timeout-window</name>
+  <value>180</value>
+  <description>
+    3-hour sliding window (value is in minutes)
+  </description>
+</property>
+
+<property>
+  <name>mapred.jobtracker.blacklist.fault-bucket-width</name>
+  <value>15</value>
+  <description>
+    15-minute bucket size (value is in minutes)
+  </description>
+</property>
+
+<property>
+  <name>mapred.queue.names</name>
+  <value>default</value>
+  <description> Comma separated list of queues configured for this jobtracker.</description>
+</property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/metainfo.xml
new file mode 100644
index 0000000..757bbb5
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/metainfo.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>mapred</user>
+    <comment>Apache Hadoop Distributed Processing Framework</comment>
+    <version>1.2.0.1.3.2.0</version>
+
+    <components>
+        <component>
+            <name>JOBTRACKER</name>
+            <category>MASTER</category>
+        </component>
+
+        <component>
+            <name>TASKTRACKER</name>
+            <category>SLAVE</category>
+        </component>
+
+        <component>
+            <name>MAPREDUCE_CLIENT</name>
+            <category>CLIENT</category>
+        </component>
+    </components>
+
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/NAGIOS/configuration/global.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/NAGIOS/configuration/global.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/NAGIOS/configuration/global.xml
new file mode 100644
index 0000000..61a2b90
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/NAGIOS/configuration/global.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>nagios_user</name>
+    <value>nagios</value>
+    <description>Nagios Username.</description>
+  </property>
+  <property>
+    <name>nagios_group</name>
+    <value>nagios</value>
+    <description>Nagios Group.</description>
+  </property>
+  <property>
+    <name>nagios_web_login</name>
+    <value>nagiosadmin</value>
+    <description>Nagios web user.</description>
+  </property>
+  <property>
+    <name>nagios_web_password</name>
+    <value></value>
+    <description>Nagios Admin Password.</description>
+  </property>
+  <property>
+    <name>nagios_contact</name>
+    <value></value>
+    <description>Hadoop Admin Email.</description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/NAGIOS/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/NAGIOS/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/NAGIOS/metainfo.xml
new file mode 100644
index 0000000..76471cf
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/NAGIOS/metainfo.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>Nagios Monitoring and Alerting system</comment>
+    <version>3.5.0</version>
+
+    <components>
+        <component>
+            <name>NAGIOS_SERVER</name>
+            <category>MASTER</category>
+        </component>
+    </components>
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/OOZIE/configuration/global.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/OOZIE/configuration/global.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/OOZIE/configuration/global.xml
new file mode 100644
index 0000000..ddbf780
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/OOZIE/configuration/global.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>oozie_user</name>
+    <value>oozie</value>
+    <description>Oozie User.</description>
+  </property>
+  <property>
+    <name>oozieserver_host</name>
+    <value></value>
+    <description>Oozie Server Host.</description>
+  </property>
+  <property>
+    <name>oozie_database</name>
+    <value></value>
+    <description>Oozie Server Database.</description>
+  </property>
+  <property>
+    <name>oozie_derby_database</name>
+    <value>Derby</value>
+    <description>Oozie Derby Database.</description>
+  </property>
+  <property>
+    <name>oozie_existing_mysql_database</name>
+    <value>MySQL</value>
+    <description>Oozie MySQL Database.</description>
+  </property>
+  <property>
+    <name>oozie_existing_mysql_host</name>
+    <value></value>
+    <description>Existing MySQL Host.</description>
+  </property>
+  <property>
+    <name>oozie_existing_oracle_database</name>
+    <value>Oracle</value>
+    <description>Oracle Database</description>
+  </property>
+  <property>
+    <name>oozie_existing_oracle_host</name>
+    <value></value>
+    <description>Database Host.</description>
+  </property>
+  <property>
+    <name>oozie_ambari_database</name>
+    <value>MySQL</value>
+    <description>Database default.</description>
+  </property>
+  <property>
+    <name>oozie_ambari_host</name>
+    <value></value>
+    <description>Host on which databse will be created.</description>
+  </property>
+  <property>
+    <name>oozie_database_name</name>
+    <value>oozie</value>
+    <description>Database name used for the Oozie.</description>
+  </property>
+  <property>
+    <name>oozie_metastore_user_name</name>
+    <value>oozie</value>
+    <description>Database user name to use to connect to the database</description>
+  </property>
+  <property>
+    <name>oozie_metastore_user_passwd</name>
+    <value></value>
+    <description>Database password to use to connect to the database</description>
+  </property>
+  <property>
+    <name>oozie_data_dir</name>
+    <value>/hadoop/oozie/data</value>
+    <description>Data directory in which the Oozie DB exists</description>
+  </property>
+  <property>
+    <name>oozie_log_dir</name>
+    <value>/var/log/oozie</value>
+    <description>Directory for oozie logs</description>
+  </property>
+  <property>
+    <name>oozie_pid_dir</name>
+    <value>/var/run/oozie</value>
+    <description>Directory in which the pid files for oozie reside.</description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/OOZIE/configuration/oozie-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/OOZIE/configuration/oozie-site.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/OOZIE/configuration/oozie-site.xml
new file mode 100644
index 0000000..eeed0d8
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/OOZIE/configuration/oozie-site.xml
@@ -0,0 +1,237 @@
+<?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+        
+       http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->     
+
+<configuration>
+
+<!--
+    Refer to the oozie-default.xml file for the complete list of
+    Oozie configuration properties and their default values.
+-->
+  <property>
+    <name>oozie.base.url</name>
+    <value>http://localhost:11000/oozie</value>
+    <description>Base Oozie URL.</description>
+   </property>
+
+  <property>
+    <name>oozie.system.id</name>
+    <value>oozie-${user.name}</value>
+    <description>
+    The Oozie system ID.
+    </description>
+   </property>
+
+   <property>
+     <name>oozie.systemmode</name>
+     <value>NORMAL</value>
+     <description>
+     System mode for  Oozie at startup.
+     </description>
+   </property>
+
+   <property>
+     <name>oozie.service.AuthorizationService.authorization.enabled</name>
+     <value>true</value>
+     <description>
+     Specifies whether security (user name/admin role) is enabled or not.
+     If disabled any user can manage Oozie system and manage any job.
+     </description>
+   </property>
+
+   <property>
+     <name>oozie.service.PurgeService.older.than</name>
+     <value>30</value>
+     <description>
+     Jobs older than this value, in days, will be purged by the PurgeService.
+     </description>
+   </property>
+
+   <property>
+     <name>oozie.service.PurgeService.purge.interval</name>
+     <value>3600</value>
+     <description>
+     Interval at which the purge service will run, in seconds.
+     </description>
+   </property>
+
+   <property>
+     <name>oozie.service.CallableQueueService.queue.size</name>
+     <value>1000</value>
+     <description>Max callable queue size</description>
+   </property>
+
+   <property>
+     <name>oozie.service.CallableQueueService.threads</name>
+     <value>10</value>
+     <description>Number of threads used for executing callables</description>
+   </property>
+
+   <property>
+     <name>oozie.service.CallableQueueService.callable.concurrency</name>
+     <value>3</value>
+     <description>
+     Maximum concurrency for a given callable type.
+     Each command is a callable type (submit, start, run, signal, job, jobs, suspend,resume, etc).
+     Each action type is a callable type (Map-Reduce, Pig, SSH, FS, sub-workflow, etc).
+     All commands that use action executors (action-start, action-end, action-kill and action-check) use
+     the action type as the callable type.
+     </description>
+   </property>
+
+   <property>
+     <name>oozie.service.coord.normal.default.timeout</name>
+     <value>120</value>
+     <description>Default timeout for a coordinator action input check (in minutes) for normal job.
+      -1 means infinite timeout</description>
+   </property>
+
+   <property>
+     <name>oozie.db.schema.name</name>
+     <value>oozie</value>
+     <description>
+      Oozie DataBase Name
+     </description>
+   </property>
+
+    <property>
+      <name>oozie.service.HadoopAccessorService.jobTracker.whitelist</name>
+      <value> </value>
+      <description>
+      Whitelisted job tracker for Oozie service.
+      </description>
+    </property>
+   
+    <property>
+      <name>oozie.authentication.type</name>
+      <value>simple</value>
+      <description>
+      </description>
+    </property>
+   
+    <property>
+      <name>oozie.service.HadoopAccessorService.nameNode.whitelist</name>
+      <value> </value>
+      <description>
+      </description>
+    </property>
+
+    <property>
+      <name>oozie.service.WorkflowAppService.system.libpath</name>
+      <value>/user/${user.name}/share/lib</value>
+      <description>
+      System library path to use for workflow applications.
+      This path is added to workflow application if their job properties sets
+      the property 'oozie.use.system.libpath' to true.
+      </description>
+    </property>
+
+    <property>
+      <name>use.system.libpath.for.mapreduce.and.pig.jobs</name>
+      <value>false</value>
+      <description>
+      If set to true, submissions of MapReduce and Pig jobs will include
+      automatically the system library path, thus not requiring users to
+      specify where the Pig JAR files are. Instead, the ones from the system
+      library path are used.
+      </description>
+    </property>
+    <property>
+      <name>oozie.authentication.kerberos.name.rules</name>
+      <value>DEFAULT</value>
+      <description>The mapping from kerberos principal names to local OS user names.</description>
+    </property>
+    <property>
+      <name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
+      <value>*=/etc/hadoop/conf</value>
+      <description>
+          Comma separated AUTHORITY=HADOOP_CONF_DIR, where AUTHORITY is the HOST:PORT of
+          the Hadoop service (JobTracker, HDFS). The wildcard '*' configuration is
+          used when there is no exact match for an authority. The HADOOP_CONF_DIR contains
+          the relevant Hadoop *-site.xml files. If the path is relative is looked within
+          the Oozie configuration directory; though the path can be absolute (i.e. to point
+          to Hadoop client conf/ directories in the local filesystem.
+      </description>
+    </property>
+    <property>
+        <name>oozie.service.ActionService.executor.ext.classes</name>
+        <value>org.apache.oozie.action.email.EmailActionExecutor,
+org.apache.oozie.action.hadoop.HiveActionExecutor,
+org.apache.oozie.action.hadoop.ShellActionExecutor,
+org.apache.oozie.action.hadoop.SqoopActionExecutor,
+org.apache.oozie.action.hadoop.DistcpActionExecutor</value>
+    </property>
+
+    <property>
+        <name>oozie.service.SchemaService.wf.ext.schemas</name>
+        <value>shell-action-0.1.xsd,email-action-0.1.xsd,hive-action-0.2.xsd,sqoop-action-0.2.xsd,ssh-action-0.1.xsd,distcp-action-0.1.xsd</value>
+    </property>
+    <property>
+        <name>oozie.service.JPAService.create.db.schema</name>
+        <value>false</value>
+        <description>
+            Creates Oozie DB.
+
+            If set to true, it creates the DB schema if it does not exist. If the DB schema exists is a NOP.
+            If set to false, it does not create the DB schema. If the DB schema does not exist it fails start up.
+        </description>
+    </property>
+
+    <property>
+        <name>oozie.service.JPAService.jdbc.driver</name>
+        <value>org.apache.derby.jdbc.EmbeddedDriver</value>
+        <description>
+            JDBC driver class.
+        </description>
+    </property>
+
+    <property>
+        <name>oozie.service.JPAService.jdbc.url</name>
+        <value>jdbc:derby:${oozie.data.dir}/${oozie.db.schema.name}-db;create=true</value>
+        <description>
+            JDBC URL.
+        </description>
+    </property>
+
+    <property>
+        <name>oozie.service.JPAService.jdbc.username</name>
+        <value>sa</value>
+        <description>
+            DB user name.
+        </description>
+    </property>
+
+    <property>
+        <name>oozie.service.JPAService.jdbc.password</name>
+        <value> </value>
+        <description>
+            DB user password.
+
+            IMPORTANT: if password is emtpy leave a 1 space string, the service trims the value,
+                       if empty Configuration assumes it is NULL.
+        </description>
+    </property>
+
+    <property>
+        <name>oozie.service.JPAService.pool.max.active.conn</name>
+        <value>10</value>
+        <description>
+             Max number of connections.
+        </description>
+    </property>
+</configuration>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/OOZIE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/OOZIE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/OOZIE/metainfo.xml
new file mode 100644
index 0000000..3f9fff5
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/OOZIE/metainfo.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>System for workflow coordination and execution of Apache Hadoop jobs.  This also includes the installation of the optional Oozie Web Console which relies on and will install the &lt;a target="_blank" href="http://www.sencha.com/products/extjs/license/"&gt;ExtJS&lt;/a&gt; Library.</comment>
+    <version>3.3.2.1.3.2.0</version>
+
+    <components>
+        <component>
+            <name>OOZIE_SERVER</name>
+            <category>MASTER</category>
+        </component>
+
+        <component>
+            <name>OOZIE_CLIENT</name>
+            <category>CLIENT</category>
+        </component>
+    </components>
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/PIG/configuration/pig.properties
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/PIG/configuration/pig.properties b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/PIG/configuration/pig.properties
new file mode 100644
index 0000000..01000b5
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/PIG/configuration/pig.properties
@@ -0,0 +1,52 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Pig default configuration file. All values can be overwritten by pig.properties and command line arguments.
+# see bin/pig -help
+
+# brief logging (no timestamps)
+brief=false
+
+#debug level, INFO is default
+debug=INFO
+
+#verbose print all log messages to screen (default to print only INFO and above to screen)
+verbose=false
+
+#exectype local|mapreduce, mapreduce is default
+exectype=mapreduce
+
+#Enable insertion of information about script into hadoop job conf 
+pig.script.info.enabled=true
+
+#Do not spill temp files smaller than this size (bytes)
+pig.spill.size.threshold=5000000
+#EXPERIMENT: Activate garbage collection when spilling a file bigger than this size (bytes)
+#This should help reduce the number of files being spilled.
+pig.spill.gc.activation.size=40000000
+
+#the following two parameters are to help estimate the reducer number
+pig.exec.reducers.bytes.per.reducer=1000000000
+pig.exec.reducers.max=999
+
+#Temporary location to store the intermediate data.
+pig.temp.dir=/tmp/
+
+#Threshold for merging FRJoin fragment files
+pig.files.concatenation.threshold=100
+pig.optimistic.files.concatenation=false;
+
+pig.disable.counter=false

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/PIG/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/PIG/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/PIG/metainfo.xml
new file mode 100644
index 0000000..8efacb4
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/PIG/metainfo.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>Scripting platform for analyzing large datasets</comment>
+    <version>0.11.1.1.3.2.0</version>
+
+    <components>
+        <component>
+            <name>PIG</name>
+            <category>CLIENT</category>
+        </component>
+    </components>
+
+</metainfo>


[13/20] git commit: AMBARI-3697. JS exception trying to calculate dynamic configs in branch-1.4. (srimanth)

Posted by sr...@apache.org.
AMBARI-3697. JS exception trying to calculate dynamic configs in branch-1.4. (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/4720ee5c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/4720ee5c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/4720ee5c

Branch: refs/heads/branch-1.4-bk
Commit: 4720ee5c693f757d1a27ebef704d64131d2cc365
Parents: 3a34751
Author: Srimanth Gunturi <sg...@hortonworks.com>
Authored: Tue Nov 5 14:47:21 2013 -0800
Committer: Srimanth Gunturi <sg...@hortonworks.com>
Committed: Tue Nov 5 14:47:21 2013 -0800

----------------------------------------------------------------------
 ambari-web/app/controllers/wizard/step7_controller.js | 2 +-
 ambari-web/app/utils/config.js                        | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/4720ee5c/ambari-web/app/controllers/wizard/step7_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step7_controller.js b/ambari-web/app/controllers/wizard/step7_controller.js
index efca8ae..b46e6eb 100644
--- a/ambari-web/app/controllers/wizard/step7_controller.js
+++ b/ambari-web/app/controllers/wizard/step7_controller.js
@@ -93,7 +93,7 @@ App.WizardStep7Controller = Em.Controller.extend({
       configs = App.config.fileConfigsIntoTextarea(configs, 'capacity-scheduler.xml');
     }
     //STEP 6: Distribute configs by service and wrap each one in App.ServiceConfigProperty (configs -> serviceConfigs)
-    var serviceConfigs = App.config.renderConfigs(configs, storedConfigs, this.get('allInstalledServiceNames'), this.get('selectedServiceNames'), localDB);
+    var serviceConfigs = App.config.renderConfigs(configs, storedConfigs, this.get('allInstalledServiceNames'), this.get('selectedServiceNames'));
     this.set('stepConfigs', serviceConfigs);
     this.activateSpecialConfigs();
     this.set('selectedService', this.get('stepConfigs').filterProperty('showConfig', true).objectAt(0));

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/4720ee5c/ambari-web/app/utils/config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js
index ab421be..054c234 100644
--- a/ambari-web/app/utils/config.js
+++ b/ambari-web/app/utils/config.js
@@ -468,7 +468,7 @@ App.config = Em.Object.create({
    * @param localDB
    * @return {Array}
    */
-  renderConfigs: function (configs, storedConfigs, allInstalledServiceNames, selectedServiceNames, localDB) {
+  renderConfigs: function (configs, storedConfigs, allInstalledServiceNames, selectedServiceNames) {
     var renderedServiceConfigs = [];
     var localDB = {
       hosts: App.db.getHosts(),


[12/20] git commit: AMBARI-3689: Invalid java opts configs in mapred-site. (jaimin)

Posted by sr...@apache.org.
AMBARI-3689: Invalid java opts configs in mapred-site. (jaimin)


Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/3a347511
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/3a347511
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/3a347511

Branch: refs/heads/branch-1.4-bk
Commit: 3a347511bfd403f7feaf31daa787c6feafbca56f
Parents: 0ae5179
Author: Jaimin Jetly <ja...@hortonworks.com>
Authored: Mon Nov 4 18:22:30 2013 -0800
Committer: Srimanth Gunturi <sg...@hortonworks.com>
Committed: Tue Nov 5 12:53:50 2013 -0800

----------------------------------------------------------------------
 ambari-web/app/controllers/wizard/step7_controller.js          | 2 +-
 ambari-web/app/utils/config.js                                 | 3 +--
 .../app/utils/defaults_providers/yarn_defaults_provider.js     | 6 +++---
 3 files changed, 5 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/3a347511/ambari-web/app/controllers/wizard/step7_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step7_controller.js b/ambari-web/app/controllers/wizard/step7_controller.js
index 5ac149b..efca8ae 100644
--- a/ambari-web/app/controllers/wizard/step7_controller.js
+++ b/ambari-web/app/controllers/wizard/step7_controller.js
@@ -93,7 +93,7 @@ App.WizardStep7Controller = Em.Controller.extend({
       configs = App.config.fileConfigsIntoTextarea(configs, 'capacity-scheduler.xml');
     }
     //STEP 6: Distribute configs by service and wrap each one in App.ServiceConfigProperty (configs -> serviceConfigs)
-    var serviceConfigs = App.config.renderConfigs(configs, storedConfigs, this.get('allInstalledServiceNames'), this.get('selectedServiceNames'), localDB, storedConfigs);
+    var serviceConfigs = App.config.renderConfigs(configs, storedConfigs, this.get('allInstalledServiceNames'), this.get('selectedServiceNames'), localDB);
     this.set('stepConfigs', serviceConfigs);
     this.activateSpecialConfigs();
     this.set('selectedService', this.get('stepConfigs').filterProperty('showConfig', true).objectAt(0));

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/3a347511/ambari-web/app/utils/config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js
index 288665d..ab421be 100644
--- a/ambari-web/app/utils/config.js
+++ b/ambari-web/app/utils/config.js
@@ -466,10 +466,9 @@ App.config = Em.Object.create({
    * @param allInstalledServiceNames
    * @param selectedServiceNames
    * @param localDB
-   * @param storedConfigs
    * @return {Array}
    */
-  renderConfigs: function (configs, storedConfigs, allInstalledServiceNames, selectedServiceNames, localDB, storedConfigs) {
+  renderConfigs: function (configs, storedConfigs, allInstalledServiceNames, selectedServiceNames, localDB) {
     var renderedServiceConfigs = [];
     var localDB = {
       hosts: App.db.getHosts(),

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/3a347511/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js b/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js
index 9e83949..4b10e97 100644
--- a/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js
+++ b/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js
@@ -216,11 +216,11 @@ App.YARNDefaultsProvider = App.DefaultsProvider.create({
     configs['yarn.scheduler.minimum-allocation-mb'] = Math.round(this.get('ramPerContainer'));
     configs['yarn.scheduler.maximum-allocation-mb'] = Math.round(this.get('containers') * this.get('ramPerContainer'));
     configs['yarn.app.mapreduce.am.resource.mb'] = Math.round(this.get('amMemory'));
-    configs['yarn.app.mapreduce.am.command-opts'] = Math.round(0.8 * this.get('amMemory'));
+    configs['yarn.app.mapreduce.am.command-opts'] = "-Xmx" + Math.round(0.8 * this.get('amMemory')) + "m";
     configs['mapreduce.map.memory.mb'] = Math.round(this.get('mapMemory'));
     configs['mapreduce.reduce.memory.mb'] = Math.round(this.get('reduceMemory'));
-    configs['mapreduce.map.java.opts'] = Math.round(0.8 * this.get('mapMemory'));
-    configs['mapreduce.reduce.java.opts'] = Math.round(0.8 * this.get('reduceMemory'));
+    configs['mapreduce.map.java.opts'] = "-Xmx" + Math.round(0.8 * this.get('mapMemory')) + "m";
+    configs['mapreduce.reduce.java.opts'] = "-Xmx" + Math.round(0.8 * this.get('reduceMemory')) + "m";
     configs['mapreduce.task.io.sort.mb'] = Math.round(0.4 * this.get('mapMemory'));
     return configs;
   },


[06/20] git commit: AMBARI-3579. Adding new stack based on hadoop 1.0. (mahadev)

Posted by sr...@apache.org.
AMBARI-3579. Adding new stack based on hadoop 1.0. (mahadev)


Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/c073d429
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/c073d429
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/c073d429

Branch: refs/heads/branch-1.4-bk
Commit: c073d429ade81d5e614a8ffdfe260824cc6cfa68
Parents: 105a678
Author: Mahadev Konar <ma...@apache.org>
Authored: Tue Oct 22 15:24:08 2013 -0700
Committer: Mahadev Konar <ma...@apache.org>
Committed: Tue Oct 22 15:24:08 2013 -0700

----------------------------------------------------------------------
 ambari-server/pom.xml                           |   2 +-
 .../resources/stacks/HDP/1.3.3/metainfo.xml     |  22 +
 .../stacks/HDP/1.3.3/repos/repoinfo.xml         |  75 +++
 .../services/FLUME/configuration/global.xml     |  24 +
 .../HDP/1.3.3/services/FLUME/metainfo.xml       |  30 ++
 .../services/GANGLIA/configuration/global.xml   |  55 ++
 .../HDP/1.3.3/services/GANGLIA/metainfo.xml     |  40 ++
 .../services/HBASE/configuration/global.xml     | 160 ++++++
 .../HBASE/configuration/hbase-policy.xml        |  53 ++
 .../services/HBASE/configuration/hbase-site.xml | 367 +++++++++++++
 .../HDP/1.3.3/services/HBASE/metainfo.xml       |  40 ++
 .../services/HCATALOG/configuration/global.xml  |  45 ++
 .../HDP/1.3.3/services/HCATALOG/metainfo.xml    |  30 ++
 .../services/HDFS/configuration/core-site.xml   | 253 +++++++++
 .../services/HDFS/configuration/global.xml      | 187 +++++++
 .../HDFS/configuration/hadoop-policy.xml        | 134 +++++
 .../services/HDFS/configuration/hdfs-site.xml   | 454 ++++++++++++++++
 .../stacks/HDP/1.3.3/services/HDFS/metainfo.xml |  46 ++
 .../services/HIVE/configuration/global.xml      | 125 +++++
 .../services/HIVE/configuration/hive-site.xml   | 230 ++++++++
 .../stacks/HDP/1.3.3/services/HIVE/metainfo.xml |  43 ++
 .../1.3.3/services/HUE/configuration/global.xml |  35 ++
 .../services/HUE/configuration/hue-site.xml     | 290 ++++++++++
 .../stacks/HDP/1.3.3/services/HUE/metainfo.xml  |  31 ++
 .../configuration/capacity-scheduler.xml        | 195 +++++++
 .../MAPREDUCE/configuration/core-site.xml       |  20 +
 .../services/MAPREDUCE/configuration/global.xml | 160 ++++++
 .../configuration/mapred-queue-acls.xml         |  39 ++
 .../MAPREDUCE/configuration/mapred-site.xml     | 537 +++++++++++++++++++
 .../HDP/1.3.3/services/MAPREDUCE/metainfo.xml   |  41 ++
 .../services/NAGIOS/configuration/global.xml    |  50 ++
 .../HDP/1.3.3/services/NAGIOS/metainfo.xml      |  30 ++
 .../services/OOZIE/configuration/global.xml     | 105 ++++
 .../services/OOZIE/configuration/oozie-site.xml | 237 ++++++++
 .../HDP/1.3.3/services/OOZIE/metainfo.xml       |  35 ++
 .../services/PIG/configuration/pig.properties   |  52 ++
 .../stacks/HDP/1.3.3/services/PIG/metainfo.xml  |  30 ++
 .../HDP/1.3.3/services/SQOOP/metainfo.xml       |  30 ++
 .../WEBHCAT/configuration/webhcat-site.xml      | 126 +++++
 .../HDP/1.3.3/services/WEBHCAT/metainfo.xml     |  31 ++
 .../services/ZOOKEEPER/configuration/global.xml |  75 +++
 .../HDP/1.3.3/services/ZOOKEEPER/metainfo.xml   |  35 ++
 .../stacks/HDPLocal/1.3.3/metainfo.xml          |  22 +
 .../stacks/HDPLocal/1.3.3/repos/repoinfo.xml    |  75 +++
 .../services/FLUME/configuration/global.xml     |  24 +
 .../HDPLocal/1.3.3/services/FLUME/metainfo.xml  |  30 ++
 .../services/GANGLIA/configuration/global.xml   |  55 ++
 .../1.3.3/services/GANGLIA/metainfo.xml         |  40 ++
 .../services/HBASE/configuration/global.xml     | 160 ++++++
 .../HBASE/configuration/hbase-policy.xml        |  53 ++
 .../services/HBASE/configuration/hbase-site.xml | 367 +++++++++++++
 .../HDPLocal/1.3.3/services/HBASE/metainfo.xml  |  40 ++
 .../services/HCATALOG/configuration/global.xml  |  45 ++
 .../1.3.3/services/HCATALOG/metainfo.xml        |  30 ++
 .../services/HDFS/configuration/core-site.xml   | 253 +++++++++
 .../services/HDFS/configuration/global.xml      | 187 +++++++
 .../HDFS/configuration/hadoop-policy.xml        | 134 +++++
 .../services/HDFS/configuration/hdfs-site.xml   | 454 ++++++++++++++++
 .../HDPLocal/1.3.3/services/HDFS/metainfo.xml   |  46 ++
 .../services/HIVE/configuration/global.xml      | 125 +++++
 .../services/HIVE/configuration/hive-site.xml   | 230 ++++++++
 .../HDPLocal/1.3.3/services/HIVE/metainfo.xml   |  43 ++
 .../1.3.3/services/HUE/configuration/global.xml |  35 ++
 .../services/HUE/configuration/hue-site.xml     | 290 ++++++++++
 .../HDPLocal/1.3.3/services/HUE/metainfo.xml    |  31 ++
 .../configuration/capacity-scheduler.xml        | 195 +++++++
 .../MAPREDUCE/configuration/core-site.xml       |  20 +
 .../services/MAPREDUCE/configuration/global.xml | 160 ++++++
 .../configuration/mapred-queue-acls.xml         |  39 ++
 .../MAPREDUCE/configuration/mapred-site.xml     | 537 +++++++++++++++++++
 .../1.3.3/services/MAPREDUCE/metainfo.xml       |  41 ++
 .../services/NAGIOS/configuration/global.xml    |  50 ++
 .../HDPLocal/1.3.3/services/NAGIOS/metainfo.xml |  30 ++
 .../services/OOZIE/configuration/global.xml     | 105 ++++
 .../services/OOZIE/configuration/oozie-site.xml | 237 ++++++++
 .../HDPLocal/1.3.3/services/OOZIE/metainfo.xml  |  35 ++
 .../services/PIG/configuration/pig.properties   |  52 ++
 .../HDPLocal/1.3.3/services/PIG/metainfo.xml    |  30 ++
 .../HDPLocal/1.3.3/services/SQOOP/metainfo.xml  |  30 ++
 .../WEBHCAT/configuration/webhcat-site.xml      | 126 +++++
 .../1.3.3/services/WEBHCAT/metainfo.xml         |  31 ++
 .../services/ZOOKEEPER/configuration/global.xml |  75 +++
 .../1.3.3/services/ZOOKEEPER/metainfo.xml       |  35 ++
 83 files changed, 9195 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/pom.xml
----------------------------------------------------------------------
diff --git a/ambari-server/pom.xml b/ambari-server/pom.xml
index cebf47b..507a911 100644
--- a/ambari-server/pom.xml
+++ b/ambari-server/pom.xml
@@ -29,7 +29,7 @@
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <python.ver>python &gt;= 2.6</python.ver>
-    <hdpUrlForCentos6>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.6.0</hdpUrlForCentos6>
+    <hdpUrlForCentos6>http://s3.amazonaws.com/dev.hortonworks.com/HDP-1.3.3.0/repos/centos6</hdpUrlForCentos6>
   </properties>
   <build>
     <plugins>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/metainfo.xml
new file mode 100644
index 0000000..ca45822
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/metainfo.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <versions>
+	  <active>true</active>
+    </versions>
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/repos/repoinfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/repos/repoinfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/repos/repoinfo.xml
new file mode 100644
index 0000000..87c68bf
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/repos/repoinfo.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<reposinfo>
+  <os type="centos6">
+    <repo>
+      <baseurl>REPLACE_WITH_CENTOS6_URL</baseurl>
+      <repoid>HDP-1.3.3</repoid>
+      <reponame>HDP</reponame>
+    </repo>
+  </os>
+  <os type="centos5">
+    <repo>
+      <baseurl>REPLACE_WITH_CENTOS5_URL</baseurl>
+      <repoid>HDP-1.3.3</repoid>
+      <reponame>HDP</reponame>
+    </repo>
+  </os>
+  <os type="redhat6">
+    <repo>
+      <baseurl>REPLACE_WITH_CENTOS6_URL</baseurl>
+      <repoid>HDP-1.3.3</repoid>
+      <reponame>HDP</reponame>
+    </repo>
+  </os>
+  <os type="redhat5">
+    <repo>
+      <baseurl>REPLACE_WITH_CENTOS5_URL</baseurl>
+      <repoid>HDP-1.3.3</repoid>
+      <reponame>HDP</reponame>
+    </repo>
+  </os>
+  <os type="oraclelinux6">
+    <repo>
+      <baseurl>REPLACE_WITH_CENTOS6_URL</baseurl>
+      <repoid>HDP-1.3.3</repoid>
+      <reponame>HDP</reponame>
+    </repo>
+  </os>
+  <os type="oraclelinux5">
+    <repo>
+      <baseurl>REPLACE_WITH_CENTOS5_URL</baseurl>
+      <repoid>HDP-1.3.3</repoid>
+      <reponame>HDP</reponame>
+    </repo>
+  </os>
+  <os type="suse11">
+    <repo>
+      <baseurl>REPLACE_WITH_SUSE11_URL</baseurl>
+      <repoid>HDP-1.3.3</repoid>
+      <reponame>HDP</reponame>
+    </repo>
+  </os>
+    <os type="sles11">
+    <repo>
+      <baseurl>REPLACE_WITH_SUSE11_URL</baseurl>
+      <repoid>HDP-1.3.3</repoid>
+      <reponame>HDP</reponame>
+    </repo>
+  </os>
+</reposinfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/FLUME/configuration/global.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/FLUME/configuration/global.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/FLUME/configuration/global.xml
new file mode 100644
index 0000000..f1fa4de
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/FLUME/configuration/global.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/FLUME/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/FLUME/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/FLUME/metainfo.xml
new file mode 100644
index 0000000..185f685
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/FLUME/metainfo.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>Flume is a distributed, reliable, and available system for efficiently collecting, aggregating and moving large amounts of log data from many different sources to a centralized data store.</comment>
+    <version>1.3.1.1.3.2.0</version>
+
+    <components>
+        <component>
+            <name>FLUME_SERVER</name>
+            <category>MASTER</category>
+        </component>
+    </components>
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/GANGLIA/configuration/global.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/GANGLIA/configuration/global.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/GANGLIA/configuration/global.xml
new file mode 100644
index 0000000..16df0b8
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/GANGLIA/configuration/global.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>ganglia_conf_dir</name>
+    <value>/etc/ganglia/hdp</value>
+    <description>Config directory for Ganglia</description>
+  </property>
+  <property>
+    <name>ganglia_runtime_dir</name>
+    <value>/var/run/ganglia/hdp</value>
+    <description>Run directories for Ganglia</description>
+  </property>
+  <property>
+    <name>ganglia_runtime_dir</name>
+    <value>/var/run/ganglia/hdp</value>
+    <description>Run directories for Ganglia</description>
+  </property>
+  <property>
+    <name>gmetad_user</name>
+    <value>nobody</value>
+    <description>User </description>
+  </property>
+    <property>
+    <name>gmond_user</name>
+    <value>nobody</value>
+    <description>User </description>
+  </property>
+  <property>
+    <name>rrdcached_base_dir</name>
+    <value>/var/lib/ganglia/rrds</value>
+    <description>Default directory for saving the rrd files on ganglia server</description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/GANGLIA/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/GANGLIA/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/GANGLIA/metainfo.xml
new file mode 100644
index 0000000..9fee795
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/GANGLIA/metainfo.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>Ganglia Metrics Collection system</comment>
+    <version>3.5.0</version>
+
+    <components>
+        <component>
+            <name>GANGLIA_SERVER</name>
+            <category>MASTER</category>
+        </component>
+
+        <component>
+            <name>GANGLIA_MONITOR</name>
+            <category>SLAVE</category>
+        </component>
+
+        <component>
+            <name>MONITOR_WEBSERVER</name>
+            <category>MASTER</category>
+        </component>
+    </components>
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HBASE/configuration/global.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HBASE/configuration/global.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HBASE/configuration/global.xml
new file mode 100644
index 0000000..453184b
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HBASE/configuration/global.xml
@@ -0,0 +1,160 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>hbasemaster_host</name>
+    <value></value>
+    <description>HBase Master Host.</description>
+  </property>
+  <property>
+    <name>regionserver_hosts</name>
+    <value></value>
+    <description>Region Server Hosts</description>
+  </property>
+  <property>
+    <name>hbase_log_dir</name>
+    <value>/var/log/hbase</value>
+    <description>Log Directories for HBase.</description>
+  </property>
+  <property>
+    <name>hbase_pid_dir</name>
+    <value>/var/run/hbase</value>
+    <description>Log Directories for HBase.</description>
+  </property>
+  <property>
+    <name>hbase_log_dir</name>
+    <value>/var/log/hbase</value>
+    <description>Log Directories for HBase.</description>
+  </property>
+  <property>
+    <name>hbase_regionserver_heapsize</name>
+    <value>1024</value>
+    <description>Log Directories for HBase.</description>
+  </property>
+  <property>
+    <name>hbase_master_heapsize</name>
+    <value>1024</value>
+    <description>HBase Master Heap Size</description>
+  </property>
+  <property>
+    <name>hstore_compactionthreshold</name>
+    <value>3</value>
+    <description>HBase HStore compaction threshold.</description>
+  </property>
+  <property>
+    <name>hfile_blockcache_size</name>
+    <value>0.25</value>
+    <description>HFile block cache size.</description>
+  </property>
+  <property>
+    <name>hstorefile_maxsize</name>
+    <value>10737418240</value>
+    <description>Maximum HStoreFile Size</description>
+  </property>
+    <property>
+    <name>regionserver_handlers</name>
+    <value>30</value>
+    <description>HBase RegionServer Handler</description>
+  </property>
+    <property>
+    <name>hregion_majorcompaction</name>
+    <value>86400000</value>
+    <description>HBase Major Compaction.</description>
+  </property>
+    <property>
+    <name>hregion_blockmultiplier</name>
+    <value>2</value>
+    <description>HBase Region Block Multiplier</description>
+  </property>
+    <property>
+    <name>hregion_memstoreflushsize</name>
+    <value></value>
+    <description>HBase Region MemStore Flush Size.</description>
+  </property>
+    <property>
+    <name>client_scannercaching</name>
+    <value>100</value>
+    <description>Base Client Scanner Caching</description>
+  </property>
+    <property>
+    <name>zookeeper_sessiontimeout</name>
+    <value>60000</value>
+    <description>ZooKeeper Session Timeout</description>
+  </property>
+    <property>
+    <name>hfile_max_keyvalue_size</name>
+    <value>10485760</value>
+    <description>HBase Client Maximum key-value Size</description>
+  </property>
+  <property>
+    <name>hbase_hdfs_root_dir</name>
+    <value>/apps/hbase/data</value>
+    <description>HBase Relative Path to HDFS.</description>
+  </property>
+   <property>
+    <name>hbase_conf_dir</name>
+    <value>/etc/hbase</value>
+    <description>Config Directory for HBase.</description>
+  </property>
+   <property>
+    <name>hdfs_enable_shortcircuit_read</name>
+    <value>true</value>
+    <description>HDFS Short Circuit Read</description>
+  </property>
+   <property>
+    <name>hdfs_support_append</name>
+    <value>true</value>
+    <description>HDFS append support</description>
+  </property>
+   <property>
+    <name>hstore_blockingstorefiles</name>
+    <value>7</value>
+    <description>HStore blocking storefiles.</description>
+  </property>
+   <property>
+    <name>regionserver_memstore_lab</name>
+    <value>true</value>
+    <description>Region Server memstore.</description>
+  </property>
+   <property>
+    <name>regionserver_memstore_lowerlimit</name>
+    <value>0.35</value>
+    <description>Region Server memstore lower limit.</description>
+  </property>
+   <property>
+    <name>regionserver_memstore_upperlimit</name>
+    <value>0.4</value>
+    <description>Region Server memstore upper limit.</description>
+  </property>
+   <property>
+    <name>hbase_conf_dir</name>
+    <value>/etc/hbase</value>
+    <description>HBase conf dir.</description>
+  </property>
+   <property>
+    <name>hbase_user</name>
+    <value>hbase</value>
+    <description>HBase User Name.</description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HBASE/configuration/hbase-policy.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HBASE/configuration/hbase-policy.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HBASE/configuration/hbase-policy.xml
new file mode 100644
index 0000000..e45f23c
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HBASE/configuration/hbase-policy.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>security.client.protocol.acl</name>
+    <value>*</value>
+    <description>ACL for HRegionInterface protocol implementations (ie. 
+    clients talking to HRegionServers)
+    The ACL is a comma-separated list of user and group names. The user and 
+    group list is separated by a blank. For e.g. "alice,bob users,wheel". 
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+  <property>
+    <name>security.admin.protocol.acl</name>
+    <value>*</value>
+    <description>ACL for HMasterInterface protocol implementation (ie. 
+    clients talking to HMaster for admin operations).
+    The ACL is a comma-separated list of user and group names. The user and 
+    group list is separated by a blank. For e.g. "alice,bob users,wheel". 
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+  <property>
+    <name>security.masterregion.protocol.acl</name>
+    <value>*</value>
+    <description>ACL for HMasterRegionInterface protocol implementations
+    (for HRegionServers communicating with HMaster)
+    The ACL is a comma-separated list of user and group names. The user and 
+    group list is separated by a blank. For e.g. "alice,bob users,wheel". 
+    A special value of "*" means all users are allowed.</description>
+  </property>
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HBASE/configuration/hbase-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HBASE/configuration/hbase-site.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HBASE/configuration/hbase-site.xml
new file mode 100644
index 0000000..be9c023
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HBASE/configuration/hbase-site.xml
@@ -0,0 +1,367 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<configuration>
+  <property>
+    <name>hbase.rootdir</name>
+    <value></value>
+    <description>The directory shared by region servers and into
+    which HBase persists.  The URL should be 'fully-qualified'
+    to include the filesystem scheme.  For example, to specify the
+    HDFS directory '/hbase' where the HDFS instance's namenode is
+    running at namenode.example.org on port 9000, set this value to:
+    hdfs://namenode.example.org:9000/hbase.  By default HBase writes
+    into /tmp.  Change this configuration else all data will be lost
+    on machine restart.
+    </description>
+  </property>
+  <property>
+    <name>hbase.cluster.distributed</name>
+    <value>true</value>
+    <description>The mode the cluster will be in. Possible values are
+      false for standalone mode and true for distributed mode.  If
+      false, startup will run all HBase and ZooKeeper daemons together
+      in the one JVM.
+    </description>
+  </property>
+  <property>
+    <name>hbase.tmp.dir</name>
+    <value></value>
+    <description>Temporary directory on the local filesystem.
+    Change this setting to point to a location more permanent
+    than '/tmp' (The '/tmp' directory is often cleared on
+    machine restart).
+    </description>
+  </property>
+  <property>
+    <name>hbase.master.info.bindAddress</name>
+    <value></value>
+    <description>The bind address for the HBase Master web UI
+    </description>
+  </property>
+  <property>
+    <name>hbase.master.info.port</name>
+    <value></value>
+    <description>The port for the HBase Master web UI.</description>
+  </property>
+  <property>
+    <name>hbase.regionserver.info.port</name>
+    <value></value>
+    <description>The port for the HBase RegionServer web UI.</description>
+  </property>
+  <property>
+    <name>hbase.regionserver.global.memstore.upperLimit</name>
+    <value></value>
+    <description>Maximum size of all memstores in a region server before new
+      updates are blocked and flushes are forced. Defaults to 40% of heap
+    </description>
+  </property>
+  <property>
+    <name>hbase.regionserver.handler.count</name>
+    <value></value>
+    <description>Count of RPC Listener instances spun up on RegionServers.
+    Same property is used by the Master for count of master handlers.
+    Default is 10.
+    </description>
+  </property>
+  <property>
+    <name>hbase.hregion.majorcompaction</name>
+    <value></value>
+    <description>The time (in miliseconds) between 'major' compactions of all
+    HStoreFiles in a region.  Default: 1 day.
+    Set to 0 to disable automated major compactions.
+    </description>
+  </property>
+  
+  <property>
+    <name>hbase.regionserver.global.memstore.lowerLimit</name>
+    <value></value>
+    <description>When memstores are being forced to flush to make room in
+      memory, keep flushing until we hit this mark. Defaults to 35% of heap.
+      This value equal to hbase.regionserver.global.memstore.upperLimit causes
+      the minimum possible flushing to occur when updates are blocked due to
+      memstore limiting.
+    </description>
+  </property>
+  <property>
+    <name>hbase.hregion.memstore.block.multiplier</name>
+    <value></value>
+    <description>Block updates if memstore has hbase.hregion.memstore.block.multiplier
+    time hbase.hregion.flush.size bytes.  Useful preventing
+    runaway memstore during spikes in update traffic.  Without an
+    upper-bound, memstore fills such that when it flushes the
+    resultant flush files take a long time to compact or split, or
+    worse, we OOME
+    </description>
+  </property>
+  <property>
+    <name>hbase.hregion.memstore.flush.size</name>
+    <value></value>
+    <description>
+    Memstore will be flushed to disk if size of the memstore
+    exceeds this number of bytes.  Value is checked by a thread that runs
+    every hbase.server.thread.wakefrequency.
+    </description>
+  </property>
+  <property>
+    <name>hbase.hregion.memstore.mslab.enabled</name>
+    <value></value>
+    <description>
+      Enables the MemStore-Local Allocation Buffer,
+      a feature which works to prevent heap fragmentation under
+      heavy write loads. This can reduce the frequency of stop-the-world
+      GC pauses on large heaps.
+    </description>
+  </property>
+  <property>
+    <name>hbase.hregion.max.filesize</name>
+    <value></value>
+    <description>
+    Maximum HStoreFile size. If any one of a column families' HStoreFiles has
+    grown to exceed this value, the hosting HRegion is split in two.
+    Default: 1G.
+    </description>
+  </property>
+  <property>
+    <name>hbase.client.scanner.caching</name>
+    <value></value>
+    <description>Number of rows that will be fetched when calling next
+    on a scanner if it is not served from (local, client) memory. Higher
+    caching values will enable faster scanners but will eat up more memory
+    and some calls of next may take longer and longer times when the cache is empty.
+    Do not set this value such that the time between invocations is greater
+    than the scanner timeout; i.e. hbase.regionserver.lease.period
+    </description>
+  </property>
+  <property>
+    <name>zookeeper.session.timeout</name>
+    <value>30000</value>
+    <description>ZooKeeper session timeout.
+      HBase passes this to the zk quorum as suggested maximum time for a
+      session (This setting becomes zookeeper's 'maxSessionTimeout').  See
+      http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#ch_zkSessions
+      "The client sends a requested timeout, the server responds with the
+      timeout that it can give the client. " In milliseconds.
+    </description>
+  </property>
+  <property>
+    <name>hbase.client.keyvalue.maxsize</name>
+    <value></value>
+    <description>Specifies the combined maximum allowed size of a KeyValue
+    instance. This is to set an upper boundary for a single entry saved in a
+    storage file. Since they cannot be split it helps avoiding that a region
+    cannot be split any further because the data is too large. It seems wise
+    to set this to a fraction of the maximum region size. Setting it to zero
+    or less disables the check.
+    </description>
+  </property>
+  <property>
+    <name>hbase.hstore.compactionThreshold</name>
+    <value></value>
+    <description>
+    If more than this number of HStoreFiles in any one HStore
+    (one HStoreFile is written per flush of memstore) then a compaction
+    is run to rewrite all HStoreFiles files as one.  Larger numbers
+    put off compaction but when it runs, it takes longer to complete.
+    </description>
+  </property>
+  <property>
+    <name>hbase.hstore.blockingStoreFiles</name>
+    <value></value>
+    <description>
+    If more than this number of StoreFiles in any one Store
+    (one StoreFile is written per flush of MemStore) then updates are
+    blocked for this HRegion until a compaction is completed, or
+    until hbase.hstore.blockingWaitTime has been exceeded.
+    </description>
+  </property>
+  <property>
+    <name>hfile.block.cache.size</name>
+    <value></value>
+    <description>
+        Percentage of maximum heap (-Xmx setting) to allocate to block cache
+        used by HFile/StoreFile. Default of 0.25 means allocate 25%.
+        Set to 0 to disable but it's not recommended.
+    </description>
+  </property>
+
+  <!-- The following properties configure authentication information for
+       HBase processes when using Kerberos security.  There are no default
+       values, included here for documentation purposes -->
+  <property>
+    <name>hbase.master.keytab.file</name>
+    <value></value>
+    <description>Full path to the kerberos keytab file to use for logging in
+    the configured HMaster server principal.
+    </description>
+  </property>
+  <property>
+    <name>hbase.master.kerberos.principal</name>
+    <value></value>
+    <description>Ex. "hbase/_HOST@EXAMPLE.COM".  The kerberos principal name
+    that should be used to run the HMaster process.  The principal name should
+    be in the form: user/hostname@DOMAIN.  If "_HOST" is used as the hostname
+    portion, it will be replaced with the actual hostname of the running
+    instance.
+    </description>
+  </property>
+  <property>
+    <name>hbase.regionserver.keytab.file</name>
+    <value></value>
+    <description>Full path to the kerberos keytab file to use for logging in
+    the configured HRegionServer server principal.
+    </description>
+  </property>
+  <property>
+    <name>hbase.regionserver.kerberos.principal</name>
+    <value></value>
+    <description>Ex. "hbase/_HOST@EXAMPLE.COM".  The kerberos principal name
+    that should be used to run the HRegionServer process.  The principal name
+    should be in the form: user/hostname@DOMAIN.  If "_HOST" is used as the
+    hostname portion, it will be replaced with the actual hostname of the
+    running instance.  An entry for this principal must exist in the file
+    specified in hbase.regionserver.keytab.file
+    </description>
+  </property>
+
+  <!-- Additional configuration specific to HBase security -->
+  <property>
+    <name>hbase.superuser</name>
+    <value>hbase</value>
+    <description>List of users or groups (comma-separated), who are allowed
+    full privileges, regardless of stored ACLs, across the cluster.
+    Only used when HBase security is enabled.
+    </description>
+  </property>
+
+  <property>
+    <name>hbase.security.authentication</name>
+    <value>simple</value>
+  </property>
+
+  <property>
+    <name>hbase.rpc.engine</name>
+    <value>org.apache.hadoop.hbase.ipc.WritableRpcEngine</value>
+  </property>
+
+  <property>
+    <name>hbase.security.authorization</name>
+    <value>false</value>
+    <description>Enables HBase authorization. Set the value of this property to false to disable HBase authorization.
+    </description>
+  </property>
+
+  <property>
+    <name>hbase.coprocessor.region.classes</name>
+    <value></value>
+    <description>A comma-separated list of Coprocessors that are loaded by
+    default on all tables. For any override coprocessor method, these classes
+    will be called in order. After implementing your own Coprocessor, just put
+    it in HBase's classpath and add the fully qualified class name here.
+    A coprocessor can also be loaded on demand by setting HTableDescriptor.
+    </description>
+  </property>
+
+  <property>
+    <name>hbase.coprocessor.master.classes</name>
+    <value></value>
+    <description>A comma-separated list of
+      org.apache.hadoop.hbase.coprocessor.MasterObserver coprocessors that are
+      loaded by default on the active HMaster process. For any implemented
+      coprocessor methods, the listed classes will be called in order. After
+      implementing your own MasterObserver, just put it in HBase's classpath
+      and add the fully qualified class name here.
+    </description>
+  </property>
+
+  <property>
+    <name>hbase.zookeeper.property.clientPort</name>
+    <value>2181</value>
+    <description>Property from ZooKeeper's config zoo.cfg.
+    The port at which the clients will connect.
+    </description>
+  </property>
+
+  <!--
+  The following three properties are used together to create the list of
+  host:peer_port:leader_port quorum servers for ZooKeeper.
+  -->
+  <property>
+    <name>hbase.zookeeper.quorum</name>
+    <value></value>
+    <description>Comma separated list of servers in the ZooKeeper Quorum.
+    For example, "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com".
+    By default this is set to localhost for local and pseudo-distributed modes
+    of operation. For a fully-distributed setup, this should be set to a full
+    list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set in hbase-env.sh
+    this is the list of servers which we will start/stop ZooKeeper on.
+    </description>
+  </property>
+  <!-- End of properties used to generate ZooKeeper host:port quorum list. -->
+
+  <property>
+    <name>dfs.support.append</name>
+    <value></value>
+    <description>Does HDFS allow appends to files?
+    This is an hdfs config. set in here so the hdfs client will do append support.
+    You must ensure that this config. is true serverside too when running hbase
+    (You will have to restart your cluster after setting it).
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.client.read.shortcircuit</name>
+    <value></value>
+    <description>Enable/Disable short circuit read for your client.
+    Hadoop servers should be configured to allow short circuit read
+    for the hbase user for this to take effect
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.client.read.shortcircuit.skip.checksum</name>
+    <value></value>
+    <description>Enable/disbale skipping the checksum check</description>
+  </property>
+  
+  <property>
+    <name>hbase.zookeeper.useMulti</name>
+    <value>true</value>
+    <description>Instructs HBase to make use of ZooKeeper's multi-update functionality.
+    This allows certain ZooKeeper operations to complete more quickly and prevents some issues
+    with rare Replication failure scenarios (see the release note of HBASE-2611 for an example).ยท
+    IMPORTANT: only set this to true if all ZooKeeper servers in the cluster are on version 3.4+
+    and will not be downgraded.  ZooKeeper versions before 3.4 do not support multi-update and will
+    not fail gracefully if multi-update is invoked (see ZOOKEEPER-1495).
+    </description>
+  </property>
+  <property>
+    <name>zookeeper.znode.parent</name>
+    <value>/hbase-unsecure</value>
+    <description>Root ZNode for HBase in ZooKeeper. All of HBase's ZooKeeper
+      files that are configured with a relative path will go under this node.
+      By default, all of HBase's ZooKeeper file path are configured with a
+      relative path, so they will all go under this directory unless changed.
+    </description>
+  </property>
+
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HBASE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HBASE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HBASE/metainfo.xml
new file mode 100644
index 0000000..ea7ea41
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HBASE/metainfo.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>mapred</user>
+    <comment>Non-relational distributed database and centralized service for configuration management &amp; synchronization</comment>
+    <version>0.94.6.1.3.2.0</version>
+
+    <components>
+        <component>
+            <name>HBASE_MASTER</name>
+            <category>MASTER</category>
+        </component>
+
+        <component>
+            <name>HBASE_REGIONSERVER</name>
+            <category>SLAVE</category>
+        </component>
+
+        <component>
+            <name>HBASE_CLIENT</name>
+            <category>CLIENT</category>
+        </component>
+    </components>
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HCATALOG/configuration/global.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HCATALOG/configuration/global.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HCATALOG/configuration/global.xml
new file mode 100644
index 0000000..dd89409
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HCATALOG/configuration/global.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>hcat_log_dir</name>
+    <value>/var/log/webhcat</value>
+    <description>WebHCat Log Dir.</description>
+  </property>
+  <property>
+    <name>hcat_pid_dir</name>
+    <value>/etc/run/webhcat</value>
+    <description>WebHCat Pid Dir.</description>
+  </property>
+  <property>
+    <name>hcat_user</name>
+    <value>hcat</value>
+    <description>HCat User.</description>
+  </property>
+  <property>
+    <name>webhcat_user</name>
+    <value>hcat</value>
+    <description>WebHCat User.</description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HCATALOG/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HCATALOG/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HCATALOG/metainfo.xml
new file mode 100644
index 0000000..818914e
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HCATALOG/metainfo.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>This is comment for HCATALOG service</comment>
+    <version>0.11.0.1.3.2.0</version>
+
+    <components>
+        <component>
+            <name>HCAT</name>
+            <category>CLIENT</category>
+        </component>
+    </components>
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/configuration/core-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/configuration/core-site.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/configuration/core-site.xml
new file mode 100644
index 0000000..fe0bcba
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/configuration/core-site.xml
@@ -0,0 +1,253 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+ <!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+ 
+        http://www.apache.org/licenses/LICENSE-2.0
+ 
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+ -->
+ 
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration xmlns:xi="http://www.w3.org/2001/XInclude">
+
+<!-- i/o properties -->
+
+  <property>
+    <name>io.file.buffer.size</name>
+    <value>131072</value>
+    <description>The size of buffer for use in sequence files.
+  The size of this buffer should probably be a multiple of hardware
+  page size (4096 on Intel x86), and it determines how much data is
+  buffered during read and write operations.</description>
+  </property>
+
+  <property>
+    <name>io.serializations</name>
+    <value>org.apache.hadoop.io.serializer.WritableSerialization</value>
+  </property>
+
+  <property>
+    <name>io.compression.codecs</name>
+    <value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec,org.apache.hadoop.io.compress.SnappyCodec</value>
+    <description>A list of the compression codec classes that can be used
+                 for compression/decompression.</description>
+  </property>
+
+
+  <property>
+    <name>io.compression.codec.lzo.class</name>
+    <value>com.hadoop.compression.lzo.LzoCodec</value>
+    <description>The implementation for lzo codec.</description>
+  </property>
+
+
+<!-- file system properties -->
+
+  <property>
+    <name>fs.default.name</name>
+    <!-- cluster variant -->
+    <value></value>
+    <description>The name of the default file system.  Either the
+  literal string "local" or a host:port for NDFS.</description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>fs.trash.interval</name>
+    <value>360</value>
+    <description>Number of minutes between trash checkpoints.
+  If zero, the trash feature is disabled.
+  </description>
+  </property>
+
+  <property>
+    <name>fs.checkpoint.dir</name>
+    <value></value>
+    <description>Determines where on the local filesystem the DFS secondary
+        name node should store the temporary images to merge.
+        If this is a comma-delimited list of directories then the image is
+        replicated in all of the directories for redundancy.
+    </description>
+  </property>
+
+  <property>
+    <name>fs.checkpoint.edits.dir</name>
+    <value>${fs.checkpoint.dir}</value>
+    <description>Determines where on the local filesystem the DFS secondary
+        name node should store the temporary edits to merge.
+        If this is a comma-delimited list of directoires then teh edits is
+        replicated in all of the directoires for redundancy.
+        Default value is same as fs.checkpoint.dir
+    </description>
+  </property>
+
+  <property>
+    <name>fs.checkpoint.period</name>
+    <value>21600</value>
+    <description>The number of seconds between two periodic checkpoints.
+  </description>
+  </property>
+
+  <property>
+    <name>fs.checkpoint.size</name>
+    <value>536870912</value>
+    <description>The size of the current edit log (in bytes) that triggers
+       a periodic checkpoint even if the fs.checkpoint.period hasn't expired.
+  </description>
+  </property>
+
+  <!-- ipc properties: copied from kryptonite configuration -->
+  <property>
+    <name>ipc.client.idlethreshold</name>
+    <value>8000</value>
+    <description>Defines the threshold number of connections after which
+               connections will be inspected for idleness.
+  </description>
+  </property>
+
+  <property>
+    <name>ipc.client.connection.maxidletime</name>
+    <value>30000</value>
+    <description>The maximum time after which a client will bring down the
+               connection to the server.
+  </description>
+  </property>
+
+  <property>
+    <name>ipc.client.connect.max.retries</name>
+    <value>50</value>
+    <description>Defines the maximum number of retries for IPC connections.</description>
+  </property>
+
+  <!-- Web Interface Configuration -->
+  <property>
+    <name>webinterface.private.actions</name>
+    <value>false</value>
+    <description> If set to true, the web interfaces of JT and NN may contain
+                actions, such as kill job, delete file, etc., that should
+                not be exposed to public. Enable this option if the interfaces
+                are only reachable by those who have the right authorization.
+  </description>
+  </property>
+
+ <property>
+   <name>hadoop.security.authentication</name>
+   <value>simple</value>
+   <description>
+   Set the authentication for the cluster. Valid values are: simple or
+   kerberos.
+   </description>
+ </property>
+<property>
+  <name>hadoop.security.authorization</name>
+  <value></value>
+  <description>
+     Enable authorization for different protocols.
+  </description>
+</property>
+
+  <property>
+    <name>hadoop.security.auth_to_local</name>
+    <value></value>
+<description>The mapping from kerberos principal names to local OS user names.
+  So the default rule is just "DEFAULT" which takes all principals in your default domain to their first component.
+  "omalley@APACHE.ORG" and "omalley/admin@APACHE.ORG" to "omalley", if your default domain is APACHE.ORG.
+The translations rules have 3 sections:
+      base     filter    substitution
+The base consists of a number that represents the number of components in the principal name excluding the realm and the pattern for building the name from the sections of the principal name. The base uses $0 to mean the realm, $1 to mean the first component and $2 to mean the second component.
+
+[1:$1@$0] translates "omalley@APACHE.ORG" to "omalley@APACHE.ORG"
+[2:$1] translates "omalley/admin@APACHE.ORG" to "omalley"
+[2:$1%$2] translates "omalley/admin@APACHE.ORG" to "omalley%admin"
+
+The filter is a regex in parens that must the generated string for the rule to apply.
+
+"(.*%admin)" will take any string that ends in "%admin"
+"(.*@ACME.COM)" will take any string that ends in "@ACME.COM"
+
+Finally, the substitution is a sed rule to translate a regex into a fixed string.
+
+"s/@ACME\.COM//" removes the first instance of "@ACME.COM".
+"s/@[A-Z]*\.COM//" removes the first instance of "@" followed by a name followed by ".COM".
+"s/X/Y/g" replaces all of the "X" in the name with "Y"
+
+So, if your default realm was APACHE.ORG, but you also wanted to take all principals from ACME.COM that had a single component "joe@ACME.COM", you'd do:
+
+RULE:[1:$1@$0](.@ACME.ORG)s/@.//
+DEFAULT
+
+To also translate the names with a second component, you'd make the rules:
+
+RULE:[1:$1@$0](.@ACME.ORG)s/@.//
+RULE:[2:$1@$0](.@ACME.ORG)s/@.//
+DEFAULT
+
+If you want to treat all principals from APACHE.ORG with /admin as "admin", your rules would look like:
+
+RULE[2:$1%$2@$0](.%admin@APACHE.ORG)s/./admin/
+DEFAULT
+    </description>
+  </property>
+
+<!--
+<property>
+  <name>hadoop.proxyuser.scope.function_hdp_user("hcat_user").groups</name>
+  <value></value>
+  <description>
+     Proxy group for Hadoop.
+  </description>
+</property>
+
+<property>
+  <name>hadoop.proxyuser.scope.function_hdp_user("hcat_user").hosts</name>
+  <value></value>
+  <description>
+     Proxy host for Hadoop.
+  </description>
+</property>
+
+<property>
+  <name>hadoop.proxyuser.scope.function_hdp_user("oozie_user").groups</name>
+  <value></value>
+  <description>
+     Proxy group for Hadoop.
+  </description>
+</property>
+
+<property>
+  <name>hadoop.proxyuser.scope.function_hdp_user("oozie_user").hosts</name>
+  <value></value>
+  <description>
+     Proxy host for Hadoop.
+  </description>
+</property>
+
+<property>
+  <name>hadoop.proxyuser.scope.function_hdp_user("templeton_user").groups</name>
+  <value></value>
+  <description>
+    Proxy group for templeton.
+  </description>
+</property>
+
+<property>
+  <name>hadoop.proxyuser.scope.function_hdp_user("templeton_user").hosts</name>
+  <value></value>
+  <description>
+    Proxy host for templeton.
+  </description>
+</property>
+-->
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/configuration/global.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/configuration/global.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/configuration/global.xml
new file mode 100644
index 0000000..f10b9f9
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/configuration/global.xml
@@ -0,0 +1,187 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>namenode_host</name>
+    <value></value>
+    <description>NameNode Host.</description>
+  </property>
+  <property>
+    <name>dfs_name_dir</name>
+    <value>/hadoop/hdfs/namenode</value>
+    <description>NameNode Directories.</description>
+  </property>
+  <property>
+    <name>snamenode_host</name>
+    <value></value>
+    <description>Secondary NameNode.</description>
+  </property>
+  <property>
+    <name>fs_checkpoint_dir</name>
+    <value>/hadoop/hdfs/namesecondary</value>
+    <description>Secondary NameNode checkpoint dir.</description>
+  </property>
+  <property>
+    <name>datanode_hosts</name>
+    <value></value>
+    <description>List of Datanode Hosts.</description>
+  </property>
+  <property>
+    <name>dfs_data_dir</name>
+    <value>/hadoop/hdfs/data</value>
+    <description>Data directories for Data Nodes.</description>
+  </property>
+  <property>
+    <name>hdfs_log_dir_prefix</name>
+    <value>/var/log/hadoop</value>
+    <description>Hadoop Log Dir Prefix</description>
+  </property>
+  <property>
+    <name>hadoop_pid_dir_prefix</name>
+    <value>/var/run/hadoop</value>
+    <description>Hadoop PID Dir Prefix</description>
+  </property>
+  <property>
+    <name>dfs_webhdfs_enabled</name>
+    <value>true</value>
+    <description>WebHDFS enabled</description>
+  </property>
+  <property>
+    <name>hadoop_heapsize</name>
+    <value>1024</value>
+    <description>Hadoop maximum Java heap size</description>
+  </property>
+  <property>
+    <name>namenode_heapsize</name>
+    <value>1024</value>
+    <description>NameNode Java heap size</description>
+  </property>
+  <property>
+    <name>namenode_opt_newsize</name>
+    <value>200</value>
+    <description>NameNode new generation size</description>
+  </property>
+  <property>
+    <name>namenode_opt_maxnewsize</name>
+    <value>640</value>
+    <description>NameNode maximum new generation size</description>
+  </property>
+  <property>
+    <name>datanode_du_reserved</name>
+    <value>1</value>
+    <description>Reserved space for HDFS</description>
+  </property>
+  <property>
+    <name>dtnode_heapsize</name>
+    <value>1024</value>
+    <description>DataNode maximum Java heap size</description>
+  </property>
+  <property>
+    <name>dfs_datanode_failed_volume_tolerated</name>
+    <value>0</value>
+    <description>DataNode volumes failure toleration</description>
+  </property>
+  <property>
+    <name>fs_checkpoint_period</name>
+    <value>21600</value>
+    <description>HDFS Maximum Checkpoint Delay</description>
+  </property>
+  <property>
+    <name>fs_checkpoint_size</name>
+    <value>0.5</value>
+    <description>FS Checkpoint Size.</description>
+  </property>
+  <property>
+    <name>proxyuser_group</name>
+    <value>users</value>
+    <description>Proxy user group.</description>
+  </property>
+  <property>
+    <name>dfs_exclude</name>
+    <value></value>
+    <description>HDFS Exclude hosts.</description>
+  </property>
+  <property>
+    <name>dfs_include</name>
+    <value></value>
+    <description>HDFS Include hosts.</description>
+  </property>
+  <property>
+    <name>dfs_replication</name>
+    <value>3</value>
+    <description>Default Block Replication.</description>
+  </property>
+  <property>
+    <name>dfs_block_local_path_access_user</name>
+    <value>hbase</value>
+    <description>Default Block Replication.</description>
+  </property>
+  <property>
+    <name>dfs_datanode_address</name>
+    <value>50010</value>
+    <description>Port for datanode address.</description>
+  </property>
+  <property>
+    <name>dfs_datanode_http_address</name>
+    <value>50075</value>
+    <description>Port for datanode address.</description>
+  </property>
+  <property>
+    <name>dfs_datanode_data_dir_perm</name>
+    <value>750</value>
+    <description>Datanode dir perms.</description>
+  </property>
+
+  <property>
+    <name>security_enabled</name>
+    <value>false</value>
+    <description>Hadoop Security</description>
+  </property>
+  <property>
+    <name>kerberos_domain</name>
+    <value>EXAMPLE.COM</value>
+    <description>Kerberos realm.</description>
+  </property>
+  <property>
+    <name>kadmin_pw</name>
+    <value></value>
+    <description>Kerberos realm admin password</description>
+  </property>
+  <property>
+    <name>keytab_path</name>
+    <value>/etc/security/keytabs</value>
+    <description>Kerberos keytab path.</description>
+  </property>
+
+    <property>
+    <name>namenode_formatted_mark_dir</name>
+    <value>/var/run/hadoop/hdfs/namenode/formatted/</value>
+    <description>Formatteed Mark Directory.</description>
+  </property>
+    <property>
+    <name>hdfs_user</name>
+    <value>hdfs</value>
+    <description>User and Groups.</description>
+  </property>
+  
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/configuration/hadoop-policy.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/configuration/hadoop-policy.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/configuration/hadoop-policy.xml
new file mode 100644
index 0000000..900da99
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/configuration/hadoop-policy.xml
@@ -0,0 +1,134 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration>
+  <property>
+    <name>security.client.protocol.acl</name>
+    <value>*</value>
+    <description>ACL for ClientProtocol, which is used by user code
+    via the DistributedFileSystem.
+    The ACL is a comma-separated list of user and group names. The user and
+    group list is separated by a blank. For e.g. "alice,bob users,wheel".
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+  <property>
+    <name>security.client.datanode.protocol.acl</name>
+    <value>*</value>
+    <description>ACL for ClientDatanodeProtocol, the client-to-datanode protocol
+    for block recovery.
+    The ACL is a comma-separated list of user and group names. The user and
+    group list is separated by a blank. For e.g. "alice,bob users,wheel".
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+  <property>
+    <name>security.datanode.protocol.acl</name>
+    <value>*</value>
+    <description>ACL for DatanodeProtocol, which is used by datanodes to
+    communicate with the namenode.
+    The ACL is a comma-separated list of user and group names. The user and
+    group list is separated by a blank. For e.g. "alice,bob users,wheel".
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+  <property>
+    <name>security.inter.datanode.protocol.acl</name>
+    <value>*</value>
+    <description>ACL for InterDatanodeProtocol, the inter-datanode protocol
+    for updating generation timestamp.
+    The ACL is a comma-separated list of user and group names. The user and
+    group list is separated by a blank. For e.g. "alice,bob users,wheel".
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+  <property>
+    <name>security.namenode.protocol.acl</name>
+    <value>*</value>
+    <description>ACL for NamenodeProtocol, the protocol used by the secondary
+    namenode to communicate with the namenode.
+    The ACL is a comma-separated list of user and group names. The user and
+    group list is separated by a blank. For e.g. "alice,bob users,wheel".
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+  <property>
+    <name>security.inter.tracker.protocol.acl</name>
+    <value>*</value>
+    <description>ACL for InterTrackerProtocol, used by the tasktrackers to
+    communicate with the jobtracker.
+    The ACL is a comma-separated list of user and group names. The user and
+    group list is separated by a blank. For e.g. "alice,bob users,wheel".
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+  <property>
+    <name>security.job.submission.protocol.acl</name>
+    <value>*</value>
+    <description>ACL for JobSubmissionProtocol, used by job clients to
+    communciate with the jobtracker for job submission, querying job status etc.
+    The ACL is a comma-separated list of user and group names. The user and
+    group list is separated by a blank. For e.g. "alice,bob users,wheel".
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+  <property>
+    <name>security.task.umbilical.protocol.acl</name>
+    <value>*</value>
+    <description>ACL for TaskUmbilicalProtocol, used by the map and reduce
+    tasks to communicate with the parent tasktracker.
+    The ACL is a comma-separated list of user and group names. The user and
+    group list is separated by a blank. For e.g. "alice,bob users,wheel".
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+ <property>
+    <name>security.admin.operations.protocol.acl</name>
+    <value></value>
+    <description>ACL for AdminOperationsProtocol. Used for admin commands.
+    The ACL is a comma-separated list of user and group names. The user and
+    group list is separated by a blank. For e.g. "alice,bob users,wheel".
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+  <property>
+    <name>security.refresh.usertogroups.mappings.protocol.acl</name>
+    <value></value>
+    <description>ACL for RefreshUserMappingsProtocol. Used to refresh
+    users mappings. The ACL is a comma-separated list of user and
+    group names. The user and group list is separated by a blank. For
+    e.g. "alice,bob users,wheel".  A special value of "*" means all
+    users are allowed.</description>
+  </property>
+
+<property>
+    <name>security.refresh.policy.protocol.acl</name>
+    <value></value>
+    <description>ACL for RefreshAuthorizationPolicyProtocol, used by the
+    dfsadmin and mradmin commands to refresh the security policy in-effect.
+    The ACL is a comma-separated list of user and group names. The user and
+    group list is separated by a blank. For e.g. "alice,bob users,wheel".
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/configuration/hdfs-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/configuration/hdfs-site.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/configuration/hdfs-site.xml
new file mode 100644
index 0000000..bd978a9
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/configuration/hdfs-site.xml
@@ -0,0 +1,454 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration>
+
+<!-- file system properties -->
+
+  <property>
+    <name>dfs.name.dir</name>
+    <!-- cluster variant -->
+    <value></value>
+    <description>Determines where on the local filesystem the DFS name node
+      should store the name table.  If this is a comma-delimited list
+      of directories then the name table is replicated in all of the
+      directories, for redundancy. </description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>dfs.support.append</name>
+    <value></value>
+    <description>to enable dfs append</description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>dfs.webhdfs.enabled</name>
+    <value></value>
+    <description>to enable webhdfs</description>
+    <final>true</final>
+  </property>
+
+ <property>
+    <name>dfs.datanode.socket.write.timeout</name>
+    <value>0</value>
+    <description>DFS Client write socket timeout</description>
+  </property>
+
+  <property>
+    <name>dfs.datanode.failed.volumes.tolerated</name>
+    <value></value>
+    <description>#of failed disks dn would tolerate</description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>dfs.block.local-path-access.user</name>
+    <value></value>
+    <description>the user who is allowed to perform short
+    circuit reads.
+    </description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>dfs.data.dir</name>
+    <value></value>
+    <description>Determines where on the local filesystem an DFS data node
+  should store its blocks.  If this is a comma-delimited
+  list of directories, then data will be stored in all named
+  directories, typically on different devices.
+  Directories that do not exist are ignored.
+  </description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>dfs.hosts.exclude</name>
+    <value></value>
+    <description>Names a file that contains a list of hosts that are
+    not permitted to connect to the namenode.  The full pathname of the
+    file must be specified.  If the value is empty, no hosts are
+    excluded.</description>
+  </property>
+
+  <property>
+    <name>dfs.hosts</name>
+    <value></value>
+    <description>Names a file that contains a list of hosts that are
+    permitted to connect to the namenode. The full pathname of the file
+    must be specified.  If the value is empty, all hosts are
+    permitted.</description>
+  </property>
+
+  <property>
+    <name>dfs.replication.max</name>
+    <value>50</value>
+    <description>Maximal block replication.
+  </description>
+  </property>
+
+  <property>
+    <name>dfs.replication</name>
+    <value></value>
+    <description>Default block replication.
+  </description>
+  </property>
+
+  <property>
+    <name>dfs.heartbeat.interval</name>
+    <value>3</value>
+    <description>Determines datanode heartbeat interval in seconds.</description>
+  </property>
+
+  <property>
+    <name>dfs.safemode.threshold.pct</name>
+    <value>1.0f</value>
+    <description>
+        Specifies the percentage of blocks that should satisfy
+        the minimal replication requirement defined by dfs.replication.min.
+        Values less than or equal to 0 mean not to start in safe mode.
+        Values greater than 1 will make safe mode permanent.
+        </description>
+  </property>
+
+  <property>
+    <name>dfs.balance.bandwidthPerSec</name>
+    <value>6250000</value>
+    <description>
+        Specifies the maximum amount of bandwidth that each datanode
+        can utilize for the balancing purpose in term of
+        the number of bytes per second.
+  </description>
+  </property>
+
+  <property>
+    <name>dfs.https.port</name>
+    <value>50070</value>
+    <description>
+      This property is used by HftpFileSystem.
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.datanode.address</name>
+    <value></value>
+  </property>
+
+  <property>
+    <name>dfs.datanode.http.address</name>
+    <value></value>
+  </property>
+
+  <property>
+    <name>dfs.block.size</name>
+    <value>134217728</value>
+    <description>The default block size for new files.</description>
+  </property>
+
+  <property>
+    <name>dfs.http.address</name>
+    <value></value>
+<description>The name of the default file system.  Either the
+literal string "local" or a host:port for NDFS.</description>
+<final>true</final>
+</property>
+
+<property>
+<name>dfs.datanode.du.reserved</name>
+<!-- cluster variant -->
+<value></value>
+<description>Reserved space in bytes per volume. Always leave this much space free for non dfs use.
+</description>
+</property>
+
+<property>
+<name>dfs.datanode.ipc.address</name>
+<value>0.0.0.0:8010</value>
+<description>
+The datanode ipc server address and port.
+If the port is 0 then the server will start on a free port.
+</description>
+</property>
+
+<property>
+<name>dfs.blockreport.initialDelay</name>
+<value>120</value>
+<description>Delay for first block report in seconds.</description>
+</property>
+
+<property>
+<name>dfs.datanode.du.pct</name>
+<value>0.85f</value>
+<description>When calculating remaining space, only use this percentage of the real available space
+</description>
+</property>
+
+<property>
+<name>dfs.namenode.handler.count</name>
+<value>40</value>
+<description>The number of server threads for the namenode.</description>
+</property>
+
+<property>
+<name>dfs.datanode.max.xcievers</name>
+<value>4096</value>
+<description>PRIVATE CONFIG VARIABLE</description>
+</property>
+
+<!-- Permissions configuration -->
+
+<property>
+<name>dfs.umaskmode</name>
+<value>077</value>
+<description>
+The octal umask used when creating files and directories.
+</description>
+</property>
+
+<property>
+<name>dfs.web.ugi</name>
+<!-- cluster variant -->
+<value>gopher,gopher</value>
+<description>The user account used by the web interface.
+Syntax: USERNAME,GROUP1,GROUP2, ...
+</description>
+</property>
+
+<property>
+<name>dfs.permissions</name>
+<value>true</value>
+<description>
+If "true", enable permission checking in HDFS.
+If "false", permission checking is turned off,
+but all other behavior is unchanged.
+Switching from one parameter value to the other does not change the mode,
+owner or group of files or directories.
+</description>
+</property>
+
+<property>
+<name>dfs.permissions.supergroup</name>
+<value>hdfs</value>
+<description>The name of the group of super-users.</description>
+</property>
+
+<property>
+<name>dfs.namenode.handler.count</name>
+<value>100</value>
+<description>Added to grow Queue size so that more client connections are allowed</description>
+</property>
+
+<property>
+<name>ipc.server.max.response.size</name>
+<value>5242880</value>
+</property>
+<property>
+<name>dfs.block.access.token.enable</name>
+<value>true</value>
+<description>
+If "true", access tokens are used as capabilities for accessing datanodes.
+If "false", no access tokens are checked on accessing datanodes.
+</description>
+</property>
+
+<property>
+<name>dfs.namenode.kerberos.principal</name>
+<value></value>
+<description>
+Kerberos principal name for the NameNode
+</description>
+</property>
+
+<property>
+<name>dfs.secondary.namenode.kerberos.principal</name>
+<value></value>
+    <description>
+        Kerberos principal name for the secondary NameNode.
+    </description>
+  </property>
+
+
+<!--
+  This is KRB DOMAIN specific. The FQDN of the namenode has to be mentioned.
+-->
+  <property>
+    <name>dfs.namenode.kerberos.https.principal</name>
+    <value></value>
+     <description>The Kerberos principal for the host that the NameNode runs on.</description>
+
+  </property>
+
+  <property>
+    <name>dfs.secondary.namenode.kerberos.https.principal</name>
+    <value></value>
+    <description>The Kerberos principal for the hostthat the secondary NameNode runs on.</description>
+
+  </property>
+
+  <property>
+    <!-- cluster variant -->
+    <name>dfs.secondary.http.address</name>
+    <value></value>
+    <description>Address of secondary namenode web server</description>
+  </property>
+
+  <property>
+    <name>dfs.secondary.https.port</name>
+    <value>50490</value>
+    <description>The https port where secondary-namenode binds</description>
+  </property>
+
+  <property>
+    <name>dfs.web.authentication.kerberos.principal</name>
+    <value></value>
+    <description>
+      The HTTP Kerberos principal used by Hadoop-Auth in the HTTP endpoint.
+      The HTTP Kerberos principal MUST start with 'HTTP/' per Kerberos
+      HTTP SPENGO specification.
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.web.authentication.kerberos.keytab</name>
+    <value></value>
+    <description>
+      The Kerberos keytab file with the credentials for the
+      HTTP Kerberos principal used by Hadoop-Auth in the HTTP endpoint.
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.datanode.kerberos.principal</name>
+    <value></value>
+ <description>
+        The Kerberos principal that the DataNode runs as. "_HOST" is replaced by the real host name.
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.namenode.keytab.file</name>
+    <value></value>
+ <description>
+        Combined keytab file containing the namenode service and host principals.
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.secondary.namenode.keytab.file</name>
+    <value></value>
+  <description>
+        Combined keytab file containing the namenode service and host principals.
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.datanode.keytab.file</name>
+    <value></value>
+ <description>
+        The filename of the keytab file for the DataNode.
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.https.port</name>
+    <value>50470</value>
+ <description>The https port where namenode binds</description>
+
+  </property>
+
+  <property>
+    <name>dfs.https.address</name>
+    <value></value>
+  <description>The https address where namenode binds</description>
+
+  </property>
+
+  <property>
+    <name>dfs.datanode.data.dir.perm</name>
+    <value></value>
+<description>The permissions that should be there on dfs.data.dir
+directories. The datanode will not come up if the permissions are
+different on existing dfs.data.dir directories. If the directories
+don't exist, they will be created with this permission.</description>
+  </property>
+
+  <property>
+  <name>dfs.access.time.precision</name>
+  <value>0</value>
+  <description>The access time for HDFS file is precise upto this value.
+               The default value is 1 hour. Setting a value of 0 disables
+               access times for HDFS.
+  </description>
+</property>
+
+<property>
+ <name>dfs.cluster.administrators</name>
+ <value> hdfs</value>
+ <description>ACL for who all can view the default servlets in the HDFS</description>
+</property>
+
+<property>
+  <name>ipc.server.read.threadpool.size</name>
+  <value>5</value>
+  <description></description>
+</property>
+
+<property>
+  <name>dfs.datanode.failed.volumes.tolerated</name>
+  <value>0</value>
+  <description>Number of failed disks datanode would tolerate</description>
+</property>
+
+  <property>
+    <name>dfs.namenode.avoid.read.stale.datanode</name>
+    <value>true</value>
+    <description>
+      Indicate whether or not to avoid reading from stale datanodes whose
+      heartbeat messages have not been received by the namenode for more than a
+      specified time interval.
+    </description>
+  </property>
+  <property>
+    <name>dfs.namenode.avoid.write.stale.datanode</name>
+    <value>true</value>
+    <description>
+      Indicate whether or not to avoid writing to stale datanodes whose
+      heartbeat messages have not been received by the namenode for more than a
+      specified time interval.
+    </description>
+  </property>
+  <property>
+    <name>dfs.namenode.write.stale.datanode.ratio</name>
+    <value>1.0f</value>
+    <description>When the ratio of number stale datanodes to total datanodes marked is greater
+      than this ratio, stop avoiding writing to stale nodes so as to prevent causing hotspots.
+    </description>
+  </property>
+  <property>
+    <name>dfs.namenode.stale.datanode.interval</name>
+    <value>30000</value>
+    <description>Datanode is stale after not getting a heartbeat in this interval in ms</description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/metainfo.xml
new file mode 100644
index 0000000..2729261
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/metainfo.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>Apache Hadoop Distributed File System</comment>
+    <version>1.2.0.1.3.2.0</version>
+
+    <components>
+        <component>
+            <name>NAMENODE</name>
+            <category>MASTER</category>
+        </component>
+
+        <component>
+            <name>DATANODE</name>
+            <category>SLAVE</category>
+        </component>
+
+        <component>
+            <name>SECONDARY_NAMENODE</name>
+            <category>MASTER</category>
+        </component>
+
+        <component>
+            <name>HDFS_CLIENT</name>
+            <category>CLIENT</category>
+        </component>
+    </components>
+
+
+</metainfo>


[08/20] git commit: AMBARI-3647. Fix the version numbers for all stack components for Stack. (mahadev)

Posted by sr...@apache.org.
AMBARI-3647. Fix the version numbers for all stack components for Stack. (mahadev)


Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/aca2dce8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/aca2dce8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/aca2dce8

Branch: refs/heads/branch-1.4-bk
Commit: aca2dce88dde7b9f8ff90b340944f0400d153cbd
Parents: 593d408
Author: Mahadev Konar <ma...@apache.org>
Authored: Thu Oct 31 16:26:24 2013 -0700
Committer: Mahadev Konar <ma...@apache.org>
Committed: Thu Oct 31 16:26:24 2013 -0700

----------------------------------------------------------------------
 .../main/resources/stacks/HDP/1.3.3/services/FLUME/metainfo.xml    | 2 +-
 .../main/resources/stacks/HDP/1.3.3/services/HBASE/metainfo.xml    | 2 +-
 .../main/resources/stacks/HDP/1.3.3/services/HCATALOG/metainfo.xml | 2 +-
 .../src/main/resources/stacks/HDP/1.3.3/services/HDFS/metainfo.xml | 2 +-
 .../src/main/resources/stacks/HDP/1.3.3/services/HIVE/metainfo.xml | 2 +-
 .../src/main/resources/stacks/HDP/1.3.3/services/HUE/metainfo.xml  | 2 +-
 .../resources/stacks/HDP/1.3.3/services/MAPREDUCE/metainfo.xml     | 2 +-
 .../main/resources/stacks/HDP/1.3.3/services/OOZIE/metainfo.xml    | 2 +-
 .../src/main/resources/stacks/HDP/1.3.3/services/PIG/metainfo.xml  | 2 +-
 .../main/resources/stacks/HDP/1.3.3/services/SQOOP/metainfo.xml    | 2 +-
 .../main/resources/stacks/HDP/1.3.3/services/WEBHCAT/metainfo.xml  | 2 +-
 .../resources/stacks/HDP/1.3.3/services/ZOOKEEPER/metainfo.xml     | 2 +-
 .../resources/stacks/HDPLocal/1.3.3/services/FLUME/metainfo.xml    | 2 +-
 .../resources/stacks/HDPLocal/1.3.3/services/HBASE/metainfo.xml    | 2 +-
 .../resources/stacks/HDPLocal/1.3.3/services/HCATALOG/metainfo.xml | 2 +-
 .../resources/stacks/HDPLocal/1.3.3/services/HDFS/metainfo.xml     | 2 +-
 .../resources/stacks/HDPLocal/1.3.3/services/HIVE/metainfo.xml     | 2 +-
 .../main/resources/stacks/HDPLocal/1.3.3/services/HUE/metainfo.xml | 2 +-
 .../stacks/HDPLocal/1.3.3/services/MAPREDUCE/metainfo.xml          | 2 +-
 .../resources/stacks/HDPLocal/1.3.3/services/OOZIE/metainfo.xml    | 2 +-
 .../main/resources/stacks/HDPLocal/1.3.3/services/PIG/metainfo.xml | 2 +-
 .../resources/stacks/HDPLocal/1.3.3/services/SQOOP/metainfo.xml    | 2 +-
 .../resources/stacks/HDPLocal/1.3.3/services/WEBHCAT/metainfo.xml  | 2 +-
 .../stacks/HDPLocal/1.3.3/services/ZOOKEEPER/metainfo.xml          | 2 +-
 24 files changed, 24 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/FLUME/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/FLUME/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/FLUME/metainfo.xml
index 185f685..13eba83 100644
--- a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/FLUME/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/FLUME/metainfo.xml
@@ -18,7 +18,7 @@
 <metainfo>
     <user>root</user>
     <comment>Flume is a distributed, reliable, and available system for efficiently collecting, aggregating and moving large amounts of log data from many different sources to a centralized data store.</comment>
-    <version>1.3.1.1.3.2.0</version>
+    <version>1.3.1.1.3.3.0</version>
 
     <components>
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HBASE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HBASE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HBASE/metainfo.xml
index ea7ea41..6cffb1f 100644
--- a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HBASE/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HBASE/metainfo.xml
@@ -18,7 +18,7 @@
 <metainfo>
     <user>mapred</user>
     <comment>Non-relational distributed database and centralized service for configuration management &amp; synchronization</comment>
-    <version>0.94.6.1.3.2.0</version>
+    <version>0.94.6.1.3.3.0</version>
 
     <components>
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HCATALOG/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HCATALOG/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HCATALOG/metainfo.xml
index 818914e..8e78530 100644
--- a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HCATALOG/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HCATALOG/metainfo.xml
@@ -18,7 +18,7 @@
 <metainfo>
     <user>root</user>
     <comment>This is comment for HCATALOG service</comment>
-    <version>0.11.0.1.3.2.0</version>
+    <version>0.11.0.1.3.3.0</version>
 
     <components>
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/metainfo.xml
index 2729261..e33be3c 100644
--- a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HDFS/metainfo.xml
@@ -18,7 +18,7 @@
 <metainfo>
     <user>root</user>
     <comment>Apache Hadoop Distributed File System</comment>
-    <version>1.2.0.1.3.2.0</version>
+    <version>1.2.0.1.3.3.0</version>
 
     <components>
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HIVE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HIVE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HIVE/metainfo.xml
index 676c610..4ee02e6 100644
--- a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HIVE/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HIVE/metainfo.xml
@@ -18,7 +18,7 @@
 <metainfo>
     <user>root</user>
     <comment>Data warehouse system for ad-hoc queries &amp; analysis of large datasets and table &amp; storage management service</comment>
-    <version>0.11.0.1.3.2.0</version>
+    <version>0.11.0.1.3.3.0</version>
 
     <components>        
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HUE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HUE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HUE/metainfo.xml
index 56654df..ba580ca 100644
--- a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HUE/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/HUE/metainfo.xml
@@ -19,7 +19,7 @@
     <user>root</user>
     <comment>Hue is a graphical user interface to operate and develop
       applications for Apache Hadoop.</comment>
-    <version>2.2.0.1.3.2.0</version>
+    <version>2.2.0.1.3.3.0</version>
 
     <components>
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/metainfo.xml
index 757bbb5..b3eb72a 100644
--- a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/MAPREDUCE/metainfo.xml
@@ -18,7 +18,7 @@
 <metainfo>
     <user>mapred</user>
     <comment>Apache Hadoop Distributed Processing Framework</comment>
-    <version>1.2.0.1.3.2.0</version>
+    <version>1.2.0.1.3.3.0</version>
 
     <components>
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/OOZIE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/OOZIE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/OOZIE/metainfo.xml
index 3f9fff5..bc33c0b 100644
--- a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/OOZIE/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/OOZIE/metainfo.xml
@@ -18,7 +18,7 @@
 <metainfo>
     <user>root</user>
     <comment>System for workflow coordination and execution of Apache Hadoop jobs.  This also includes the installation of the optional Oozie Web Console which relies on and will install the &lt;a target="_blank" href="http://www.sencha.com/products/extjs/license/"&gt;ExtJS&lt;/a&gt; Library.</comment>
-    <version>3.3.2.1.3.2.0</version>
+    <version>3.3.2.1.3.3.0</version>
 
     <components>
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/PIG/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/PIG/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/PIG/metainfo.xml
index 8efacb4..d29d56d 100644
--- a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/PIG/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/PIG/metainfo.xml
@@ -18,7 +18,7 @@
 <metainfo>
     <user>root</user>
     <comment>Scripting platform for analyzing large datasets</comment>
-    <version>0.11.1.1.3.2.0</version>
+    <version>0.11.1.1.3.3.0</version>
 
     <components>
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/SQOOP/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/SQOOP/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/SQOOP/metainfo.xml
index 1f03a35..ccf40b4 100644
--- a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/SQOOP/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/SQOOP/metainfo.xml
@@ -18,7 +18,7 @@
 <metainfo>
     <user>root</user>
     <comment>Tool for transferring bulk data between Apache Hadoop and structured data stores such as relational databases</comment>
-    <version>1.4.3.1.3.2.0</version>
+    <version>1.4.3.1.3.3.0</version>
 
     <components>
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/WEBHCAT/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/WEBHCAT/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/WEBHCAT/metainfo.xml
index c47b34e..10babb1 100644
--- a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/WEBHCAT/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/WEBHCAT/metainfo.xml
@@ -18,7 +18,7 @@
 <metainfo>
     <user>root</user>
     <comment>This is comment for WEBHCAT service</comment>
-    <version>0.11.0.1.3.2.0</version>
+    <version>0.11.0.1.3.3.0</version>
 
     <components>
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/ZOOKEEPER/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/ZOOKEEPER/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/ZOOKEEPER/metainfo.xml
index b18ae7e..827f870 100644
--- a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/ZOOKEEPER/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/ZOOKEEPER/metainfo.xml
@@ -18,7 +18,7 @@
 <metainfo>
     <user>root</user>
     <comment>Centralized service which provides highly reliable distributed coordination</comment>
-    <version>3.4.5.1.3.2.0</version>
+    <version>3.4.5.1.3.3.0</version>
 
     <components>
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/FLUME/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/FLUME/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/FLUME/metainfo.xml
index 185f685..13eba83 100644
--- a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/FLUME/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/FLUME/metainfo.xml
@@ -18,7 +18,7 @@
 <metainfo>
     <user>root</user>
     <comment>Flume is a distributed, reliable, and available system for efficiently collecting, aggregating and moving large amounts of log data from many different sources to a centralized data store.</comment>
-    <version>1.3.1.1.3.2.0</version>
+    <version>1.3.1.1.3.3.0</version>
 
     <components>
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HBASE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HBASE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HBASE/metainfo.xml
index ea7ea41..6cffb1f 100644
--- a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HBASE/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HBASE/metainfo.xml
@@ -18,7 +18,7 @@
 <metainfo>
     <user>mapred</user>
     <comment>Non-relational distributed database and centralized service for configuration management &amp; synchronization</comment>
-    <version>0.94.6.1.3.2.0</version>
+    <version>0.94.6.1.3.3.0</version>
 
     <components>
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HCATALOG/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HCATALOG/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HCATALOG/metainfo.xml
index 818914e..8e78530 100644
--- a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HCATALOG/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HCATALOG/metainfo.xml
@@ -18,7 +18,7 @@
 <metainfo>
     <user>root</user>
     <comment>This is comment for HCATALOG service</comment>
-    <version>0.11.0.1.3.2.0</version>
+    <version>0.11.0.1.3.3.0</version>
 
     <components>
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/metainfo.xml
index 2729261..e33be3c 100644
--- a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/metainfo.xml
@@ -18,7 +18,7 @@
 <metainfo>
     <user>root</user>
     <comment>Apache Hadoop Distributed File System</comment>
-    <version>1.2.0.1.3.2.0</version>
+    <version>1.2.0.1.3.3.0</version>
 
     <components>
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HIVE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HIVE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HIVE/metainfo.xml
index 676c610..4ee02e6 100644
--- a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HIVE/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HIVE/metainfo.xml
@@ -18,7 +18,7 @@
 <metainfo>
     <user>root</user>
     <comment>Data warehouse system for ad-hoc queries &amp; analysis of large datasets and table &amp; storage management service</comment>
-    <version>0.11.0.1.3.2.0</version>
+    <version>0.11.0.1.3.3.0</version>
 
     <components>        
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HUE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HUE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HUE/metainfo.xml
index 56654df..ba580ca 100644
--- a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HUE/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HUE/metainfo.xml
@@ -19,7 +19,7 @@
     <user>root</user>
     <comment>Hue is a graphical user interface to operate and develop
       applications for Apache Hadoop.</comment>
-    <version>2.2.0.1.3.2.0</version>
+    <version>2.2.0.1.3.3.0</version>
 
     <components>
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/metainfo.xml
index 757bbb5..b3eb72a 100644
--- a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/MAPREDUCE/metainfo.xml
@@ -18,7 +18,7 @@
 <metainfo>
     <user>mapred</user>
     <comment>Apache Hadoop Distributed Processing Framework</comment>
-    <version>1.2.0.1.3.2.0</version>
+    <version>1.2.0.1.3.3.0</version>
 
     <components>
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/OOZIE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/OOZIE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/OOZIE/metainfo.xml
index 3f9fff5..bc33c0b 100644
--- a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/OOZIE/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/OOZIE/metainfo.xml
@@ -18,7 +18,7 @@
 <metainfo>
     <user>root</user>
     <comment>System for workflow coordination and execution of Apache Hadoop jobs.  This also includes the installation of the optional Oozie Web Console which relies on and will install the &lt;a target="_blank" href="http://www.sencha.com/products/extjs/license/"&gt;ExtJS&lt;/a&gt; Library.</comment>
-    <version>3.3.2.1.3.2.0</version>
+    <version>3.3.2.1.3.3.0</version>
 
     <components>
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/PIG/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/PIG/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/PIG/metainfo.xml
index 8efacb4..d29d56d 100644
--- a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/PIG/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/PIG/metainfo.xml
@@ -18,7 +18,7 @@
 <metainfo>
     <user>root</user>
     <comment>Scripting platform for analyzing large datasets</comment>
-    <version>0.11.1.1.3.2.0</version>
+    <version>0.11.1.1.3.3.0</version>
 
     <components>
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/SQOOP/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/SQOOP/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/SQOOP/metainfo.xml
index 1f03a35..ccf40b4 100644
--- a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/SQOOP/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/SQOOP/metainfo.xml
@@ -18,7 +18,7 @@
 <metainfo>
     <user>root</user>
     <comment>Tool for transferring bulk data between Apache Hadoop and structured data stores such as relational databases</comment>
-    <version>1.4.3.1.3.2.0</version>
+    <version>1.4.3.1.3.3.0</version>
 
     <components>
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/WEBHCAT/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/WEBHCAT/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/WEBHCAT/metainfo.xml
index c47b34e..10babb1 100644
--- a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/WEBHCAT/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/WEBHCAT/metainfo.xml
@@ -18,7 +18,7 @@
 <metainfo>
     <user>root</user>
     <comment>This is comment for WEBHCAT service</comment>
-    <version>0.11.0.1.3.2.0</version>
+    <version>0.11.0.1.3.3.0</version>
 
     <components>
         <component>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aca2dce8/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/ZOOKEEPER/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/ZOOKEEPER/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/ZOOKEEPER/metainfo.xml
index b18ae7e..827f870 100644
--- a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/ZOOKEEPER/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/ZOOKEEPER/metainfo.xml
@@ -18,7 +18,7 @@
 <metainfo>
     <user>root</user>
     <comment>Centralized service which provides highly reliable distributed coordination</comment>
-    <version>3.4.5.1.3.2.0</version>
+    <version>3.4.5.1.3.3.0</version>
 
     <components>
         <component>


[19/20] git commit: AMBARI-3752. MR jobs are hanging on a 2-node cluster with default configuration. (srimanth)

Posted by sr...@apache.org.
AMBARI-3752. MR jobs are hanging on a 2-node cluster with default configuration. (srimanth)

Conflicts:
	ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js


Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/ef5b0aca
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/ef5b0aca
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/ef5b0aca

Branch: refs/heads/branch-1.4-bk
Commit: ef5b0aca6870cf6bd28f6fd5b6d3304831b92767
Parents: 5b204e1
Author: Srimanth Gunturi <sg...@hortonworks.com>
Authored: Tue Nov 12 14:48:11 2013 -0800
Committer: Srimanth Gunturi <sg...@hortonworks.com>
Committed: Tue Nov 12 16:58:58 2013 -0800

----------------------------------------------------------------------
 .../yarn_defaults_provider.js                   | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/ef5b0aca/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js b/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
index 4b49f0f..c12a300 100644
--- a/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
+++ b/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
@@ -86,8 +86,7 @@ App.YARNDefaultsProvider = App.DefaultsProvider.create({
 
   /**
    * Maximum number of containers allowed per node
-   * max (2*cores,min (1.8*DISKS,(Total available RAM) / MIN_CONTAINER_SIZE)))
-   * min (2*CORES, 1.8*DISKS, (Total available RAM) / MIN_CONTAINER_SIZE)
+   * max(3, min (2*cores,min (1.8*DISKS,(Total available RAM) / MIN_CONTAINER_SIZE))))
    */
   containers: function () {
     if (!this.clusterDataIsValid()) return null;
@@ -106,12 +105,12 @@ App.YARNDefaultsProvider = App.DefaultsProvider.create({
     }
     ram *= this.get('GB');
     ram /= containerSize;
-    return Math.round(Math.min(cpu, Math.min(disk, ram)));
+    return Math.round(Math.max(3, Math.min(cpu, Math.min(disk, ram))));
   }.property('clusterData.cpu', 'clusterData.ram', 'clusterData.hBaseInstalled', 'clusterData.disk', 'reservedRam', 'hBaseRam', 'recommendedMinimumContainerSize'),
 
   /**
    * Amount of RAM per container.
-   * Calculated to be max(1GB, RAM - reservedRam - hBaseRam) / containers
+   * Calculated to be max(2GB, RAM - reservedRam - hBaseRam) / containers
    *
    * @return Memory per container in MB. If greater than 1GB, 
    *          value will be in multiples of 512. 
@@ -125,10 +124,10 @@ App.YARNDefaultsProvider = App.DefaultsProvider.create({
     }
     // On low memory systems, memory left over after
     // removing reserved-RAM and HBase might be
-    // less than 1GB (even negative). If so, we force
-    // a 1GB value relying on virtual memory.
-    if (ram < 1) {
-      ram = 1;
+    // less than 2GB (even negative). If so, we force
+    // a 2GB value relying on virtual memory.
+    if (ram < 2) {
+      ram = 2;
     }
     ram *= this.get('GB');
     var container_ram = Math.abs(ram / containers);
@@ -138,12 +137,11 @@ App.YARNDefaultsProvider = App.DefaultsProvider.create({
   }.property('recommendedMinimumContainerSize', 'containers', 'clusterData.ram', 'clusterData.hBaseInstalled', 'hBaseRam', 'reservedRam'),
 
   mapMemory: function () {
-    return this.get('ramPerContainer');
+    return Math.floor(this.get('ramPerContainer') / 2);
   }.property('ramPerContainer'),
 
   reduceMemory: function () {
-    var ramPerContainer = this.get('ramPerContainer');
-    return ramPerContainer <= 2048 ? 2 * ramPerContainer : ramPerContainer;
+    return this.get('ramPerContainer');
   }.property('ramPerContainer'),
 
   amMemory: function () {


[04/20] AMBARI-3579. Adding new stack based on hadoop 1.0. (mahadev)

Posted by sr...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/SQOOP/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/SQOOP/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/SQOOP/metainfo.xml
new file mode 100644
index 0000000..1f03a35
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/SQOOP/metainfo.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>Tool for transferring bulk data between Apache Hadoop and structured data stores such as relational databases</comment>
+    <version>1.4.3.1.3.2.0</version>
+
+    <components>
+        <component>
+            <name>SQOOP</name>
+            <category>CLIENT</category>
+        </component>
+    </components>
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/WEBHCAT/configuration/webhcat-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/WEBHCAT/configuration/webhcat-site.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/WEBHCAT/configuration/webhcat-site.xml
new file mode 100644
index 0000000..31d0113
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/WEBHCAT/configuration/webhcat-site.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+<!-- The default settings for Templeton. -->
+<!-- Edit templeton-site.xml to change settings for your local -->
+<!-- install. -->
+
+<configuration>
+
+  <property>
+    <name>templeton.port</name>
+      <value>50111</value>
+    <description>The HTTP port for the main server.</description>
+  </property>
+
+  <property>
+    <name>templeton.hadoop.conf.dir</name>
+    <value>/etc/hadoop/conf</value>
+    <description>The path to the Hadoop configuration.</description>
+  </property>
+
+  <property>
+    <name>templeton.jar</name>
+    <value>/usr/lib/hcatalog/share/webhcat/svr/webhcat.jar</value>
+    <description>The path to the Templeton jar file.</description>
+  </property>
+
+  <property>
+    <name>templeton.libjars</name>
+    <value>/usr/lib/zookeeper/zookeeper.jar</value>
+    <description>Jars to add the the classpath.</description>
+  </property>
+
+
+  <property>
+    <name>templeton.hadoop</name>
+    <value>/usr/bin/hadoop</value>
+    <description>The path to the Hadoop executable.</description>
+  </property>
+
+  <property>
+    <name>templeton.pig.archive</name>
+    <value>hdfs:///apps/webhcat/pig.tar.gz</value>
+    <description>The path to the Pig archive.</description>
+  </property>
+
+  <property>
+    <name>templeton.pig.path</name>
+    <value>pig.tar.gz/pig/bin/pig</value>
+    <description>The path to the Pig executable.</description>
+  </property>
+
+  <property>
+    <name>templeton.hcat</name>
+    <value>/usr/bin/hcat</value>
+    <description>The path to the hcatalog executable.</description>
+  </property>
+
+  <property>
+    <name>templeton.hive.archive</name>
+    <value>hdfs:///apps/webhcat/hive.tar.gz</value>
+    <description>The path to the Hive archive.</description>
+  </property>
+
+  <property>
+    <name>templeton.hive.path</name>
+    <value>hive.tar.gz/hive/bin/hive</value>
+    <description>The path to the Hive executable.</description>
+  </property>
+
+  <property>
+    <name>templeton.hive.properties</name>
+    <value></value>
+    <description>Properties to set when running hive.</description>
+  </property>
+
+
+  <property>
+    <name>templeton.zookeeper.hosts</name>
+    <value></value>
+    <description>ZooKeeper servers, as comma separated host:port pairs</description>
+  </property>
+
+  <property>
+    <name>templeton.storage.class</name>
+    <value>org.apache.hcatalog.templeton.tool.ZooKeeperStorage</value>
+    <description>The class to use as storage</description>
+  </property>
+
+  <property>
+   <name>templeton.override.enabled</name>
+   <value>false</value>
+   <description>
+     Enable the override path in templeton.override.jars
+   </description>
+ </property>
+
+ <property>
+    <name>templeton.streaming.jar</name>
+    <value>hdfs:///apps/webhcat/hadoop-streaming.jar</value>
+    <description>The hdfs path to the Hadoop streaming jar file.</description>
+  </property> 
+
+  <property>
+    <name>templeton.exec.timeout</name>
+    <value>60000</value>
+    <description>Time out for templeton api</description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/WEBHCAT/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/WEBHCAT/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/WEBHCAT/metainfo.xml
new file mode 100644
index 0000000..c47b34e
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/WEBHCAT/metainfo.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>This is comment for WEBHCAT service</comment>
+    <version>0.11.0.1.3.2.0</version>
+
+    <components>
+        <component>
+            <name>WEBHCAT_SERVER</name>
+            <category>MASTER</category>
+        </component>
+    </components>
+
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/ZOOKEEPER/configuration/global.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/ZOOKEEPER/configuration/global.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/ZOOKEEPER/configuration/global.xml
new file mode 100644
index 0000000..f78df89
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/ZOOKEEPER/configuration/global.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>zk_user</name>
+    <value>zookeeper</value>
+    <description>ZooKeeper User.</description>
+  </property>
+  <property>
+    <name>zookeeperserver_host</name>
+    <value></value>
+    <description>ZooKeeper Server Hosts.</description>
+  </property>
+  <property>
+    <name>zk_data_dir</name>
+    <value>/hadoop/zookeeper</value>
+    <description>Data directory for ZooKeeper.</description>
+  </property>
+  <property>
+    <name>zk_log_dir</name>
+    <value>/var/log/zookeeper</value>
+    <description>ZooKeeper Log Dir</description>
+  </property>
+  <property>
+    <name>zk_pid_dir</name>
+    <value>/var/run/zookeeper</value>
+    <description>ZooKeeper Pid Dir</description>
+  </property>
+  <property>
+    <name>zk_pid_file</name>
+    <value>/var/run/zookeeper/zookeeper_server.pid</value>
+    <description>ZooKeeper Pid File</description>
+  </property>
+  <property>
+    <name>tickTime</name>
+    <value>2000</value>
+    <description>The length of a single tick in milliseconds, which is the basic time unit used by ZooKeeper</description>
+  </property>
+  <property>
+    <name>initLimit</name>
+    <value>10</value>
+    <description>Ticks to allow for sync at Init.</description>
+  </property>
+  <property>
+    <name>syncLimit</name>
+    <value>5</value>
+    <description>Ticks to allow for sync at Runtime.</description>
+  </property>
+  <property>
+    <name>clientPort</name>
+    <value>2181</value>
+    <description>Port for running ZK Server.</description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/ZOOKEEPER/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/ZOOKEEPER/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/ZOOKEEPER/metainfo.xml
new file mode 100644
index 0000000..b18ae7e
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3.3/services/ZOOKEEPER/metainfo.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>Centralized service which provides highly reliable distributed coordination</comment>
+    <version>3.4.5.1.3.2.0</version>
+
+    <components>
+        <component>
+            <name>ZOOKEEPER_SERVER</name>
+            <category>MASTER</category>
+        </component>
+
+        <component>
+            <name>ZOOKEEPER_CLIENT</name>
+            <category>CLIENT</category>
+        </component>
+    </components>
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/metainfo.xml
new file mode 100644
index 0000000..45a63e5
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/metainfo.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <versions>
+	  <active>false</active>
+    </versions>
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/repos/repoinfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/repos/repoinfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/repos/repoinfo.xml
new file mode 100644
index 0000000..87c68bf
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/repos/repoinfo.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<reposinfo>
+  <os type="centos6">
+    <repo>
+      <baseurl>REPLACE_WITH_CENTOS6_URL</baseurl>
+      <repoid>HDP-1.3.3</repoid>
+      <reponame>HDP</reponame>
+    </repo>
+  </os>
+  <os type="centos5">
+    <repo>
+      <baseurl>REPLACE_WITH_CENTOS5_URL</baseurl>
+      <repoid>HDP-1.3.3</repoid>
+      <reponame>HDP</reponame>
+    </repo>
+  </os>
+  <os type="redhat6">
+    <repo>
+      <baseurl>REPLACE_WITH_CENTOS6_URL</baseurl>
+      <repoid>HDP-1.3.3</repoid>
+      <reponame>HDP</reponame>
+    </repo>
+  </os>
+  <os type="redhat5">
+    <repo>
+      <baseurl>REPLACE_WITH_CENTOS5_URL</baseurl>
+      <repoid>HDP-1.3.3</repoid>
+      <reponame>HDP</reponame>
+    </repo>
+  </os>
+  <os type="oraclelinux6">
+    <repo>
+      <baseurl>REPLACE_WITH_CENTOS6_URL</baseurl>
+      <repoid>HDP-1.3.3</repoid>
+      <reponame>HDP</reponame>
+    </repo>
+  </os>
+  <os type="oraclelinux5">
+    <repo>
+      <baseurl>REPLACE_WITH_CENTOS5_URL</baseurl>
+      <repoid>HDP-1.3.3</repoid>
+      <reponame>HDP</reponame>
+    </repo>
+  </os>
+  <os type="suse11">
+    <repo>
+      <baseurl>REPLACE_WITH_SUSE11_URL</baseurl>
+      <repoid>HDP-1.3.3</repoid>
+      <reponame>HDP</reponame>
+    </repo>
+  </os>
+    <os type="sles11">
+    <repo>
+      <baseurl>REPLACE_WITH_SUSE11_URL</baseurl>
+      <repoid>HDP-1.3.3</repoid>
+      <reponame>HDP</reponame>
+    </repo>
+  </os>
+</reposinfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/FLUME/configuration/global.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/FLUME/configuration/global.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/FLUME/configuration/global.xml
new file mode 100644
index 0000000..f1fa4de
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/FLUME/configuration/global.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/FLUME/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/FLUME/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/FLUME/metainfo.xml
new file mode 100644
index 0000000..185f685
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/FLUME/metainfo.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>Flume is a distributed, reliable, and available system for efficiently collecting, aggregating and moving large amounts of log data from many different sources to a centralized data store.</comment>
+    <version>1.3.1.1.3.2.0</version>
+
+    <components>
+        <component>
+            <name>FLUME_SERVER</name>
+            <category>MASTER</category>
+        </component>
+    </components>
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/GANGLIA/configuration/global.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/GANGLIA/configuration/global.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/GANGLIA/configuration/global.xml
new file mode 100644
index 0000000..16df0b8
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/GANGLIA/configuration/global.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>ganglia_conf_dir</name>
+    <value>/etc/ganglia/hdp</value>
+    <description>Config directory for Ganglia</description>
+  </property>
+  <property>
+    <name>ganglia_runtime_dir</name>
+    <value>/var/run/ganglia/hdp</value>
+    <description>Run directories for Ganglia</description>
+  </property>
+  <property>
+    <name>ganglia_runtime_dir</name>
+    <value>/var/run/ganglia/hdp</value>
+    <description>Run directories for Ganglia</description>
+  </property>
+  <property>
+    <name>gmetad_user</name>
+    <value>nobody</value>
+    <description>User </description>
+  </property>
+    <property>
+    <name>gmond_user</name>
+    <value>nobody</value>
+    <description>User </description>
+  </property>
+  <property>
+    <name>rrdcached_base_dir</name>
+    <value>/var/lib/ganglia/rrds</value>
+    <description>Default directory for saving the rrd files on ganglia server</description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/GANGLIA/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/GANGLIA/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/GANGLIA/metainfo.xml
new file mode 100644
index 0000000..9fee795
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/GANGLIA/metainfo.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>Ganglia Metrics Collection system</comment>
+    <version>3.5.0</version>
+
+    <components>
+        <component>
+            <name>GANGLIA_SERVER</name>
+            <category>MASTER</category>
+        </component>
+
+        <component>
+            <name>GANGLIA_MONITOR</name>
+            <category>SLAVE</category>
+        </component>
+
+        <component>
+            <name>MONITOR_WEBSERVER</name>
+            <category>MASTER</category>
+        </component>
+    </components>
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HBASE/configuration/global.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HBASE/configuration/global.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HBASE/configuration/global.xml
new file mode 100644
index 0000000..453184b
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HBASE/configuration/global.xml
@@ -0,0 +1,160 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>hbasemaster_host</name>
+    <value></value>
+    <description>HBase Master Host.</description>
+  </property>
+  <property>
+    <name>regionserver_hosts</name>
+    <value></value>
+    <description>Region Server Hosts</description>
+  </property>
+  <property>
+    <name>hbase_log_dir</name>
+    <value>/var/log/hbase</value>
+    <description>Log Directories for HBase.</description>
+  </property>
+  <property>
+    <name>hbase_pid_dir</name>
+    <value>/var/run/hbase</value>
+    <description>Log Directories for HBase.</description>
+  </property>
+  <property>
+    <name>hbase_log_dir</name>
+    <value>/var/log/hbase</value>
+    <description>Log Directories for HBase.</description>
+  </property>
+  <property>
+    <name>hbase_regionserver_heapsize</name>
+    <value>1024</value>
+    <description>Log Directories for HBase.</description>
+  </property>
+  <property>
+    <name>hbase_master_heapsize</name>
+    <value>1024</value>
+    <description>HBase Master Heap Size</description>
+  </property>
+  <property>
+    <name>hstore_compactionthreshold</name>
+    <value>3</value>
+    <description>HBase HStore compaction threshold.</description>
+  </property>
+  <property>
+    <name>hfile_blockcache_size</name>
+    <value>0.25</value>
+    <description>HFile block cache size.</description>
+  </property>
+  <property>
+    <name>hstorefile_maxsize</name>
+    <value>10737418240</value>
+    <description>Maximum HStoreFile Size</description>
+  </property>
+    <property>
+    <name>regionserver_handlers</name>
+    <value>30</value>
+    <description>HBase RegionServer Handler</description>
+  </property>
+    <property>
+    <name>hregion_majorcompaction</name>
+    <value>86400000</value>
+    <description>HBase Major Compaction.</description>
+  </property>
+    <property>
+    <name>hregion_blockmultiplier</name>
+    <value>2</value>
+    <description>HBase Region Block Multiplier</description>
+  </property>
+    <property>
+    <name>hregion_memstoreflushsize</name>
+    <value></value>
+    <description>HBase Region MemStore Flush Size.</description>
+  </property>
+    <property>
+    <name>client_scannercaching</name>
+    <value>100</value>
+    <description>Base Client Scanner Caching</description>
+  </property>
+    <property>
+    <name>zookeeper_sessiontimeout</name>
+    <value>60000</value>
+    <description>ZooKeeper Session Timeout</description>
+  </property>
+    <property>
+    <name>hfile_max_keyvalue_size</name>
+    <value>10485760</value>
+    <description>HBase Client Maximum key-value Size</description>
+  </property>
+  <property>
+    <name>hbase_hdfs_root_dir</name>
+    <value>/apps/hbase/data</value>
+    <description>HBase Relative Path to HDFS.</description>
+  </property>
+   <property>
+    <name>hbase_conf_dir</name>
+    <value>/etc/hbase</value>
+    <description>Config Directory for HBase.</description>
+  </property>
+   <property>
+    <name>hdfs_enable_shortcircuit_read</name>
+    <value>true</value>
+    <description>HDFS Short Circuit Read</description>
+  </property>
+   <property>
+    <name>hdfs_support_append</name>
+    <value>true</value>
+    <description>HDFS append support</description>
+  </property>
+   <property>
+    <name>hstore_blockingstorefiles</name>
+    <value>7</value>
+    <description>HStore blocking storefiles.</description>
+  </property>
+   <property>
+    <name>regionserver_memstore_lab</name>
+    <value>true</value>
+    <description>Region Server memstore.</description>
+  </property>
+   <property>
+    <name>regionserver_memstore_lowerlimit</name>
+    <value>0.35</value>
+    <description>Region Server memstore lower limit.</description>
+  </property>
+   <property>
+    <name>regionserver_memstore_upperlimit</name>
+    <value>0.4</value>
+    <description>Region Server memstore upper limit.</description>
+  </property>
+   <property>
+    <name>hbase_conf_dir</name>
+    <value>/etc/hbase</value>
+    <description>HBase conf dir.</description>
+  </property>
+   <property>
+    <name>hbase_user</name>
+    <value>hbase</value>
+    <description>HBase User Name.</description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HBASE/configuration/hbase-policy.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HBASE/configuration/hbase-policy.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HBASE/configuration/hbase-policy.xml
new file mode 100644
index 0000000..e45f23c
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HBASE/configuration/hbase-policy.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>security.client.protocol.acl</name>
+    <value>*</value>
+    <description>ACL for HRegionInterface protocol implementations (ie. 
+    clients talking to HRegionServers)
+    The ACL is a comma-separated list of user and group names. The user and 
+    group list is separated by a blank. For e.g. "alice,bob users,wheel". 
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+  <property>
+    <name>security.admin.protocol.acl</name>
+    <value>*</value>
+    <description>ACL for HMasterInterface protocol implementation (ie. 
+    clients talking to HMaster for admin operations).
+    The ACL is a comma-separated list of user and group names. The user and 
+    group list is separated by a blank. For e.g. "alice,bob users,wheel". 
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+  <property>
+    <name>security.masterregion.protocol.acl</name>
+    <value>*</value>
+    <description>ACL for HMasterRegionInterface protocol implementations
+    (for HRegionServers communicating with HMaster)
+    The ACL is a comma-separated list of user and group names. The user and 
+    group list is separated by a blank. For e.g. "alice,bob users,wheel". 
+    A special value of "*" means all users are allowed.</description>
+  </property>
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HBASE/configuration/hbase-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HBASE/configuration/hbase-site.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HBASE/configuration/hbase-site.xml
new file mode 100644
index 0000000..be9c023
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HBASE/configuration/hbase-site.xml
@@ -0,0 +1,367 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<configuration>
+  <property>
+    <name>hbase.rootdir</name>
+    <value></value>
+    <description>The directory shared by region servers and into
+    which HBase persists.  The URL should be 'fully-qualified'
+    to include the filesystem scheme.  For example, to specify the
+    HDFS directory '/hbase' where the HDFS instance's namenode is
+    running at namenode.example.org on port 9000, set this value to:
+    hdfs://namenode.example.org:9000/hbase.  By default HBase writes
+    into /tmp.  Change this configuration else all data will be lost
+    on machine restart.
+    </description>
+  </property>
+  <property>
+    <name>hbase.cluster.distributed</name>
+    <value>true</value>
+    <description>The mode the cluster will be in. Possible values are
+      false for standalone mode and true for distributed mode.  If
+      false, startup will run all HBase and ZooKeeper daemons together
+      in the one JVM.
+    </description>
+  </property>
+  <property>
+    <name>hbase.tmp.dir</name>
+    <value></value>
+    <description>Temporary directory on the local filesystem.
+    Change this setting to point to a location more permanent
+    than '/tmp' (The '/tmp' directory is often cleared on
+    machine restart).
+    </description>
+  </property>
+  <property>
+    <name>hbase.master.info.bindAddress</name>
+    <value></value>
+    <description>The bind address for the HBase Master web UI
+    </description>
+  </property>
+  <property>
+    <name>hbase.master.info.port</name>
+    <value></value>
+    <description>The port for the HBase Master web UI.</description>
+  </property>
+  <property>
+    <name>hbase.regionserver.info.port</name>
+    <value></value>
+    <description>The port for the HBase RegionServer web UI.</description>
+  </property>
+  <property>
+    <name>hbase.regionserver.global.memstore.upperLimit</name>
+    <value></value>
+    <description>Maximum size of all memstores in a region server before new
+      updates are blocked and flushes are forced. Defaults to 40% of heap
+    </description>
+  </property>
+  <property>
+    <name>hbase.regionserver.handler.count</name>
+    <value></value>
+    <description>Count of RPC Listener instances spun up on RegionServers.
+    Same property is used by the Master for count of master handlers.
+    Default is 10.
+    </description>
+  </property>
+  <property>
+    <name>hbase.hregion.majorcompaction</name>
+    <value></value>
+    <description>The time (in miliseconds) between 'major' compactions of all
+    HStoreFiles in a region.  Default: 1 day.
+    Set to 0 to disable automated major compactions.
+    </description>
+  </property>
+  
+  <property>
+    <name>hbase.regionserver.global.memstore.lowerLimit</name>
+    <value></value>
+    <description>When memstores are being forced to flush to make room in
+      memory, keep flushing until we hit this mark. Defaults to 35% of heap.
+      This value equal to hbase.regionserver.global.memstore.upperLimit causes
+      the minimum possible flushing to occur when updates are blocked due to
+      memstore limiting.
+    </description>
+  </property>
+  <property>
+    <name>hbase.hregion.memstore.block.multiplier</name>
+    <value></value>
+    <description>Block updates if memstore has hbase.hregion.memstore.block.multiplier
+    time hbase.hregion.flush.size bytes.  Useful preventing
+    runaway memstore during spikes in update traffic.  Without an
+    upper-bound, memstore fills such that when it flushes the
+    resultant flush files take a long time to compact or split, or
+    worse, we OOME
+    </description>
+  </property>
+  <property>
+    <name>hbase.hregion.memstore.flush.size</name>
+    <value></value>
+    <description>
+    Memstore will be flushed to disk if size of the memstore
+    exceeds this number of bytes.  Value is checked by a thread that runs
+    every hbase.server.thread.wakefrequency.
+    </description>
+  </property>
+  <property>
+    <name>hbase.hregion.memstore.mslab.enabled</name>
+    <value></value>
+    <description>
+      Enables the MemStore-Local Allocation Buffer,
+      a feature which works to prevent heap fragmentation under
+      heavy write loads. This can reduce the frequency of stop-the-world
+      GC pauses on large heaps.
+    </description>
+  </property>
+  <property>
+    <name>hbase.hregion.max.filesize</name>
+    <value></value>
+    <description>
+    Maximum HStoreFile size. If any one of a column families' HStoreFiles has
+    grown to exceed this value, the hosting HRegion is split in two.
+    Default: 1G.
+    </description>
+  </property>
+  <property>
+    <name>hbase.client.scanner.caching</name>
+    <value></value>
+    <description>Number of rows that will be fetched when calling next
+    on a scanner if it is not served from (local, client) memory. Higher
+    caching values will enable faster scanners but will eat up more memory
+    and some calls of next may take longer and longer times when the cache is empty.
+    Do not set this value such that the time between invocations is greater
+    than the scanner timeout; i.e. hbase.regionserver.lease.period
+    </description>
+  </property>
+  <property>
+    <name>zookeeper.session.timeout</name>
+    <value>30000</value>
+    <description>ZooKeeper session timeout.
+      HBase passes this to the zk quorum as suggested maximum time for a
+      session (This setting becomes zookeeper's 'maxSessionTimeout').  See
+      http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#ch_zkSessions
+      "The client sends a requested timeout, the server responds with the
+      timeout that it can give the client. " In milliseconds.
+    </description>
+  </property>
+  <property>
+    <name>hbase.client.keyvalue.maxsize</name>
+    <value></value>
+    <description>Specifies the combined maximum allowed size of a KeyValue
+    instance. This is to set an upper boundary for a single entry saved in a
+    storage file. Since they cannot be split it helps avoiding that a region
+    cannot be split any further because the data is too large. It seems wise
+    to set this to a fraction of the maximum region size. Setting it to zero
+    or less disables the check.
+    </description>
+  </property>
+  <property>
+    <name>hbase.hstore.compactionThreshold</name>
+    <value></value>
+    <description>
+    If more than this number of HStoreFiles in any one HStore
+    (one HStoreFile is written per flush of memstore) then a compaction
+    is run to rewrite all HStoreFiles files as one.  Larger numbers
+    put off compaction but when it runs, it takes longer to complete.
+    </description>
+  </property>
+  <property>
+    <name>hbase.hstore.blockingStoreFiles</name>
+    <value></value>
+    <description>
+    If more than this number of StoreFiles in any one Store
+    (one StoreFile is written per flush of MemStore) then updates are
+    blocked for this HRegion until a compaction is completed, or
+    until hbase.hstore.blockingWaitTime has been exceeded.
+    </description>
+  </property>
+  <property>
+    <name>hfile.block.cache.size</name>
+    <value></value>
+    <description>
+        Percentage of maximum heap (-Xmx setting) to allocate to block cache
+        used by HFile/StoreFile. Default of 0.25 means allocate 25%.
+        Set to 0 to disable but it's not recommended.
+    </description>
+  </property>
+
+  <!-- The following properties configure authentication information for
+       HBase processes when using Kerberos security.  There are no default
+       values, included here for documentation purposes -->
+  <property>
+    <name>hbase.master.keytab.file</name>
+    <value></value>
+    <description>Full path to the kerberos keytab file to use for logging in
+    the configured HMaster server principal.
+    </description>
+  </property>
+  <property>
+    <name>hbase.master.kerberos.principal</name>
+    <value></value>
+    <description>Ex. "hbase/_HOST@EXAMPLE.COM".  The kerberos principal name
+    that should be used to run the HMaster process.  The principal name should
+    be in the form: user/hostname@DOMAIN.  If "_HOST" is used as the hostname
+    portion, it will be replaced with the actual hostname of the running
+    instance.
+    </description>
+  </property>
+  <property>
+    <name>hbase.regionserver.keytab.file</name>
+    <value></value>
+    <description>Full path to the kerberos keytab file to use for logging in
+    the configured HRegionServer server principal.
+    </description>
+  </property>
+  <property>
+    <name>hbase.regionserver.kerberos.principal</name>
+    <value></value>
+    <description>Ex. "hbase/_HOST@EXAMPLE.COM".  The kerberos principal name
+    that should be used to run the HRegionServer process.  The principal name
+    should be in the form: user/hostname@DOMAIN.  If "_HOST" is used as the
+    hostname portion, it will be replaced with the actual hostname of the
+    running instance.  An entry for this principal must exist in the file
+    specified in hbase.regionserver.keytab.file
+    </description>
+  </property>
+
+  <!-- Additional configuration specific to HBase security -->
+  <property>
+    <name>hbase.superuser</name>
+    <value>hbase</value>
+    <description>List of users or groups (comma-separated), who are allowed
+    full privileges, regardless of stored ACLs, across the cluster.
+    Only used when HBase security is enabled.
+    </description>
+  </property>
+
+  <property>
+    <name>hbase.security.authentication</name>
+    <value>simple</value>
+  </property>
+
+  <property>
+    <name>hbase.rpc.engine</name>
+    <value>org.apache.hadoop.hbase.ipc.WritableRpcEngine</value>
+  </property>
+
+  <property>
+    <name>hbase.security.authorization</name>
+    <value>false</value>
+    <description>Enables HBase authorization. Set the value of this property to false to disable HBase authorization.
+    </description>
+  </property>
+
+  <property>
+    <name>hbase.coprocessor.region.classes</name>
+    <value></value>
+    <description>A comma-separated list of Coprocessors that are loaded by
+    default on all tables. For any override coprocessor method, these classes
+    will be called in order. After implementing your own Coprocessor, just put
+    it in HBase's classpath and add the fully qualified class name here.
+    A coprocessor can also be loaded on demand by setting HTableDescriptor.
+    </description>
+  </property>
+
+  <property>
+    <name>hbase.coprocessor.master.classes</name>
+    <value></value>
+    <description>A comma-separated list of
+      org.apache.hadoop.hbase.coprocessor.MasterObserver coprocessors that are
+      loaded by default on the active HMaster process. For any implemented
+      coprocessor methods, the listed classes will be called in order. After
+      implementing your own MasterObserver, just put it in HBase's classpath
+      and add the fully qualified class name here.
+    </description>
+  </property>
+
+  <property>
+    <name>hbase.zookeeper.property.clientPort</name>
+    <value>2181</value>
+    <description>Property from ZooKeeper's config zoo.cfg.
+    The port at which the clients will connect.
+    </description>
+  </property>
+
+  <!--
+  The following three properties are used together to create the list of
+  host:peer_port:leader_port quorum servers for ZooKeeper.
+  -->
+  <property>
+    <name>hbase.zookeeper.quorum</name>
+    <value></value>
+    <description>Comma separated list of servers in the ZooKeeper Quorum.
+    For example, "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com".
+    By default this is set to localhost for local and pseudo-distributed modes
+    of operation. For a fully-distributed setup, this should be set to a full
+    list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set in hbase-env.sh
+    this is the list of servers which we will start/stop ZooKeeper on.
+    </description>
+  </property>
+  <!-- End of properties used to generate ZooKeeper host:port quorum list. -->
+
+  <property>
+    <name>dfs.support.append</name>
+    <value></value>
+    <description>Does HDFS allow appends to files?
+    This is an hdfs config. set in here so the hdfs client will do append support.
+    You must ensure that this config. is true serverside too when running hbase
+    (You will have to restart your cluster after setting it).
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.client.read.shortcircuit</name>
+    <value></value>
+    <description>Enable/Disable short circuit read for your client.
+    Hadoop servers should be configured to allow short circuit read
+    for the hbase user for this to take effect
+    </description>
+  </property>
+
+  <property>
+    <name>dfs.client.read.shortcircuit.skip.checksum</name>
+    <value></value>
+    <description>Enable/disbale skipping the checksum check</description>
+  </property>
+  
+  <property>
+    <name>hbase.zookeeper.useMulti</name>
+    <value>true</value>
+    <description>Instructs HBase to make use of ZooKeeper's multi-update functionality.
+    This allows certain ZooKeeper operations to complete more quickly and prevents some issues
+    with rare Replication failure scenarios (see the release note of HBASE-2611 for an example).ยท
+    IMPORTANT: only set this to true if all ZooKeeper servers in the cluster are on version 3.4+
+    and will not be downgraded.  ZooKeeper versions before 3.4 do not support multi-update and will
+    not fail gracefully if multi-update is invoked (see ZOOKEEPER-1495).
+    </description>
+  </property>
+  <property>
+    <name>zookeeper.znode.parent</name>
+    <value>/hbase-unsecure</value>
+    <description>Root ZNode for HBase in ZooKeeper. All of HBase's ZooKeeper
+      files that are configured with a relative path will go under this node.
+      By default, all of HBase's ZooKeeper file path are configured with a
+      relative path, so they will all go under this directory unless changed.
+    </description>
+  </property>
+
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HBASE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HBASE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HBASE/metainfo.xml
new file mode 100644
index 0000000..ea7ea41
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HBASE/metainfo.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>mapred</user>
+    <comment>Non-relational distributed database and centralized service for configuration management &amp; synchronization</comment>
+    <version>0.94.6.1.3.2.0</version>
+
+    <components>
+        <component>
+            <name>HBASE_MASTER</name>
+            <category>MASTER</category>
+        </component>
+
+        <component>
+            <name>HBASE_REGIONSERVER</name>
+            <category>SLAVE</category>
+        </component>
+
+        <component>
+            <name>HBASE_CLIENT</name>
+            <category>CLIENT</category>
+        </component>
+    </components>
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HCATALOG/configuration/global.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HCATALOG/configuration/global.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HCATALOG/configuration/global.xml
new file mode 100644
index 0000000..dd89409
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HCATALOG/configuration/global.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>hcat_log_dir</name>
+    <value>/var/log/webhcat</value>
+    <description>WebHCat Log Dir.</description>
+  </property>
+  <property>
+    <name>hcat_pid_dir</name>
+    <value>/etc/run/webhcat</value>
+    <description>WebHCat Pid Dir.</description>
+  </property>
+  <property>
+    <name>hcat_user</name>
+    <value>hcat</value>
+    <description>HCat User.</description>
+  </property>
+  <property>
+    <name>webhcat_user</name>
+    <value>hcat</value>
+    <description>WebHCat User.</description>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HCATALOG/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HCATALOG/metainfo.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HCATALOG/metainfo.xml
new file mode 100644
index 0000000..818914e
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HCATALOG/metainfo.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<metainfo>
+    <user>root</user>
+    <comment>This is comment for HCATALOG service</comment>
+    <version>0.11.0.1.3.2.0</version>
+
+    <components>
+        <component>
+            <name>HCAT</name>
+            <category>CLIENT</category>
+        </component>
+    </components>
+
+</metainfo>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/configuration/core-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/configuration/core-site.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/configuration/core-site.xml
new file mode 100644
index 0000000..fe0bcba
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/configuration/core-site.xml
@@ -0,0 +1,253 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+ <!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+ 
+        http://www.apache.org/licenses/LICENSE-2.0
+ 
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+ -->
+ 
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration xmlns:xi="http://www.w3.org/2001/XInclude">
+
+<!-- i/o properties -->
+
+  <property>
+    <name>io.file.buffer.size</name>
+    <value>131072</value>
+    <description>The size of buffer for use in sequence files.
+  The size of this buffer should probably be a multiple of hardware
+  page size (4096 on Intel x86), and it determines how much data is
+  buffered during read and write operations.</description>
+  </property>
+
+  <property>
+    <name>io.serializations</name>
+    <value>org.apache.hadoop.io.serializer.WritableSerialization</value>
+  </property>
+
+  <property>
+    <name>io.compression.codecs</name>
+    <value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec,org.apache.hadoop.io.compress.SnappyCodec</value>
+    <description>A list of the compression codec classes that can be used
+                 for compression/decompression.</description>
+  </property>
+
+
+  <property>
+    <name>io.compression.codec.lzo.class</name>
+    <value>com.hadoop.compression.lzo.LzoCodec</value>
+    <description>The implementation for lzo codec.</description>
+  </property>
+
+
+<!-- file system properties -->
+
+  <property>
+    <name>fs.default.name</name>
+    <!-- cluster variant -->
+    <value></value>
+    <description>The name of the default file system.  Either the
+  literal string "local" or a host:port for NDFS.</description>
+    <final>true</final>
+  </property>
+
+  <property>
+    <name>fs.trash.interval</name>
+    <value>360</value>
+    <description>Number of minutes between trash checkpoints.
+  If zero, the trash feature is disabled.
+  </description>
+  </property>
+
+  <property>
+    <name>fs.checkpoint.dir</name>
+    <value></value>
+    <description>Determines where on the local filesystem the DFS secondary
+        name node should store the temporary images to merge.
+        If this is a comma-delimited list of directories then the image is
+        replicated in all of the directories for redundancy.
+    </description>
+  </property>
+
+  <property>
+    <name>fs.checkpoint.edits.dir</name>
+    <value>${fs.checkpoint.dir}</value>
+    <description>Determines where on the local filesystem the DFS secondary
+        name node should store the temporary edits to merge.
+        If this is a comma-delimited list of directoires then teh edits is
+        replicated in all of the directoires for redundancy.
+        Default value is same as fs.checkpoint.dir
+    </description>
+  </property>
+
+  <property>
+    <name>fs.checkpoint.period</name>
+    <value>21600</value>
+    <description>The number of seconds between two periodic checkpoints.
+  </description>
+  </property>
+
+  <property>
+    <name>fs.checkpoint.size</name>
+    <value>536870912</value>
+    <description>The size of the current edit log (in bytes) that triggers
+       a periodic checkpoint even if the fs.checkpoint.period hasn't expired.
+  </description>
+  </property>
+
+  <!-- ipc properties: copied from kryptonite configuration -->
+  <property>
+    <name>ipc.client.idlethreshold</name>
+    <value>8000</value>
+    <description>Defines the threshold number of connections after which
+               connections will be inspected for idleness.
+  </description>
+  </property>
+
+  <property>
+    <name>ipc.client.connection.maxidletime</name>
+    <value>30000</value>
+    <description>The maximum time after which a client will bring down the
+               connection to the server.
+  </description>
+  </property>
+
+  <property>
+    <name>ipc.client.connect.max.retries</name>
+    <value>50</value>
+    <description>Defines the maximum number of retries for IPC connections.</description>
+  </property>
+
+  <!-- Web Interface Configuration -->
+  <property>
+    <name>webinterface.private.actions</name>
+    <value>false</value>
+    <description> If set to true, the web interfaces of JT and NN may contain
+                actions, such as kill job, delete file, etc., that should
+                not be exposed to public. Enable this option if the interfaces
+                are only reachable by those who have the right authorization.
+  </description>
+  </property>
+
+ <property>
+   <name>hadoop.security.authentication</name>
+   <value>simple</value>
+   <description>
+   Set the authentication for the cluster. Valid values are: simple or
+   kerberos.
+   </description>
+ </property>
+<property>
+  <name>hadoop.security.authorization</name>
+  <value></value>
+  <description>
+     Enable authorization for different protocols.
+  </description>
+</property>
+
+  <property>
+    <name>hadoop.security.auth_to_local</name>
+    <value></value>
+<description>The mapping from kerberos principal names to local OS user names.
+  So the default rule is just "DEFAULT" which takes all principals in your default domain to their first component.
+  "omalley@APACHE.ORG" and "omalley/admin@APACHE.ORG" to "omalley", if your default domain is APACHE.ORG.
+The translations rules have 3 sections:
+      base     filter    substitution
+The base consists of a number that represents the number of components in the principal name excluding the realm and the pattern for building the name from the sections of the principal name. The base uses $0 to mean the realm, $1 to mean the first component and $2 to mean the second component.
+
+[1:$1@$0] translates "omalley@APACHE.ORG" to "omalley@APACHE.ORG"
+[2:$1] translates "omalley/admin@APACHE.ORG" to "omalley"
+[2:$1%$2] translates "omalley/admin@APACHE.ORG" to "omalley%admin"
+
+The filter is a regex in parens that must the generated string for the rule to apply.
+
+"(.*%admin)" will take any string that ends in "%admin"
+"(.*@ACME.COM)" will take any string that ends in "@ACME.COM"
+
+Finally, the substitution is a sed rule to translate a regex into a fixed string.
+
+"s/@ACME\.COM//" removes the first instance of "@ACME.COM".
+"s/@[A-Z]*\.COM//" removes the first instance of "@" followed by a name followed by ".COM".
+"s/X/Y/g" replaces all of the "X" in the name with "Y"
+
+So, if your default realm was APACHE.ORG, but you also wanted to take all principals from ACME.COM that had a single component "joe@ACME.COM", you'd do:
+
+RULE:[1:$1@$0](.@ACME.ORG)s/@.//
+DEFAULT
+
+To also translate the names with a second component, you'd make the rules:
+
+RULE:[1:$1@$0](.@ACME.ORG)s/@.//
+RULE:[2:$1@$0](.@ACME.ORG)s/@.//
+DEFAULT
+
+If you want to treat all principals from APACHE.ORG with /admin as "admin", your rules would look like:
+
+RULE[2:$1%$2@$0](.%admin@APACHE.ORG)s/./admin/
+DEFAULT
+    </description>
+  </property>
+
+<!--
+<property>
+  <name>hadoop.proxyuser.scope.function_hdp_user("hcat_user").groups</name>
+  <value></value>
+  <description>
+     Proxy group for Hadoop.
+  </description>
+</property>
+
+<property>
+  <name>hadoop.proxyuser.scope.function_hdp_user("hcat_user").hosts</name>
+  <value></value>
+  <description>
+     Proxy host for Hadoop.
+  </description>
+</property>
+
+<property>
+  <name>hadoop.proxyuser.scope.function_hdp_user("oozie_user").groups</name>
+  <value></value>
+  <description>
+     Proxy group for Hadoop.
+  </description>
+</property>
+
+<property>
+  <name>hadoop.proxyuser.scope.function_hdp_user("oozie_user").hosts</name>
+  <value></value>
+  <description>
+     Proxy host for Hadoop.
+  </description>
+</property>
+
+<property>
+  <name>hadoop.proxyuser.scope.function_hdp_user("templeton_user").groups</name>
+  <value></value>
+  <description>
+    Proxy group for templeton.
+  </description>
+</property>
+
+<property>
+  <name>hadoop.proxyuser.scope.function_hdp_user("templeton_user").hosts</name>
+  <value></value>
+  <description>
+    Proxy host for templeton.
+  </description>
+</property>
+-->
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/configuration/global.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/configuration/global.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/configuration/global.xml
new file mode 100644
index 0000000..f10b9f9
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/configuration/global.xml
@@ -0,0 +1,187 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>namenode_host</name>
+    <value></value>
+    <description>NameNode Host.</description>
+  </property>
+  <property>
+    <name>dfs_name_dir</name>
+    <value>/hadoop/hdfs/namenode</value>
+    <description>NameNode Directories.</description>
+  </property>
+  <property>
+    <name>snamenode_host</name>
+    <value></value>
+    <description>Secondary NameNode.</description>
+  </property>
+  <property>
+    <name>fs_checkpoint_dir</name>
+    <value>/hadoop/hdfs/namesecondary</value>
+    <description>Secondary NameNode checkpoint dir.</description>
+  </property>
+  <property>
+    <name>datanode_hosts</name>
+    <value></value>
+    <description>List of Datanode Hosts.</description>
+  </property>
+  <property>
+    <name>dfs_data_dir</name>
+    <value>/hadoop/hdfs/data</value>
+    <description>Data directories for Data Nodes.</description>
+  </property>
+  <property>
+    <name>hdfs_log_dir_prefix</name>
+    <value>/var/log/hadoop</value>
+    <description>Hadoop Log Dir Prefix</description>
+  </property>
+  <property>
+    <name>hadoop_pid_dir_prefix</name>
+    <value>/var/run/hadoop</value>
+    <description>Hadoop PID Dir Prefix</description>
+  </property>
+  <property>
+    <name>dfs_webhdfs_enabled</name>
+    <value>true</value>
+    <description>WebHDFS enabled</description>
+  </property>
+  <property>
+    <name>hadoop_heapsize</name>
+    <value>1024</value>
+    <description>Hadoop maximum Java heap size</description>
+  </property>
+  <property>
+    <name>namenode_heapsize</name>
+    <value>1024</value>
+    <description>NameNode Java heap size</description>
+  </property>
+  <property>
+    <name>namenode_opt_newsize</name>
+    <value>200</value>
+    <description>NameNode new generation size</description>
+  </property>
+  <property>
+    <name>namenode_opt_maxnewsize</name>
+    <value>640</value>
+    <description>NameNode maximum new generation size</description>
+  </property>
+  <property>
+    <name>datanode_du_reserved</name>
+    <value>1</value>
+    <description>Reserved space for HDFS</description>
+  </property>
+  <property>
+    <name>dtnode_heapsize</name>
+    <value>1024</value>
+    <description>DataNode maximum Java heap size</description>
+  </property>
+  <property>
+    <name>dfs_datanode_failed_volume_tolerated</name>
+    <value>0</value>
+    <description>DataNode volumes failure toleration</description>
+  </property>
+  <property>
+    <name>fs_checkpoint_period</name>
+    <value>21600</value>
+    <description>HDFS Maximum Checkpoint Delay</description>
+  </property>
+  <property>
+    <name>fs_checkpoint_size</name>
+    <value>0.5</value>
+    <description>FS Checkpoint Size.</description>
+  </property>
+  <property>
+    <name>proxyuser_group</name>
+    <value>users</value>
+    <description>Proxy user group.</description>
+  </property>
+  <property>
+    <name>dfs_exclude</name>
+    <value></value>
+    <description>HDFS Exclude hosts.</description>
+  </property>
+  <property>
+    <name>dfs_include</name>
+    <value></value>
+    <description>HDFS Include hosts.</description>
+  </property>
+  <property>
+    <name>dfs_replication</name>
+    <value>3</value>
+    <description>Default Block Replication.</description>
+  </property>
+  <property>
+    <name>dfs_block_local_path_access_user</name>
+    <value>hbase</value>
+    <description>Default Block Replication.</description>
+  </property>
+  <property>
+    <name>dfs_datanode_address</name>
+    <value>50010</value>
+    <description>Port for datanode address.</description>
+  </property>
+  <property>
+    <name>dfs_datanode_http_address</name>
+    <value>50075</value>
+    <description>Port for datanode address.</description>
+  </property>
+  <property>
+    <name>dfs_datanode_data_dir_perm</name>
+    <value>750</value>
+    <description>Datanode dir perms.</description>
+  </property>
+
+  <property>
+    <name>security_enabled</name>
+    <value>false</value>
+    <description>Hadoop Security</description>
+  </property>
+  <property>
+    <name>kerberos_domain</name>
+    <value>EXAMPLE.COM</value>
+    <description>Kerberos realm.</description>
+  </property>
+  <property>
+    <name>kadmin_pw</name>
+    <value></value>
+    <description>Kerberos realm admin password</description>
+  </property>
+  <property>
+    <name>keytab_path</name>
+    <value>/etc/security/keytabs</value>
+    <description>Kerberos keytab path.</description>
+  </property>
+
+    <property>
+    <name>namenode_formatted_mark_dir</name>
+    <value>/var/run/hadoop/hdfs/namenode/formatted/</value>
+    <description>Formatteed Mark Directory.</description>
+  </property>
+    <property>
+    <name>hdfs_user</name>
+    <value>hdfs</value>
+    <description>User and Groups.</description>
+  </property>
+  
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c073d429/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/configuration/hadoop-policy.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/configuration/hadoop-policy.xml b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/configuration/hadoop-policy.xml
new file mode 100644
index 0000000..900da99
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDPLocal/1.3.3/services/HDFS/configuration/hadoop-policy.xml
@@ -0,0 +1,134 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration>
+  <property>
+    <name>security.client.protocol.acl</name>
+    <value>*</value>
+    <description>ACL for ClientProtocol, which is used by user code
+    via the DistributedFileSystem.
+    The ACL is a comma-separated list of user and group names. The user and
+    group list is separated by a blank. For e.g. "alice,bob users,wheel".
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+  <property>
+    <name>security.client.datanode.protocol.acl</name>
+    <value>*</value>
+    <description>ACL for ClientDatanodeProtocol, the client-to-datanode protocol
+    for block recovery.
+    The ACL is a comma-separated list of user and group names. The user and
+    group list is separated by a blank. For e.g. "alice,bob users,wheel".
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+  <property>
+    <name>security.datanode.protocol.acl</name>
+    <value>*</value>
+    <description>ACL for DatanodeProtocol, which is used by datanodes to
+    communicate with the namenode.
+    The ACL is a comma-separated list of user and group names. The user and
+    group list is separated by a blank. For e.g. "alice,bob users,wheel".
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+  <property>
+    <name>security.inter.datanode.protocol.acl</name>
+    <value>*</value>
+    <description>ACL for InterDatanodeProtocol, the inter-datanode protocol
+    for updating generation timestamp.
+    The ACL is a comma-separated list of user and group names. The user and
+    group list is separated by a blank. For e.g. "alice,bob users,wheel".
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+  <property>
+    <name>security.namenode.protocol.acl</name>
+    <value>*</value>
+    <description>ACL for NamenodeProtocol, the protocol used by the secondary
+    namenode to communicate with the namenode.
+    The ACL is a comma-separated list of user and group names. The user and
+    group list is separated by a blank. For e.g. "alice,bob users,wheel".
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+  <property>
+    <name>security.inter.tracker.protocol.acl</name>
+    <value>*</value>
+    <description>ACL for InterTrackerProtocol, used by the tasktrackers to
+    communicate with the jobtracker.
+    The ACL is a comma-separated list of user and group names. The user and
+    group list is separated by a blank. For e.g. "alice,bob users,wheel".
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+  <property>
+    <name>security.job.submission.protocol.acl</name>
+    <value>*</value>
+    <description>ACL for JobSubmissionProtocol, used by job clients to
+    communciate with the jobtracker for job submission, querying job status etc.
+    The ACL is a comma-separated list of user and group names. The user and
+    group list is separated by a blank. For e.g. "alice,bob users,wheel".
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+  <property>
+    <name>security.task.umbilical.protocol.acl</name>
+    <value>*</value>
+    <description>ACL for TaskUmbilicalProtocol, used by the map and reduce
+    tasks to communicate with the parent tasktracker.
+    The ACL is a comma-separated list of user and group names. The user and
+    group list is separated by a blank. For e.g. "alice,bob users,wheel".
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+ <property>
+    <name>security.admin.operations.protocol.acl</name>
+    <value></value>
+    <description>ACL for AdminOperationsProtocol. Used for admin commands.
+    The ACL is a comma-separated list of user and group names. The user and
+    group list is separated by a blank. For e.g. "alice,bob users,wheel".
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+  <property>
+    <name>security.refresh.usertogroups.mappings.protocol.acl</name>
+    <value></value>
+    <description>ACL for RefreshUserMappingsProtocol. Used to refresh
+    users mappings. The ACL is a comma-separated list of user and
+    group names. The user and group list is separated by a blank. For
+    e.g. "alice,bob users,wheel".  A special value of "*" means all
+    users are allowed.</description>
+  </property>
+
+<property>
+    <name>security.refresh.policy.protocol.acl</name>
+    <value></value>
+    <description>ACL for RefreshAuthorizationPolicyProtocol, used by the
+    dfsadmin and mradmin commands to refresh the security policy in-effect.
+    The ACL is a comma-separated list of user and group names. The user and
+    group list is separated by a blank. For e.g. "alice,bob users,wheel".
+    A special value of "*" means all users are allowed.</description>
+  </property>
+
+
+</configuration>


[09/20] git commit: AMBARI-3644. App.ServiceConfig needs 'defaultsProvider' mechanism. (onechiporenko via srimanth)

Posted by sr...@apache.org.
AMBARI-3644. App.ServiceConfig needs 'defaultsProvider' mechanism. (onechiporenko via 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/e7c2b070
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/e7c2b070
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/e7c2b070

Branch: refs/heads/branch-1.4-bk
Commit: e7c2b0704876e3e234bc398be6a799bc57036532
Parents: aca2dce
Author: Srimanth Gunturi <sg...@hortonworks.com>
Authored: Thu Oct 31 15:02:47 2013 -0700
Committer: Srimanth Gunturi <sg...@hortonworks.com>
Committed: Tue Nov 5 12:44:21 2013 -0800

----------------------------------------------------------------------
 ambari-web/app/assets/test/tests.js             |   1 +
 ambari-web/app/data/service_configs.js          |   4 +-
 ambari-web/app/utils/config.js                  |  17 ++
 .../defaults_providers/defaultsProvider.js      |  37 +++
 .../yarn_defaults_provider.js                   | 272 +++++++++++++++++
 .../yarn_defaults_provider_test.js              | 295 +++++++++++++++++++
 6 files changed, 625 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/e7c2b070/ambari-web/app/assets/test/tests.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/test/tests.js b/ambari-web/app/assets/test/tests.js
index 76eb6eb..0bc3a59 100644
--- a/ambari-web/app/assets/test/tests.js
+++ b/ambari-web/app/assets/test/tests.js
@@ -60,6 +60,7 @@ require('test/mappers/runs_mapper_test');
 require('test/mappers/service_mapper_test');
 require('test/mappers/status_mapper_test');
 require('test/mappers/users_mapper_test');
+require('test/utils/defaults_providers/yarn_defaults_provider_test');
 require('test/utils/config_test');
 require('test/utils/date_test');
 require('test/utils/config_test');

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/e7c2b070/ambari-web/app/data/service_configs.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/data/service_configs.js b/ambari-web/app/data/service_configs.js
index f87e6d0..b7857b1 100644
--- a/ambari-web/app/data/service_configs.js
+++ b/ambari-web/app/data/service_configs.js
@@ -18,7 +18,7 @@
 
 var App = require('app');
 require('models/service_config');
-
+require('utils/defaults_providers/yarn_defaults_provider');
 
 module.exports = [
   {
@@ -66,6 +66,7 @@ module.exports = [
   {
     serviceName: 'YARN',
     displayName: 'YARN',
+    defaultsProviders: [App.YARNDefaultsProvider],
     filename: 'yarn-site',
     configCategories: [
       App.ServiceConfigCategory.create({ name: 'ResourceManager', displayName : 'Resource Manager', hostComponentNames : ['RESOURCEMANAGER']}),
@@ -83,6 +84,7 @@ module.exports = [
     serviceName: 'MAPREDUCE2',
     displayName: 'MapReduce 2',
     filename: 'mapred-site',
+    defaultsProviders: [App.YARNDefaultsProvider],
     configCategories: [
       App.ServiceConfigCategory.create({ name: 'HistoryServer', displayName : 'History Server', hostComponentNames : ['HISTORYSERVER']}),
       App.ServiceConfigCategory.create({ name: 'General', displayName : 'General'}),

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/e7c2b070/ambari-web/app/utils/config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js
index 731a988..6897de1 100644
--- a/ambari-web/app/utils/config.js
+++ b/ambari-web/app/utils/config.js
@@ -461,8 +461,10 @@ App.config = Em.Object.create({
    * render configs, distribute them by service
    * and wrap each in ServiceConfigProperty object
    * @param configs
+   * @param storedConfigs
    * @param allInstalledServiceNames
    * @param selectedServiceNames
+   * @param localDB
    * @return {Array}
    */
   renderConfigs: function (configs, storedConfigs, allInstalledServiceNames, selectedServiceNames) {
@@ -501,6 +503,21 @@ App.config = Em.Object.create({
       }, this);
       serviceConfig = this.createServiceConfig(service.serviceName);
       serviceConfig.set('showConfig', service.showConfig);
+
+      // Use calculated default values for some configs
+      if (service.defaultsProviders) {
+        service.defaultsProviders.forEach(function(defaultsProvider) {
+          var defaults = defaultsProvider.getDefaults(localDB);
+          for(var name in defaults) {
+            var config = configsByService.findProperty('name', name);
+            if (config) {
+              config.set('value', defaults[name]);
+              config.set('defaultValue', defaults[name]);
+            }
+          }
+        });
+      }
+
       serviceConfig.set('configs', configsByService);
       renderedServiceConfigs.push(serviceConfig);
     }, this);

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/e7c2b070/ambari-web/app/utils/defaults_providers/defaultsProvider.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/defaults_providers/defaultsProvider.js b/ambari-web/app/utils/defaults_providers/defaultsProvider.js
new file mode 100644
index 0000000..1eaad12
--- /dev/null
+++ b/ambari-web/app/utils/defaults_providers/defaultsProvider.js
@@ -0,0 +1,37 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+var App = require('app');
+
+App.DefaultsProvider = Em.Object.extend({
+
+  /**
+   * Look at cluster setup, the provided properties, and provide an object where keys are property-names, and values are the recommended defaults
+   * @param {App.ServiceConfigProperty} serviceConfigProperty
+   */
+  getDefaults: function(serviceConfigProperty) {
+
+  },
+
+  /**
+   * Cluster info used to calculate properties values
+   * Should be redeclared in the child providers
+   */
+  getClusterData: function() {
+
+  }
+});

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/e7c2b070/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js b/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js
new file mode 100644
index 0000000..0ae3e70
--- /dev/null
+++ b/ambari-web/app/utils/defaults_providers/yarn_defaults_provider.js
@@ -0,0 +1,272 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+var App = require('app');
+require('utils/defaults_providers/defaultsProvider');
+
+App.YARNDefaultsProvider = App.DefaultsProvider.create({
+
+  /**
+   * List of the configs that should be calculated
+   */
+  configsTemplate: {
+    'yarn.nodemanager.resource.memory-mb': null,
+    'yarn.scheduler.minimum-allocation-mb': null,
+    'yarn.scheduler.maximum-allocation-mb': null,
+    'mapreduce.map.memory.mb': null,
+    'mapreduce.reduce.memory.mb': null,
+    'mapreduce.map.java.opts': null,
+    'mapreduce.reduce.java.opts': null,
+    'yarn.app.mapreduce.am.resource.mb': null,
+    'yarn.app.mapreduce.am.command-opts': null
+  },
+
+  /**
+   * Information about ram, disk count, cpu count and hbase availability
+   * Example:
+   * {
+   *   disk: 12,
+   *   ram: 48 * 1024, // MB
+   *   cpu: 12,
+   *   hBaseInstalled: false
+   * }
+   */
+  clusterData: null,
+
+  /**
+   * Reserved for system memory
+   *
+   * Value in MB!
+   */
+  reservedRam: null,
+
+  /**
+   * Reserved for HBase memory
+   *
+   * Value in MB!
+   */
+  hBaseRam: null,
+
+  /**
+   *  Minimum container size (in RAM).
+   *  This value is dependent on the amount of RAM available, as in smaller memory nodes the minimum container size should also be smaller
+   *
+   *  Value in MB!
+   */
+  recommendedMinimumContainerSize: function() {
+    if (!this.clusterDataIsValid()) return null;
+    var ram = this.get('clusterData.ram');
+    switch(true) {
+      case (ram < 4*1024): return 256;
+      case (ram >= 4*1024 && ram < 8*1024): return 512;
+      case (ram >= 8*1024 && ram < 24*1024): return 1024;
+      case (ram >= 24*1024):
+      default: return 2048;
+    }
+  }.property('clusterData.ram'),
+
+  /**
+   * Maximum number of containers allowed per node
+   * min (2*CORES, 1.8*DISKS, (Total available RAM) / MIN_CONTAINER_SIZE)
+   */
+  containers: function() {
+    if (!this.clusterDataIsValid()) return null;
+    var cpu = this.get('clusterData.cpu');
+    var disk = this.get('clusterData.disk');
+    var ram = this.get('clusterData.ram');
+    var containerSize = this.get('recommendedMinimumContainerSize');
+    cpu *= 2;
+    disk *= 1.8;
+    ram = (ram - this.get('reservedRam'));
+    if (this.get('clusterData.hBaseInstalled')) {
+      ram -= this.get('hBaseRam')
+    }
+    ram /= containerSize;
+    if (cpu < disk) {
+      if (cpu < ram) {
+        return cpu;
+      }
+      return ram;
+    }
+    else {
+      if (disk < ram) {
+        return parseInt(disk);
+      }
+      return ram;
+    }
+  }.property('clusterData.cpu', 'clusterData.ram', 'clusterData.disk', 'recommendedMinimumContainerSize'),
+
+  /**
+   * amount of RAM per container
+   * RAM-per-container = max(MIN_CONTAINER_SIZE, (Total Available RAM) / containers))
+   *
+   * Value in MB!
+   */
+  ramPerContainer: function() {
+    var containerSize = this.get('recommendedMinimumContainerSize');
+    var containers = this.get('containers');
+    if (!containerSize || !containers) {
+      return null;
+    }
+    var s = this.get('clusterData.ram') - this.get('reservedRam');
+    if (this.get('clusterData.hBaseInstalled')) {
+      s -= this.get('hBaseRam');
+    }
+    s /= containers;
+    return (containerSize > s) ? containerSize : s;
+  }.property('recommendedMinimumContainerSize', 'containers'),
+
+  /**
+   * Reserved for HBase and system memory is based on total available memory
+   */
+  reservedMemoryRecommendations: function() {
+    var table = [
+      {os:1,hbase:1},
+      {os:2,hbase:1},
+      {os:2,hbase:2},
+      {os:4,hbase:4},
+      {os:6,hbase:8},
+      {os:8,hbase:8},
+      {os:8,hbase:8},
+      {os:12,hbase:16},
+      {os:24,hbase:24},
+      {os:32,hbase:32},
+      {os:64,hbase:64}
+    ];
+    var ram = this.get('clusterData.ram') / 1024;
+    var index = 0;
+    switch (true) {
+      case (ram <= 4): index = 0; break;
+      case (ram > 4 && ram <= 8): index = 1; break;
+      case (ram > 8 && ram <= 16): index = 2; break;
+      case (ram > 16 && ram <= 24): index = 3; break;
+      case (ram > 24 && ram <= 48): index = 4; break;
+      case (ram > 48 && ram <= 64): index = 5; break;
+      case (ram > 64 && ram <= 72): index = 6; break;
+      case (ram > 72 && ram <= 96): index = 7; break;
+      case (ram > 96 && ram <= 128): index = 8; break;
+      case (ram > 128 && ram <= 256): index = 9; break;
+      case (ram > 256 && ram <= 512): index = 10; break;
+      default: index = 10; break;
+    }
+    this.set('reservedRam', table[index].os * 1024);
+    this.set('hBaseRam', table[index].hbase * 1024);
+  }.observes('clusterData.ram'),
+
+  /**
+   * Provide an object where keys are property-names and values are the recommended defaults
+   * @param {object} localDB Object with information about hosts and master/slave components
+   * Example:
+   *  <code>
+   *    {
+   *       "hosts": {
+   *           "host1": {
+   *               "name": "host1",
+   *               "cpu": 1,
+   *               "memory": "6123683.00",
+   *               "disk_info": [{
+   *                   ....
+   *               },...]
+   *           },...
+   *       },
+   *       "masterComponentHosts": [{
+   *           "component": "NAMENODE",
+   *           "hostName": "host1",
+   *           "serviceId": "HDFS"
+   *       },...],
+   *       "slaveComponentHosts": [{
+   *           "componentName": "DATANODE",
+   *           "hosts": [{
+   *               "hostName": "host2"
+   *           }]
+   *       },...]
+   *   }
+   *  </code>
+   * @return {object}
+   */
+  getDefaults: function(localDB) {
+    this._super();
+    this.getClusterData(localDB);
+    var configs = {};
+    jQuery.extend(configs, this.get('configsTemplate'));
+    configs['yarn.nodemanager.resource.memory-mb'] = this.get('containers') * this.get('ramPerContainer');
+    configs['yarn.scheduler.minimum-allocation-mb'] = this.get('ramPerContainer');
+    configs['yarn.scheduler.maximum-allocation-mb'] = this.get('containers') * this.get('ramPerContainer');
+    configs['mapreduce.map.memory.mb'] = this.get('ramPerContainer');
+    configs['mapreduce.reduce.memory.mb'] = 2 * this.get('ramPerContainer');
+    configs['mapreduce.map.java.opts'] = Math.round(0.8 * this.get('ramPerContainer'));
+    configs['mapreduce.reduce.java.opts'] = Math.round(0.8 *2 * this.get('ramPerContainer'));
+    configs['yarn.app.mapreduce.am.resource.mb'] = 2 * this.get('ramPerContainer');
+    configs['yarn.app.mapreduce.am.command-opts'] = Math.round(0.8 * 2 * this.get('ramPerContainer'));
+    return configs;
+  },
+
+  /**
+   * Calculate needed cluster data (like disk count, cpu count, ram (in MB!) and hbase availability)
+   * @param {object} localDB Object with information about hosts and master/slave components
+   */
+  getClusterData: function(localDB) {
+    this._super();
+    var components = ['RESOURCEMANAGER', 'NODEMANAGER'];
+    var hosts = [];
+    if (!localDB.hosts || !(localDB.masterComponentHosts || localDB.slaveComponentHosts)) return;
+    var hBaseInstalled = !!localDB.masterComponentHosts.filterProperty('component', 'HBASE_MASTER').length;
+    components.forEach(function(component) {
+      var mc = localDB.masterComponentHosts.findProperty('component', component);
+      if (mc) {
+        if (!hosts.contains(mc.hostName)) {
+          hosts.push(mc.hostName);
+        }
+      }
+      else {
+        var sc = localDB.slaveComponentHosts.findProperty('componentName', component);
+        if (sc) {
+          sc.hosts.map(function(host) {
+            if (!hosts.contains(host.hostName)) {
+              hosts.push(host.hostName);
+            }
+          });
+        }
+      }
+    });
+    var clusterData = {
+      cpu: 0,
+      disk: 0,
+      ram: 0,
+      hBaseInstalled: hBaseInstalled
+    };
+    hosts.forEach(function(hostName) {
+      var host = localDB.hosts[hostName];
+      if (host) {
+        clusterData.cpu += parseInt(host.cpu);
+        clusterData.disk += host.disk_info.length;
+        clusterData.ram += Math.round(parseFloat(host.memory) / 1024);
+      }
+    });
+    this.set('clusterData', clusterData);
+  },
+
+  /**
+   * Verify <code>clusterData</code> - check if all properties are defined
+   */
+  clusterDataIsValid: function() {
+    if (!this.get('clusterData')) return false;
+    if (this.get('clusterData.ram') == null || this.get('clusterData.cpu') == null || this.get('clusterData.disk') == null  || this.get('clusterData.hBaseInstalled') == null) return false;
+    return true;
+  }
+
+});

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/e7c2b070/ambari-web/test/utils/defaults_providers/yarn_defaults_provider_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/utils/defaults_providers/yarn_defaults_provider_test.js b/ambari-web/test/utils/defaults_providers/yarn_defaults_provider_test.js
new file mode 100644
index 0000000..4f1efef
--- /dev/null
+++ b/ambari-web/test/utils/defaults_providers/yarn_defaults_provider_test.js
@@ -0,0 +1,295 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+var App = require('app');
+require('utils/defaults_providers/defaultsProvider');
+require('utils/defaults_providers/yarn_defaults_provider');
+
+describe('YARNDefaultsProvider', function() {
+
+  describe('#clusterDataIsValid', function() {
+    var tests = [
+      {clusterData: {disk: 12,ram: 48 * 1024,cpu: 12,hBaseInstalled: false},e: true},
+      {clusterData: {disk: null,ram: 48 * 1024,cpu: 12,hBaseInstalled: false},e: false},
+      {clusterData: {disk: 12,ram: null,cpu: 12,hBaseInstalled: false},e: false},
+      {clusterData: {disk: 12,ram: 48 * 1024,cpu: null,hBaseInstalled: false},e: false},
+      {clusterData: {disk: 12,ram: 48 * 1024,cpu: 12,hBaseInstalled: null},e: false},
+      {clusterData: {disk: 12,ram: 48 * 1024,cpu: 12},e: false},
+      {clusterData: {disk: 12,ram: 48 * 1024,hBaseInstalled: true},e: false},
+      {clusterData: {disk: 12,cpu: 12,hBaseInstalled: true},e: false},
+      {clusterData: {ram: 48 * 1024,cpu: 12,hBaseInstalled: false},e: false}
+    ];
+    tests.forEach(function(test) {
+      it((test.e?'valid':'invalid') + ' clusterData', function() {
+        App.YARNDefaultsProvider.set('clusterData', test.clusterData);
+        expect(App.YARNDefaultsProvider.clusterDataIsValid()).to.equal(test.e);
+      });
+    });
+  });
+
+  describe('#reservedMemoryRecommendations', function() {
+    var tests = [
+      {ram: null, e: {os: 1, hbase: 1}},
+      {ram: 2, e: {os: 1, hbase: 1}},
+      {ram: 4, e: {os: 1, hbase: 1}},
+      {ram: 6, e: {os: 2, hbase: 1}},
+      {ram: 8, e: {os: 2, hbase: 1}},
+      {ram: 12, e: {os: 2, hbase: 2}},
+      {ram: 16, e: {os: 2, hbase: 2}},
+      {ram: 20, e: {os: 4, hbase: 4}},
+      {ram: 24, e: {os: 4, hbase: 4}},
+      {ram: 36, e: {os: 6, hbase: 8}},
+      {ram: 48, e: {os: 6, hbase: 8}},
+      {ram: 56, e: {os: 8, hbase: 8}},
+      {ram: 64, e: {os: 8, hbase: 8}},
+      {ram: 68, e: {os: 8, hbase: 8}},
+      {ram: 72, e: {os: 8, hbase: 8}},
+      {ram: 84, e: {os: 12, hbase: 16}},
+      {ram: 96, e: {os: 12, hbase: 16}},
+      {ram: 112, e: {os: 24, hbase: 24}},
+      {ram: 128, e: {os: 24, hbase: 24}},
+      {ram: 196, e: {os: 32, hbase: 32}},
+      {ram: 256, e: {os: 32, hbase: 32}},
+      {ram: 384, e: {os: 64, hbase: 64}},
+      {ram: 512, e: {os: 64, hbase: 64}},
+      {ram: 756, e: {os: 64, hbase: 64}}
+    ];
+    App.YARNDefaultsProvider.set('clusterData');
+    tests.forEach(function(test) {
+      it('ram: ' + test.ram + ' GB', function() {
+        App.YARNDefaultsProvider.set('clusterData', {
+          disk: 12,
+          ram: test.ram * 1024,
+          cpu: 12,
+          hBaseInstalled: false
+        });
+        expect(App.YARNDefaultsProvider.get('reservedRam')).to.equal(test.e.os * 1024);
+        expect(App.YARNDefaultsProvider.get('hBaseRam')).to.equal(test.e.hbase * 1024);
+      });
+    });
+  });
+
+  describe('#recommendedMinimumContainerSize', function() {
+    it('No clusterData', function() {
+      App.YARNDefaultsProvider.set('clusterData', null);
+      expect(App.YARNDefaultsProvider.get('recommendedMinimumContainerSize')).to.equal(null);
+    });
+    it('No clusterData.ram', function() {
+      App.YARNDefaultsProvider.set('clusterData', {});
+      expect(App.YARNDefaultsProvider.get('recommendedMinimumContainerSize')).to.equal(null);
+    });
+
+    var tests = [
+      {ram: 3, e: 256},
+      {ram: 4, e: 512},
+      {ram: 6, e: 512},
+      {ram: 8, e: 1024},
+      {ram: 12, e: 1024},
+      {ram: 24, e: 2048}
+    ];
+
+    tests.forEach(function(test) {
+      it('ram: ' + test.ram + ' GB', function() {
+        App.YARNDefaultsProvider.set('clusterData', {
+          disk: 12,
+          ram: test.ram * 1024,
+          cpu: 12,
+          hBaseInstalled: false
+        });
+        expect(App.YARNDefaultsProvider.get('recommendedMinimumContainerSize')).to.equal(test.e);
+      });
+    });
+
+  });
+
+  describe('#containers', function() {
+    it('No clusterData', function() {
+      App.YARNDefaultsProvider.set('clusterData', null);
+      expect(App.YARNDefaultsProvider.get('containers')).to.equal(null);
+    });
+    it('Some clusterData metric is null', function() {
+      App.YARNDefaultsProvider.set('clusterData', {disk: null, cpu: 1, ram: 1});
+      expect(App.YARNDefaultsProvider.get('containers')).to.equal(null);
+      App.YARNDefaultsProvider.set('clusterData', {disk: 1, cpu: null, ram: 1});
+      expect(App.YARNDefaultsProvider.get('containers')).to.equal(null);
+      App.YARNDefaultsProvider.set('clusterData', {disk:1, cpu: 1, ram: null});
+      expect(App.YARNDefaultsProvider.get('containers')).to.equal(null);
+    });
+
+    var tests = [
+      {
+        clusterData: {
+          disk: 12,
+          ram: 48 * 1024,
+          cpu: 12,
+          hBaseInstalled: false
+        },
+        e: 21
+      },
+      {
+        clusterData: {
+          disk: 12,
+          ram: 48 * 1024,
+          cpu: 12,
+          hBaseInstalled: true
+        },
+        e: 17
+      }
+    ];
+
+    tests.forEach(function(test) {
+      it((test.hBaseInstalled?'With':'Without') + ' hBase', function() {
+        App.YARNDefaultsProvider.set('clusterData', test.clusterData);
+        expect(App.YARNDefaultsProvider.get('containers')).to.equal(test.e);
+      });
+    });
+
+  });
+
+  describe('#ramPerContainer', function() {
+    it('No clusterData', function() {
+      App.YARNDefaultsProvider.set('clusterData', null);
+      expect(App.YARNDefaultsProvider.get('ramPerContainer')).to.equal(null);
+    });
+    var tests = [
+      {
+        clusterData: {
+          disk: 12,
+          ram: 48 * 1024,
+          cpu: 12,
+          hBaseInstalled: false
+        },
+        e: 2048
+      },
+      {
+        clusterData: {
+          disk: 12,
+          ram: 16 * 1024,
+          cpu: 12,
+          hBaseInstalled: true
+        },
+        e: 1024
+      }
+    ];
+
+    tests.forEach(function(test) {
+      it((test.hBaseInstalled?'With':'Without') + ' hBase', function() {
+        App.YARNDefaultsProvider.set('clusterData', test.clusterData);
+        expect(App.YARNDefaultsProvider.get('ramPerContainer')).to.equal(test.e);
+      });
+    });
+  });
+
+  describe('#getDefaults', function() {
+    var tests = [
+      {
+        localDB: {},
+        m: 'Empty localDB',
+        e: null
+      },
+      {
+        localDB: {
+          "masterComponentHosts": []
+        },
+        m: 'localDB without hosts',
+        e: null
+      },
+      {
+        localDB: {
+          "hosts": {}
+        },
+        m: 'localDB without masterComponentHosts amd slaveComponentHosts',
+        e: null
+      },
+      {
+        localDB: {
+          "hosts": {
+            "host1": {"name": "host1","cpu": 8,"memory": "25165824.00","disk_info": [{},{},{},{},{},{},{},{}]},
+            "host2": {"name": "host2","cpu": 4,"memory": "25165824.00","disk_info": [{},{},{},{}]}
+          },
+          "masterComponentHosts": [
+            {"component": "RESOURCEMANAGER","hostName": "host1","serviceId": "HDFS"}
+          ],
+          "slaveComponentHosts": [
+            {
+              "componentName": "NODEMANAGER",
+              "hosts": [{"hostName": "host2"}]
+            }
+          ]
+        },
+        m: 'Without HBase',
+        e: {
+          'mapreduce.map.java.opts': 1638,
+          'mapreduce.map.memory.mb': 2048,
+          'mapreduce.reduce.java.opts': 3277,
+          'mapreduce.reduce.memory.mb': 4096,
+          'yarn.app.mapreduce.am.command-opts': 3277,
+          'yarn.app.mapreduce.am.resource.mb': 4096,
+          'yarn.nodemanager.resource.memory-mb': 43008,
+          'yarn.scheduler.maximum-allocation-mb': 43008,
+          'yarn.scheduler.minimum-allocation-mb': 2048
+        }
+      },
+      {
+        localDB: {
+          "hosts": {
+            "host1": {"name": "host1","cpu": 8,"memory": "25165824.00","disk_info": [{},{},{},{},{},{},{},{}]},
+            "host2": {"name": "host2","cpu": 4,"memory": "12582912.00","disk_info": [{},{},{},{}]}
+          },
+          "masterComponentHosts": [
+            {"component": "RESOURCEMANAGER","hostName": "host1","serviceId": "HDFS"},
+            {"component": "HBASE_MASTER","hostName": "host1","serviceId": "HDFS"}
+          ],
+          "slaveComponentHosts": [
+            {
+              "componentName": "NODEMANAGER",
+              "hosts": [{"hostName": "host2"}]
+            }
+          ]
+        },
+        m: 'With HBase',
+        e: {
+          'mapreduce.map.java.opts': 1638,
+          'mapreduce.map.memory.mb': 2048,
+          'mapreduce.reduce.java.opts': 3277,
+          'mapreduce.reduce.memory.mb': 4096,
+          'yarn.app.mapreduce.am.command-opts': 3277,
+          'yarn.app.mapreduce.am.resource.mb': 4096,
+          'yarn.nodemanager.resource.memory-mb': 22528,
+          'yarn.scheduler.maximum-allocation-mb': 22528,
+          'yarn.scheduler.minimum-allocation-mb': 2048
+        }
+      }
+    ];
+    tests.forEach(function(test) {
+      it(test.m, function() {
+        App.YARNDefaultsProvider.set('clusterData', null);
+        var configs = App.YARNDefaultsProvider.getDefaults(test.localDB);
+
+        for(var config in configs) {
+          if (test.e) {
+            expect(configs[config]).to.equal(test.e[config]);
+          }
+          else {
+            expect(configs[config] == 0 || configs[config] == null).to.equal(true);
+          }
+        }
+      });
+    });
+  });
+
+});