You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@falcon.apache.org by Ajay Yadava <aj...@gmail.com> on 2015/08/28 21:29:06 UTC

Re: Review Request 36536: FALCON-1312: Falcon postprocessing does not use oozie prepared configs causing issues in environments with NN-HA/security etc enabled after entity creation

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/36536/#review96910
-----------------------------------------------------------

Ship it!


Ship It!

- Ajay Yadava


On July 16, 2015, 4:55 a.m., Venkat Ranganathan wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/36536/
> -----------------------------------------------------------
> 
> (Updated July 16, 2015, 4:55 a.m.)
> 
> 
> Review request for Falcon.
> 
> 
> Bugs: FALCON-1312
>     https://issues.apache.org/jira/browse/FALCON-1312
> 
> 
> Repository: falcon-git
> 
> 
> Description
> -------
> 
> In an environment with NN-HA or security setup, the postprocessing action will fail accessing the filesystem if the cluster entity was created before the enablement of HA or security settings.
>  ==
> 
>     Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.JavaMain], main() threw exception, java.lang.IllegalArgumentException: java.net.UnknownHostException: nameservice
>     org.apache.oozie.action.hadoop.JavaMainException: java.lang.IllegalArgumentException: java.net.UnknownHostException: nameservice
>     at org.apache.oozie.action.hadoop.JavaMain.run(JavaMain.java:59)
>     at org.apache.oozie.action.hadoop.LauncherMain.run(LauncherMain.java:47)
>     at org.apache.oozie.action.hadoop.JavaMain.main(JavaMain.java:35)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke(Method.java:606)
>     at org.apache.oozie.action.hadoop.LauncherMapper.map(LauncherMapper.java:236)
>     at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54)
>     at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:453)
>     at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343)
>     at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at javax.security.auth.Subject.doAs(Subject.java:415)
>     at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
>     at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
>     Caused by: java.lang.IllegalArgumentException: java.net.UnknownHostException: nameservice
>     at org.apache.hadoop.security.SecurityUtil.buildTokenService(SecurityUtil.java:377)
>     at org.apache.hadoop.hdfs.NameNodeProxies.createNonHAProxy(NameNodeProxies.java:310)
>     at org.apache.hadoop.hdfs.NameNodeProxies.createProxy(NameNodeProxies.java:176)
>     at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:678)
>     at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:619)
>     at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:149)
>     at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2653)
>     at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:92)
>     at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2687)
>     at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2669)
>     at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:371)
>     at org.apache.falcon.hadoop.HadoopClientFactory$1.run(HadoopClientFactory.java:200)
>     at org.apache.falcon.hadoop.HadoopClientFactory$1.run(HadoopClientFactory.java:198)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at javax.security.auth.Subject.doAs(Subject.java:415)
>     at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
>     at org.apache.falcon.hadoop.HadoopClientFactory.createFileSystem(HadoopClientFactory.java:198)
>     at org.apache.falcon.hadoop.HadoopClientFactory.createProxiedFileSystem(HadoopClientFactory.java:153)
>     at org.apache.falcon.hadoop.HadoopClientFactory.createProxiedFileSystem(HadoopClientFactory.java:145)
>     at org.apache.falcon.workflow.WorkflowExecutionContext.serialize(WorkflowExecutionContext.java:313)
>     at org.apache.falcon.workflow.WorkflowExecutionContext.serialize(WorkflowExecutionContext.java:299)
>     at org.apache.falcon.workflow.FalconPostProcessing.run(FalconPostProcessing.java:49)
>     at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
>     at org.apache.falcon.workflow.FalconPostProcessing.main(FalconPostProcessing.java:39)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke(Method.java:606)
>     at org.apache.oozie.action.hadoop.JavaMain.run(JavaMain.java:56)
>     ... 15 more
>     Caused by: java.net.UnknownHostException: nameservice
>     ... 44 more
> ==
> 
> In the above stack trace it is clear that we are using non-HA proxy because the configuration used does not have the HA information    The patch fixes this issue
> 
> 
> Diffs
> -----
> 
>   common/src/main/java/org/apache/falcon/workflow/WorkflowExecutionContext.java 53ef5de 
>   oozie/src/main/java/org/apache/falcon/logging/JobLogMover.java ba669c8 
>   oozie/src/main/java/org/apache/falcon/workflow/FalconPostProcessing.java 7557153 
> 
> Diff: https://reviews.apache.org/r/36536/diff/
> 
> 
> Testing
> -------
> 
> With the attached patch, Falcon postprocessing works correctly when NN-HA is enabled after entity creation
> 
> 
> Thanks,
> 
> Venkat Ranganathan
> 
>