[
https://issues.apache.org/jira/browse/FALCON-1129?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14492477#comment-14492477
]
Venkat Ranganathan commented on FALCON-1129:
--------------------------------------------
Thanks Pallavi
> In a secure cluster, feed replication fails because of Authentication issues
> ----------------------------------------------------------------------------
>
> Key: FALCON-1129
> URL: https://issues.apache.org/jira/browse/FALCON-1129
> Project: Falcon
> Issue Type: Bug
> Affects Versions: 0.6
> Reporter: Venkat Ranganathan
> Assignee: Venkat Ranganathan
> Priority: Critical
> Fix For: 0.6.1
>
> Attachments: FALCON-1129.patch
>
>
> In a Feed replication, the Oozie Java action executes on the target and
> accesses the source cluster read only endpoint (which is a webhdfs endpoint).
> The Java action does not have the delegation tokens for the source cluster
> populated in its UGI/conf and this results in stack traces similar to the
> following:
> {quote}
> Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.JavaMain],
> main() threw exception, org.apache.hadoop.security.AccessControlException:
> Authentication required
> org.apache.oozie.action.hadoop.JavaMainException:
> org.apache.hadoop.security.AccessControlException: Authentication required
> at org.apache.oozie.action.hadoop.JavaMain.run(JavaMain.java:58)
> at org.apache.oozie.action.hadoop.LauncherMain.run(LauncherMain.java:39)
> at org.apache.oozie.action.hadoop.JavaMain.main(JavaMain.java:36)
> 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:226)
> at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54)
> at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:450)
> at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343)
> at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)
> 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:1628)
> at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
> Caused by: org.apache.hadoop.security.AccessControlException: Authentication
> required
> at
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem.validateResponse(WebHdfsFileSystem.java:334)
> at
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem.access$200(WebHdfsFileSystem.java:91)
> at
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem$AbstractRunner.runWithRetry(WebHdfsFileSystem.java:608)
> at
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem$AbstractRunner.access$100(WebHdfsFileSystem.java:458)
> at
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem$AbstractRunner$1.run(WebHdfsFileSystem.java:487)
> 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:1628)
> at
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem$AbstractRunner.run(WebHdfsFileSystem.java:483)
> at
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem.getDelegationToken(WebHdfsFileSystem.java:1306)
> at
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem.getDelegationToken(WebHdfsFileSystem.java:237)
> at
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem.getAuthParameters(WebHdfsFileSystem.java:423)
> at
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem.toUrl(WebHdfsFileSystem.java:444)
> at
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem$AbstractFsPathRunner.getUrl(WebHdfsFileSystem.java:691)
> at
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem$AbstractRunner.runWithRetry(WebHdfsFileSystem.java:603)
> at
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem$AbstractRunner.access$100(WebHdfsFileSystem.java:458)
> at
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem$AbstractRunner$1.run(WebHdfsFileSystem.java:487)
> 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:1628)
> at
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem$AbstractRunner.run(WebHdfsFileSystem.java:483)
> at
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem.getHdfsFileStatus(WebHdfsFileSystem.java:838)
> at
> org.apache.hadoop.hdfs.web.WebHdfsFileSystem.getFileStatus(WebHdfsFileSystem.java:853)
> at org.apache.hadoop.fs.Globber.getFileStatus(Globber.java:57)
> at org.apache.hadoop.fs.Globber.glob(Globber.java:252)
> at org.apache.hadoop.fs.FileSystem.globStatus(FileSystem.java:1648)
> at
> org.apache.falcon.latedata.LateDataHandler.usage(LateDataHandler.java:207)
> at
> org.apache.falcon.latedata.LateDataHandler.getFileSystemUsageMetric(LateDataHandler.java:199)
> at
> org.apache.falcon.latedata.LateDataHandler.computeStorageMetric(LateDataHandler.java:171)
> at
> org.apache.falcon.latedata.LateDataHandler.computeMetrics(LateDataHandler.java:120)
> at
> org.apache.falcon.latedata.LateDataHandler.run(LateDataHandler.java:97)
> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
> at
> org.apache.falcon.latedata.LateDataHandler.main(LateDataHandler.java:55)
> 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:55)
> ... 15 more
> {quote}
> The Workflow builder should be updated to specify the configuration property
> _mapreduce.job.hdfs-servers_ to list all the endpoints accessed by the action.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)