When cascading calls getSplits it eventually reaches FSNameSystem.getDelegationToken(). In that function it checks to see if the the above is true (in isAllowedDelegationTokenOp()) and finds it to be something else. I'm wondering, not sure, if it's possible cascading resets this value at some point in the execution intervening the two points int he code.
My stack trace looks something like this:
at cascading.flow.planner.FlowPlanner.handleExceptionDuringPlanning(FlowPlanner.java:577) ~[cascading-core-2.5.5.jar:?]
at cascading.flow.hadoop.planner.HadoopPlanner.buildFlow(HadoopPlanner.java:286) ~[cascading-hadoop2-mr1-2.5.5.jar:?]
at cascading.flow.hadoop.planner.HadoopPlanner.buildFlow(HadoopPlanner.java:80) ~[cascading-hadoop2-mr1-2.5.5.jar:?]
at cascading.flow.FlowConnector.connect(FlowConnector.java:459) ~[cascading-core-2.5.5.jar:?]
at com.snaplogic.cc.yarn.MRJobManager.getFlow(MRJobManager.java:203) ~[jcc-4.0.jar:?]
at com.snaplogic.cc.pipeline.MRPipelineRunner.run(MRPipelineRunner.java:86) [jcc-4.0.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [?:1.7.0_55]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [?:1.7.0_55]
at java.lang.Thread.run(Thread.java:745) [?:1.7.0_55]
at cascading.scheme.util.DelimitedParser.parseFirstLine(DelimitedParser.java:319) ~[cascading-core-2.5.5.jar:?]
at cascading.scheme.hadoop.TextDelimited.retrieveSourceFields(TextDelimited.java:968) ~[cascading-hadoop2-mr1-2.5.5.jar:?]
at cascading.tap.Tap.retrieveSourceFields(Tap.java:361) ~[cascading-core-2.5.5.jar:?]
at cascading.flow.BaseFlow.retrieveSourceFields(BaseFlow.java:215) ~[cascading-core-2.5.5.jar:?]
at cascading.flow.BaseFlow.<init>(BaseFlow.java:181) ~[cascading-core-2.5.5.jar:?]
at cascading.flow.hadoop.HadoopFlow.<init>(HadoopFlow.java:98) ~[cascading-hadoop2-mr1-2.5.5.jar:?]
at cascading.flow.hadoop.planner.HadoopPlanner.createFlow(HadoopPlanner.java:231) ~[cascading-hadoop2-mr1-2.5.5.jar:?]
at cascading.flow.hadoop.planner.HadoopPlanner.buildFlow(HadoopPlanner.java:244) ~[cascading-hadoop2-mr1-2.5.5.jar:?]
... 7 more
Caused by: org.apache.hadoop.ipc.RemoteException: Delegation Token can be issued only with kerberos or web authentication
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getDelegationToken(FSNamesystem.java:6388)
at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getDelegationToken(NameNodeRpcServer.java:461)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.getDelegationToken(ClientNamenodeProtocolServerSideTranslatorPB.java:906)
at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:585)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1026)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1986)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1982)
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:1554)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1980)
at org.apache.hadoop.ipc.Client.call(Client.java:1410) ~[hadoop-common-2.4.0.jar:?]
at org.apache.hadoop.ipc.Client.call(Client.java:1363) ~[hadoop-common-2.4.0.jar:?]
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206) ~[hadoop-common-2.4.0.jar:?]
at com.sun.proxy.$Proxy92.getDelegationToken(Unknown Source) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_55]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_55]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_55]
at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_55]
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:190) ~[hadoop-common-2.4.0.jar:?]
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:103) ~[hadoop-common-2.4.0.jar:?]
at com.sun.proxy.$Proxy92.getDelegationToken(Unknown Source) ~[?:?]
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getDelegationToken(ClientNamenodeProtocolTranslatorPB.java:854) ~[hadoop-hdfs-2.4.0.jar:?]
at org.apache.hadoop.hdfs.DFSClient.getDelegationToken(DFSClient.java:924) ~[hadoop-hdfs-2.4.0.jar:?]
at org.apache.hadoop.hdfs.DistributedFileSystem.getDelegationToken(DistributedFileSystem.java:1336) ~[hadoop-hdfs-2.4.0.jar:?]
at org.apache.hadoop.fs.FileSystem.collectDelegationTokens(FileSystem.java:527) ~[hadoop-common-2.4.0.jar:?]
at org.apache.hadoop.fs.FileSystem.addDelegationTokens(FileSystem.java:505) ~[hadoop-common-2.4.0.jar:?]
at org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodesInternal(TokenCache.java:121) ~[hadoop-mapreduce-client-core-2.4.0.jar:?]
at org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodesInternal(TokenCache.java:100) ~[hadoop-mapreduce-client-core-2.4.0.jar:?]
at org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodes(TokenCache.java:80) ~[hadoop-mapreduce-client-core-2.4.0.jar:?]
at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:205) ~[hadoop-mapreduce-client-core-2.4.0.jar:?]
at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:304) ~[hadoop-mapreduce-client-core-2.4.0.jar:?]
at cascading.tap.hadoop.io.MultiRecordReaderIterator.initialize(MultiRecordReaderIterator.java:102) ~[cascading-hadoop2-mr1-2.5.5.jar:?]
at cascading.tap.hadoop.io.MultiRecordReaderIterator.<init>(MultiRecordReaderIterator.java:80) ~[cascading-hadoop2-mr1-2.5.5.jar:?]
at cascading.tap.hadoop.io.HadoopTupleEntrySchemeIterator.makeIterator(HadoopTupleEntrySchemeIterator.java:57) ~[cascading-hadoop2-mr1-2.5.5.jar:?]
at cascading.tap.hadoop.io.HadoopTupleEntrySchemeIterator.<init>(HadoopTupleEntrySchemeIterator.java:44) ~[cascading-hadoop2-mr1-2.5.5.jar:?]
at cascading.tap.hadoop.Hfs.openForRead(Hfs.java:503) ~[cascading-hadoop2-mr1-2.5.5.jar:?]
at cascading.tap.hadoop.Hfs.openForRead(Hfs.java:109) ~[cascading-hadoop2-mr1-2.5.5.jar:?]
at cascading.tap.Tap.openForRead(Tap.java:270) ~[cascading-core-2.5.5.jar:?]
at cascading.scheme.util.DelimitedParser.parseFirstLine(DelimitedParser.java:297) ~[cascading-core-2.5.5.jar:?]
at cascading.scheme.hadoop.TextDelimited.retrieveSourceFields(TextDelimited.java:968) ~[cascading-hadoop2-mr1-2.5.5.jar:?]
at cascading.tap.Tap.retrieveSourceFields(Tap.java:361) ~[cascading-core-2.5.5.jar:?]
at cascading.flow.BaseFlow.retrieveSourceFields(BaseFlow.java:215) ~[cascading-core-2.5.5.jar:?]
at cascading.flow.BaseFlow.<init>(BaseFlow.java:181) ~[cascading-core-2.5.5.jar:?]
at cascading.flow.hadoop.HadoopFlow.<init>(HadoopFlow.java:98) ~[cascading-hadoop2-mr1-2.5.5.jar:?]
at cascading.flow.hadoop.planner.HadoopPlanner.createFlow(HadoopPlanner.java:231) ~[cascading-hadoop2-mr1-2.5.5.jar:?]
at cascading.flow.hadoop.planner.HadoopPlanner.buildFlow(HadoopPlanner.java:244) ~[cascading-hadoop2-mr1-2.5.5.jar:?]
I'm not sure if this is enough context to go on. Please let me know if i should add more. It's more than possible that this has nothing to do with cascading, but I figured I'd ask just in case. I'll post whatever i find out in the end regardless (for posterity).