You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oozie.apache.org by tu...@apache.org on 2012/03/06 15:08:36 UTC

svn commit: r1297486 - in /incubator/oozie/trunk: ./ core/src/main/conf/ core/src/main/java/org/apache/oozie/service/ core/src/main/resources/ core/src/test/java/org/apache/oozie/service/ core/src/test/java/org/apache/oozie/test/ core/src/test/resource...

Author: tucu
Date: Tue Mar  6 14:08:35 2012
New Revision: 1297486

URL: http://svn.apache.org/viewvc?rev=1297486&view=rev
Log:
OOZIE-736 Add support for configurations per JT/NN (tucu)

Added:
    incubator/oozie/trunk/core/src/main/conf/hadoop-config.xml
    incubator/oozie/trunk/core/src/test/resources/hadoop-config.xml
    incubator/oozie/trunk/core/src/test/resources/test-hadoop-config.xml
    incubator/oozie/trunk/docs/src/site/twiki/AG_HadoopConfiguration.twiki
Removed:
    incubator/oozie/trunk/docs/src/site/twiki/DG_UsingHadoopKerberos.twiki
Modified:
    incubator/oozie/trunk/core/src/main/java/org/apache/oozie/service/HadoopAccessorService.java
    incubator/oozie/trunk/core/src/main/resources/oozie-default.xml
    incubator/oozie/trunk/core/src/test/java/org/apache/oozie/service/TestHadoopAccessorService.java
    incubator/oozie/trunk/core/src/test/java/org/apache/oozie/test/XFsTestCase.java
    incubator/oozie/trunk/core/src/test/java/org/apache/oozie/test/XTestCase.java
    incubator/oozie/trunk/docs/src/site/twiki/index.twiki
    incubator/oozie/trunk/release-log.txt

Added: incubator/oozie/trunk/core/src/main/conf/hadoop-config.xml
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/core/src/main/conf/hadoop-config.xml?rev=1297486&view=auto
==============================================================================
--- incubator/oozie/trunk/core/src/main/conf/hadoop-config.xml (added)
+++ incubator/oozie/trunk/core/src/main/conf/hadoop-config.xml Tue Mar  6 14:08:35 2012
@@ -0,0 +1,37 @@
+<?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>mapreduce.jobtracker.kerberos.principal</name>
+        <value>map/_HOST@${localRealm}</value>
+    </property>
+
+    <property>
+        <name>dfs.namenode.kerberos.principal</name>
+        <value>hdfs/_HOST@${localRealm}</value>
+    </property>
+
+    <property>
+        <name>mapreduce.framework.name</name>
+        <value>yarn</value>
+    </property>
+
+</configuration>

Modified: incubator/oozie/trunk/core/src/main/java/org/apache/oozie/service/HadoopAccessorService.java
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/core/src/main/java/org/apache/oozie/service/HadoopAccessorService.java?rev=1297486&r1=1297485&r2=1297486&view=diff
==============================================================================
--- incubator/oozie/trunk/core/src/main/java/org/apache/oozie/service/HadoopAccessorService.java (original)
+++ incubator/oozie/trunk/core/src/main/java/org/apache/oozie/service/HadoopAccessorService.java Tue Mar  6 14:08:35 2012
@@ -31,11 +31,16 @@ import org.apache.oozie.ErrorCode;
 import org.apache.oozie.util.ParamChecker;
 import org.apache.oozie.util.XConfiguration;
 import org.apache.oozie.util.XLog;
+import org.apache.oozie.workflow.WorkflowApp;
 
+import java.io.File;
+import java.io.FileInputStream;
 import java.io.IOException;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.security.PrivilegedExceptionAction;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.Set;
 import java.util.HashSet;
 import java.util.concurrent.ConcurrentHashMap;
@@ -52,20 +57,22 @@ public class HadoopAccessorService imple
     public static final String CONF_PREFIX = Service.CONF_PREFIX + "HadoopAccessorService.";
     public static final String JOB_TRACKER_WHITELIST = CONF_PREFIX + "jobTracker.whitelist";
     public static final String NAME_NODE_WHITELIST = CONF_PREFIX + "nameNode.whitelist";
+    public static final String HADOOP_CONFS = CONF_PREFIX + "hadoop.configurations";
     public static final String KERBEROS_AUTH_ENABLED = CONF_PREFIX + "kerberos.enabled";
     public static final String KERBEROS_KEYTAB = CONF_PREFIX + "keytab.file";
     public static final String KERBEROS_PRINCIPAL = CONF_PREFIX + "kerberos.principal";
 
     private Set<String> jobTrackerWhitelist = new HashSet<String>();
     private Set<String> nameNodeWhitelist = new HashSet<String>();
+    private Map<String, Configuration> hadoopConfigs = new HashMap<String, Configuration>();
 
     private ConcurrentMap<String, UserGroupInformation> userUgiMap;
-    private String localRealm;
 
     public void init(Services services) throws ServiceException {
         init(services.getConf());
     }
 
+    //for testing purposes, see XFsTestCase
     public void init(Configuration conf) throws ServiceException {
         for (String name : conf.getStringCollection(JOB_TRACKER_WHITELIST)) {
             String tmp = name.toLowerCase().trim();
@@ -98,9 +105,10 @@ public class HadoopAccessorService imple
             ugiConf.set("hadoop.security.authentication", "simple");
             UserGroupInformation.setConfiguration(ugiConf);
         }
-        localRealm = conf.get("local.realm");
 
         userUgiMap = new ConcurrentHashMap<String, UserGroupInformation>();
+
+        loadHadoopConfigs(conf);
     }
 
     private void kerberosInit(Configuration serviceConf) throws ServiceException {
@@ -129,6 +137,35 @@ public class HadoopAccessorService imple
             }
     }
 
+    private void loadHadoopConfigs(Configuration serviceConf) throws ServiceException {
+        try {
+            File configDir = new File(ConfigurationService.getConfigurationDirectory());
+            String[] confDefs = serviceConf.getStrings(HADOOP_CONFS, "*=hadoop-config.xml");
+            if (confDefs.length != 1 && confDefs[0].trim().length() > 0) {
+                for (String confDef : confDefs) {
+                    String[] parts = confDef.split("=");
+                    String hostPort = parts[0];
+                    String confFile = parts[1];
+                    File configFile = new File(configDir, confFile);
+                    if (configFile.exists()) {
+                        Configuration conf = new XConfiguration(new FileInputStream(configFile));
+                        hadoopConfigs.put(hostPort.toLowerCase(), conf);
+                    }
+                    else {
+                        throw new ServiceException(ErrorCode.E0100, getClass().getName(),
+                                                   "could not find hadoop configuration file: " + confFile);
+                    }
+                }
+            }
+        }
+        catch (ServiceException ex) {
+            throw ex;
+        }
+        catch (Exception ex) {
+            throw new ServiceException(ErrorCode.E0100, getClass().getName(), ex.getMessage(), ex);
+        }
+    }
+
     public void destroy() {
     }
 
@@ -146,6 +183,17 @@ public class HadoopAccessorService imple
         return ugi;
     }
 
+    public Configuration getConfiguration(String hostPort) {
+        Configuration conf = hadoopConfigs.get(hostPort.toLowerCase());
+        if (conf == null) {
+            conf = hadoopConfigs.get("*");
+            if (conf == null) {
+                conf = new XConfiguration();
+            }
+        }
+        return conf;
+    }
+
     /**
      * Return a JobClient created with the provided user/group.
      * 
@@ -156,12 +204,13 @@ public class HadoopAccessorService imple
      */
     public JobClient createJobClient(String user, String group, final JobConf conf) throws HadoopAccessorException {
         ParamChecker.notEmpty(user, "user");
-        validateJobTracker(conf.get("mapred.job.tracker"));
+        String jobTracker = conf.get("mapred.job.tracker");
+        validateJobTracker(jobTracker);
+        XConfiguration.injectDefaults(getConfiguration(jobTracker), conf);
         try {
             UserGroupInformation ugi = getUGI(user);
             JobClient jobClient = ugi.doAs(new PrivilegedExceptionAction<JobClient>() {
                 public JobClient run() throws Exception {
-                    conf.set("mapreduce.framework.name", "yarn");
                     return new JobClient(conf);
                 }
             });
@@ -186,23 +235,8 @@ public class HadoopAccessorService imple
      */
     public FileSystem createFileSystem(String user, String group, final Configuration conf)
             throws HadoopAccessorException {
-        ParamChecker.notEmpty(user, "user");
         try {
-            validateNameNode(new URI(conf.get("fs.default.name")).getAuthority());
-            UserGroupInformation ugi = getUGI(user);
-            return ugi.doAs(new PrivilegedExceptionAction<FileSystem>() {
-                public FileSystem run() throws Exception {
-                    Configuration defaultConf = new Configuration();
-                    XConfiguration.copy(conf, defaultConf);
-                    return FileSystem.get(defaultConf);
-                }
-            });
-        }
-        catch (InterruptedException ex) {
-            throw new HadoopAccessorException(ErrorCode.E0902, ex);
-        }
-        catch (IOException ex) {
-            throw new HadoopAccessorException(ErrorCode.E0902, ex);
+            return createFileSystem(user, group,new URI(conf.get("fs.default.name")), conf);
         }
         catch (URISyntaxException ex) {
             throw new HadoopAccessorException(ErrorCode.E0902, ex);
@@ -220,16 +254,29 @@ public class HadoopAccessorService imple
     public FileSystem createFileSystem(String user, String group, final URI uri, final Configuration conf)
             throws HadoopAccessorException {
         ParamChecker.notEmpty(user, "user");
-        validateNameNode(uri.getAuthority());
+        String nameNode = uri.getAuthority();
+        if (nameNode == null) {
+            nameNode = conf.get("fs.default.name");
+            if (nameNode != null) {
+                try {
+                    nameNode = new URI(nameNode).getAuthority();
+                }
+                catch (URISyntaxException ex) {
+                    throw new HadoopAccessorException(ErrorCode.E0902, ex);
+                }
+            }
+        }
+        validateNameNode(nameNode);
+
+        //it is null in the case of localFileSystem (in many testcases)
+        if (nameNode != null) {
+            XConfiguration.injectDefaults(getConfiguration(nameNode), conf);
+        }
         try {
             UserGroupInformation ugi = getUGI(user);
             return ugi.doAs(new PrivilegedExceptionAction<FileSystem>() {
                 public FileSystem run() throws Exception {
                     Configuration defaultConf = new Configuration();
-
-                    defaultConf.set(WorkflowAppService.HADOOP_JT_KERBEROS_NAME, "mapred/_HOST@" + localRealm);
-                    defaultConf.set(WorkflowAppService.HADOOP_NN_KERBEROS_NAME, "hdfs/_HOST@" + localRealm);
-
                     XConfiguration.copy(conf, defaultConf);
                     return FileSystem.get(uri, defaultConf);
                 }

Modified: incubator/oozie/trunk/core/src/main/resources/oozie-default.xml
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/core/src/main/resources/oozie-default.xml?rev=1297486&r1=1297485&r2=1297486&view=diff
==============================================================================
--- incubator/oozie/trunk/core/src/main/resources/oozie-default.xml (original)
+++ incubator/oozie/trunk/core/src/main/resources/oozie-default.xml Tue Mar  6 14:08:35 2012
@@ -1351,7 +1351,17 @@
             Whitelisted job tracker for Oozie service.
         </description>
     </property>
-    
+
+    <property>
+        <name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
+        <value>*=hadoop-config.xml</value>
+        <description>
+            Comma separated AUTHORITY=CONFIG_FILE, 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.
+        </description>
+    </property>
+
     <!-- Credentials -->    
     <property>
         <name>oozie.credentials.credentialclasses</name>

Modified: incubator/oozie/trunk/core/src/test/java/org/apache/oozie/service/TestHadoopAccessorService.java
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/core/src/test/java/org/apache/oozie/service/TestHadoopAccessorService.java?rev=1297486&r1=1297485&r2=1297486&view=diff
==============================================================================
--- incubator/oozie/trunk/core/src/test/java/org/apache/oozie/service/TestHadoopAccessorService.java (original)
+++ incubator/oozie/trunk/core/src/test/java/org/apache/oozie/service/TestHadoopAccessorService.java Tue Mar  6 14:08:35 2012
@@ -21,13 +21,23 @@ import org.apache.oozie.test.XTestCase;
 import org.apache.hadoop.mapred.JobConf;
 import org.apache.hadoop.mapred.JobClient;
 import org.apache.hadoop.fs.FileSystem;
+import org.apache.oozie.util.IOUtils;
 
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
 import java.net.URI;
 
 public class TestHadoopAccessorService extends XTestCase {
 
     protected void setUp() throws Exception {
         super.setUp();
+        InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("test-hadoop-config.xml");
+        OutputStream os = new FileOutputStream(new File(getTestCaseConfDir(), "test-hadoop-config.xml"));
+        IOUtils.copyStream(is, os);
+        setSystemProperty("oozie.service.HadoopAccessorService.hadoop.configurations",
+                          "*=hadoop-config.xml,test=test-hadoop-config.xml");
         if (System.getProperty("oozie.test.hadoop.security", "simple").equals("kerberos")) {
             setSystemProperty("oozie.service.HadoopAccessorService.kerberos.enabled", "true");
             setSystemProperty("oozie.service.HadoopAccessorService.keytab.file", getKeytabFile());
@@ -46,6 +56,9 @@ public class TestHadoopAccessorService e
         Services services = Services.get();
         HadoopAccessorService has = services.get(HadoopAccessorService.class);
         assertNotNull(has);
+        assertNotNull(has.getConfiguration("*"));
+        assertNotNull(has.getConfiguration("test"));
+        assertEquals("bar", has.getConfiguration("test").get("foo"));
     }
     public void testAccessor() throws Exception {
         Services services = Services.get();

Modified: incubator/oozie/trunk/core/src/test/java/org/apache/oozie/test/XFsTestCase.java
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/core/src/test/java/org/apache/oozie/test/XFsTestCase.java?rev=1297486&r1=1297485&r2=1297486&view=diff
==============================================================================
--- incubator/oozie/trunk/core/src/test/java/org/apache/oozie/test/XFsTestCase.java (original)
+++ incubator/oozie/trunk/core/src/test/java/org/apache/oozie/test/XFsTestCase.java Tue Mar  6 14:08:35 2012
@@ -25,6 +25,7 @@ import org.apache.hadoop.fs.permission.F
 import org.apache.hadoop.fs.permission.FsAction;
 import org.apache.hadoop.mapred.JobClient;
 import org.apache.hadoop.mapred.JobConf;
+import org.apache.oozie.util.XConfiguration;
 import org.apache.oozie.util.XLog;
 import org.apache.oozie.service.HadoopAccessorException;
 import org.apache.oozie.service.HadoopAccessorService;
@@ -55,7 +56,7 @@ public abstract class XFsTestCase extend
      */
     protected void setUp() throws Exception {
         super.setUp();
-        Configuration conf = new Configuration();
+        Configuration conf = new XConfiguration();
         conf.setBoolean("oozie.service.HadoopAccessorService.kerberos.enabled",
                         System.getProperty("oozie.test.hadoop.security", "simple").equals("kerberos"));
         conf.set("oozie.service.HadoopAccessorService.keytab.file", getKeytabFile());
@@ -63,9 +64,11 @@ public abstract class XFsTestCase extend
         conf.set("local.realm", getRealm());
         injectKerberosInfo(conf);
 
+        conf.set("oozie.service.HadoopAccessorService.hadoop.configurations", "*=hadoop-config.xml");
 
         has = new HadoopAccessorService();
         has.init(conf);
+
         fileSystem = has.createFileSystem(getTestUser(), getTestGroup(), new URI(getNameNodeUri()), conf);
         Path path = new Path(fileSystem.getWorkingDirectory(), getTestCaseDir().substring(1));
         fsTestDir = fileSystem.makeQualified(path);

Modified: incubator/oozie/trunk/core/src/test/java/org/apache/oozie/test/XTestCase.java
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/core/src/test/java/org/apache/oozie/test/XTestCase.java?rev=1297486&r1=1297485&r2=1297486&view=diff
==============================================================================
--- incubator/oozie/trunk/core/src/test/java/org/apache/oozie/test/XTestCase.java (original)
+++ incubator/oozie/trunk/core/src/test/java/org/apache/oozie/test/XTestCase.java Tue Mar  6 14:08:35 2012
@@ -253,6 +253,10 @@ public abstract class XTestCase extends 
         File target = new File(testCaseConfDir, "oozie-site.xml");
         IOUtils.copyStream(new FileInputStream(source), new FileOutputStream(target));
 
+        source = new File(OOZIE_SRC_DIR, "core/src/test/resources/hadoop-config.xml");
+        target = new File(testCaseConfDir, "hadoop-config.xml");
+        IOUtils.copyStream(new FileInputStream(source), new FileOutputStream(target));
+
         if (System.getProperty("oozielocal.log") == null) {
             setSystemProperty("oozielocal.log", "/tmp/oozielocal.log");
         }
@@ -262,9 +266,6 @@ public abstract class XTestCase extends 
         if (System.getProperty("oozie.test.hadoop.minicluster", "true").equals("true")) {
             setUpEmbeddedHadoop();
         }
-        if (System.getProperty("hadoop20", "false").equals("true")) {
-            System.setProperty("oozie.services.ext", "org.apache.oozie.service.HadoopAccessorService");
-        }
 
         if (System.getProperty("oozie.test.db.host") == null) {
            System.setProperty("oozie.test.db.host", "localhost");

Added: incubator/oozie/trunk/core/src/test/resources/hadoop-config.xml
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/core/src/test/resources/hadoop-config.xml?rev=1297486&view=auto
==============================================================================
--- incubator/oozie/trunk/core/src/test/resources/hadoop-config.xml (added)
+++ incubator/oozie/trunk/core/src/test/resources/hadoop-config.xml Tue Mar  6 14:08:35 2012
@@ -0,0 +1,37 @@
+<?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>mapreduce.jobtracker.kerberos.principal</name>
+        <value>map/_HOST@${localRealm}</value>
+    </property>
+
+    <property>
+        <name>dfs.namenode.kerberos.principal</name>
+        <value>hdfs/_HOST@${localRealm}</value>
+    </property>
+
+    <property>
+        <name>mapreduce.framework.name</name>
+        <value>yarn</value>
+    </property>
+
+</configuration>

Added: incubator/oozie/trunk/core/src/test/resources/test-hadoop-config.xml
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/core/src/test/resources/test-hadoop-config.xml?rev=1297486&view=auto
==============================================================================
--- incubator/oozie/trunk/core/src/test/resources/test-hadoop-config.xml (added)
+++ incubator/oozie/trunk/core/src/test/resources/test-hadoop-config.xml Tue Mar  6 14:08:35 2012
@@ -0,0 +1,27 @@
+<?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>foo</name>
+        <value>bar</value>
+    </property>
+
+</configuration>

Added: incubator/oozie/trunk/docs/src/site/twiki/AG_HadoopConfiguration.twiki
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/docs/src/site/twiki/AG_HadoopConfiguration.twiki?rev=1297486&view=auto
==============================================================================
--- incubator/oozie/trunk/docs/src/site/twiki/AG_HadoopConfiguration.twiki (added)
+++ incubator/oozie/trunk/docs/src/site/twiki/AG_HadoopConfiguration.twiki Tue Mar  6 14:08:35 2012
@@ -0,0 +1,89 @@
+<noautolink>
+
+[[index][::Go back to Oozie Documentation Index::]]
+
+---+!! Hadoop Configuration
+
+---++ Hadoop Services Whitelisting
+
+Oozie supports whitelisting Hadoop services (JobTracker, HDFS), via 2 configuration properties:
+
+<verbatim>
+...
+    <property>
+        <name>oozie.service.HadoopAccessorService.jobTracker.whitelist</name>
+        <value> </value>
+        <description>
+            Whitelisted job tracker for Oozie service.
+        </description>
+    </property>
+    <property>
+        <name>oozie.service.HadoopAccessorService.nameNode.whitelist</name>
+        <value> </value>
+        <description>
+            Whitelisted job tracker for Oozie service.
+        </description>
+    </property>
+...
+</verbatim>
+
+The value must follow the pattern =[<AUTHORITY>,]*=. Where =<AUTHORITY>= is the =HOST:PORT= of
+the Hadoop service (JobTracker, HDFS).
+
+If the value is empty any HOST:PORT is accepted. Emtpy is the default value.
+
+---++ Hadoop Default Configuration Values
+
+Oozie supports Hadoop configuration equivalent to the Hadoop =*-sitel.xml= files.
+
+Instead supporting multiple files (core, hdfs, yarn, mapred), Oozie support a single file per Hadoop service
+(JobTracker, HDFS).
+
+The configuration property in the =oozie-site.xml= is =oozie.service.HadoopAccessorService.hadoop.configurations=
+and its value must follow the pattern =[<AUTHORITY>=<CONFIG_FILE>,]*=. Where =<AUTHORITY>= is the =HOST:PORT= of
+the Hadoop service (JobTracker, HDFS). The =<CONFIG_FILE>= is the Hadoop configuration file to load for the
+specified Hadoop service. This configuration file is looked in the Oozie configuration directory.
+
+In addition to explicit authorities, a '*' wildcard is supported. The configuration file associated with the wildcard
+will be used as default if there is no configuration for the requested Hadoop service.
+
+For example, the configuration in the =oozie-site.xml= would lookl like:
+
+<verbatim>
+...
+    <property>
+        <name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
+        <value>*=hadoop-config.xml,jt-bar:8021=bar.xml,nn-bar:8020=bar.xml</value>
+    </property>
+...
+</verbatim>
+
+The Hadoop configuration files use the Hadoop configuration syntax.
+
+By default Oozie defines =*=hadoop-config.xml= and the default values of the =hadoop-config.xml= file are:
+
+
+<verbatim>
+<configuration>
+    <property>
+        <name>mapreduce.jobtracker.kerberos.principal</name>
+        <value>map/_HOST@${localRealm}</value>
+    </property>
+    <property>
+        <name>dfs.namenode.kerberos.principal</name>
+        <value>hdfs/_HOST@${localRealm}</value>
+    </property>
+    <property>
+        <name>mapreduce.framework.name</name>
+        <value>yarn</value>
+    </property>
+</configuration>
+</verbatim>
+
+---++ Limitations
+
+All actions in a workflow application must interact with the same Hadoop JobTracker and NameNode.
+
+[[index][::Go back to Oozie Documentation Index::]]
+
+</noautolink>

Modified: incubator/oozie/trunk/docs/src/site/twiki/index.twiki
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/docs/src/site/twiki/index.twiki?rev=1297486&r1=1297485&r2=1297486&view=diff
==============================================================================
--- incubator/oozie/trunk/docs/src/site/twiki/index.twiki (original)
+++ incubator/oozie/trunk/docs/src/site/twiki/index.twiki Tue Mar  6 14:08:35 2012
@@ -44,7 +44,6 @@ Enough reading already? Follow the steps
    * [[http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSPIntro7.html#wp77280][EL Expression Language Quick Reference]]
    * [[DG_CommandLineTool][Command Line Tool]]
    * [[DG_WorkflowReRun][Workflow Re-runs Explained]]
-   * [[DG_UsingHadoopKerberos][Using a Hadoop cluster with Kerberos Authentication]]
 
    * [[./client/apidocs/index.html][Oozie Client Javadocs]]
    * [[./core/apidocs/index.html][Oozie Core Javadocs]]
@@ -62,6 +61,7 @@ Enough reading already? Follow the steps
 ---++ Administrator Documentation
 
    * [[AG_Install][Oozie Install]]
+   * [[AG_HadoopConfiguration][Hadoop Configuration]]
    * [[AG_Monitoring][Oozie Monitoring]]
    * [[DG_CommandLineTool][Command Line Tool]]
    * [[AG_OozieUpgrade][Oozie Upgrade]]

Modified: incubator/oozie/trunk/release-log.txt
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/release-log.txt?rev=1297486&r1=1297485&r2=1297486&view=diff
==============================================================================
--- incubator/oozie/trunk/release-log.txt (original)
+++ incubator/oozie/trunk/release-log.txt Tue Mar  6 14:08:35 2012
@@ -1,5 +1,6 @@
 -- Oozie 3.2.0 release
 
+OOZIE-736 Add support for configurations per JT/NN (tucu)
 OOZIE-734 Simplify Kerberos/HadoopAccessorService code and remove Kerberos/DoAs code (tucu)
 OOZIE-631 Oozie DB create/upgrade tool (tucu)
 OOZIE-729 SubmitMRCommand & SubmitMRXCommant testcases fail with Hadoop 0.23 (tucu)