You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@oozie.apache.org by "Robert Kanter (JIRA)" <ji...@apache.org> on 2013/10/02 23:51:44 UTC

[jira] [Commented] (OOZIE-1526) Oozie does not work with a secure HA JobTracker or ResourceManager

    [ https://issues.apache.org/jira/browse/OOZIE-1526?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13784490#comment-13784490 ] 

Robert Kanter commented on OOZIE-1526:
--------------------------------------

[~rohini], any additional thoughts on a better way to address this issue?  

> Oozie does not work with a secure HA JobTracker or ResourceManager
> ------------------------------------------------------------------
>
>                 Key: OOZIE-1526
>                 URL: https://issues.apache.org/jira/browse/OOZIE-1526
>             Project: Oozie
>          Issue Type: Bug
>          Components: security
>    Affects Versions: trunk, 3.3.1, 3.3.2, 4.0.0
>            Reporter: Robert Kanter
>            Assignee: Robert Kanter
>         Attachments: OOZIE-1526.patch, OOZIE-1526.patch, OOZIE-1526.patch
>
>
> HadoopAccessorService#getMRTokenRenewerInternal handles getting the delegation token for the JT/RM.  OOZIE-1159 modified this slightly and it now tries to parse the JT/RM address to get the hostname.  However, if you try to use JT HA (which isn't in vanilla Hadoop), it uses a logical name (e.g. "ha-jt-uri") just like we do with HDFS HA.  As such, when HadoopAccessorService tries to do
> {code:java}
> String addr = NetUtils.createSocketAddr(target).getHostName();
> {code}
> it will get an exception:
> {noformat}
> Caused by: java.lang.IllegalArgumentException: Does not contain a valid host:port authority: ha-jt-uri
> 	at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:211)
> 	at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:163)
> 	at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:152)
> 	at org.apache.oozie.service.HadoopAccessorService.getMRTokenRenewerInternal(HadoopAccessorService.java:484)
> 	at org.apache.oozie.service.HadoopAccessorService.getMRDelegationTokenRenewer(HadoopAccessorService.java:463)
> 	at org.apache.oozie.service.HadoopAccessorService.createJobClient(HadoopAccessorService.java:374)
> 	at org.apache.oozie.action.hadoop.JavaActionExecutor.createJobClient(JavaActionExecutor.java:991)
> 	at org.apache.oozie.action.hadoop.JavaActionExecutor.submitLauncher(JavaActionExecutor.java:743)
> 	... 10 more
> {noformat}
> because there isn't a host or port in the logical name.  
> Once RM HA is done (which will be in vanilla Hadoop), it will use a logical name just like JT HA, and will run into the same problem.  I think we can fix this by having it fall back to the old behavior when it gets the IllegalArgumentException.  



--
This message was sent by Atlassian JIRA
(v6.1#6144)