Repository: oozie
Updated Branches:
  refs/heads/master 7c4c8ecfd -> 10e8ecc20


OOZIE-1865 Oozie servers can't talk to each other with Oozie HA and Kerberos 
(rkanter)


Project: http://git-wip-us.apache.org/repos/asf/oozie/repo
Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/10e8ecc2
Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/10e8ecc2
Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/10e8ecc2

Branch: refs/heads/master
Commit: 10e8ecc20c98345d9741c26c74f3e668ee08d785
Parents: 7c4c8ec
Author: Robert Kanter <[email protected]>
Authored: Sat Jul 5 11:40:16 2014 -0700
Committer: Robert Kanter <[email protected]>
Committed: Sat Jul 5 11:40:16 2014 -0700

----------------------------------------------------------------------
 docs/src/site/twiki/AG_Install.twiki | 38 +++++++++++++++++++++++++------
 release-log.txt                      |  1 +
 2 files changed, 32 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/oozie/blob/10e8ecc2/docs/src/site/twiki/AG_Install.twiki
----------------------------------------------------------------------
diff --git a/docs/src/site/twiki/AG_Install.twiki 
b/docs/src/site/twiki/AG_Install.twiki
index 0d22fe9..8b0d110 100644
--- a/docs/src/site/twiki/AG_Install.twiki
+++ b/docs/src/site/twiki/AG_Install.twiki
@@ -798,7 +798,7 @@ their own HA, they should have their own namespace.  The 
default value is shown
 </property>
 </verbatim>
 
-5. Change the value of OOZIE_BASE_URL in oozie-env.sh to point to the 
loadbalancer or virtual IP, for example:
+5. Change the value of =OOZIE_BASE_URL= in oozie-env.sh to point to the 
loadbalancer or virtual IP, for example:
 
 <verbatim>
 export OOZIE_BASE_URL="http://my.loadbalancer.hostname:11000/oozie";
@@ -811,20 +811,22 @@ default is =${OOZIE_HTTP_HOSTNAME}= (i.e. the hostname).
 export OOZIE_INSTANCE_ID="${OOZIE_HTTP_HOSTNAME}"
 </verbatim>
 
-7. Start the ZooKeeper servers.
+7. (Optional) If using a secure cluster, see [[AG_Install#Security][Security]] 
below on configuring Kerberos with Oozie HA.
 
-8. Start the Oozie servers.
+8. Start the ZooKeeper servers.
+
+9. Start the Oozie servers.
 
 Note: If one of the Oozie servers becomes unavailable, querying Oozie for the 
logs from a job in the Web UI, REST API, or client may
 be missing information until that server comes back up.
 
 ---++++ Security
 
-Oozie HA works with the existing Oozie security framework and settings. For 
log streaming to work properly in a secure
-setup =oozie.authentication.type= must be set properly on each server (though 
this is already required if using security in the
-first place).
+Oozie HA works with the existing Oozie security framework and settings.
+See the [[AG_Install#Oozie_User_Authentication_Configuration][Oozie User 
Authentication Configuration]] section for details.
+Below are some additional steps and information specific to Oozie HA:
 
-(Optional) To prevent unauthorized users or programs from interacting with or 
reading the znodes used by Oozie in ZooKeeper,
+1. (Optional) To prevent unauthorized users or programs from interacting with 
or reading the znodes used by Oozie in ZooKeeper,
 you can tell Oozie to use Kerberos-backed ACLs.  To enforce this for all of 
the Oozie-related znodes, simply add the following
 property to oozie-site.xml in all Oozie servers and set it to =true=.  The 
default is =false=.
 
@@ -852,6 +854,28 @@ kerberos.removeHostFromPrincipal=true
 kerberos.removeRealmFromPrincipal=true
 </verbatim>
 
+2. Until Hadoop 2.5.0 and later, there is a known limitation where each Oozie 
server can only use one HTTP principal.  However,
+for Oozie HA, we need to use two HTTP principals: 
=HTTP/oozie-server-host@realm= and =HTTP/load-balancer-host@realm=.  This
+allows access to each Oozie server directly and through the load balancer.  
While users should always go through the load balancer,
+certain features (e.g. log streaming) require the Oozie servers to talk to 
each other directly; it can also be helpful for an
+administrator to talk directly to an Oozie server.  So, if using a Hadoop 
version prior to 2.5.0, you will have to choose which
+HTTP principal to use as you cannot use both; it is recommended to choose 
=HTTP/load-balancer-host@realm= so users can connect
+through the load balancer.  This will prevent Oozie servers from talking to 
each other directly, which will effectively disable
+log streaming.
+
+For Hadoop 2.5.0 and later:
+
+2a. When creating the keytab used by Oozie, make sure to include Oozie's 
principal and the two HTTP principals mentioned above.
+
+2b. Set =oozie.authentication.kerberos.principal= to * (that is, an asterisks) 
so it will use both HTTP principals.
+
+For earlier versions of Hadoop:
+
+2a. When creating the keytab used by Oozie, make sure to include Oozie's 
principal and the load balancer HTTP principal
+
+2b. Set =oozie.authentication.kerberos.principal= to 
=HTTP/load-balancer-host@realm=.
+
+
 ---++++ JobId sequence
 Oozie in HA mode, uses ZK to generate job id sequence. Job Ids are of 
following format.
 <Id sequence>-<yyMMddHHmmss(server start time)>-<system_id>-<W/C/B>

http://git-wip-us.apache.org/repos/asf/oozie/blob/10e8ecc2/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index b700474..eee06a4 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
 -- Oozie 4.1.0 release (trunk - unreleased)
 
+OOZIE-1865 Oozie servers can't talk to each other with Oozie HA and Kerberos 
(rkanter)
 OOZIE-1821 Oozie java action fails due to AlreadyBeingCreatedException 
(abhishek.agarwal via rkanter)
 OOZIE-1532 Purging should remove completed children job for long running 
coordinator jobs (bzhang)
 OOZIE-1909 log prefix information missing in JavaActionExecutor.check (ryota)

Reply via email to