I ett Hadoop/varv R företagsmiljö misslyckas ett mapreduce-jobb med ett undantag för kerberos-relaterade Java:
Alternativ:
03-02-15 16:59:05 Varna util. NativeCodeLoader: Gick inte att läsa inbyggt hadoop för din plattform... med inbyggda java-klasser i förekommande fall
Felsökning: allArgs = [-Dmapred.reduce.tasks=1, /user/RevoShare/a377683/EE594B467CDE4C988C3C3F7AF563DABB/.input, /user/RevoShare/a377683/EE594B467CDE4C988C3C3F7AF563DABB/IRO.iro, /user/RevoShare/a377683/AirlineDemoSmall / *, dojo3m20002.rtp1.hadoop.fmr.com, 8020, /usr/bin/Revoscript]
03-02-15 16:59:09 hdfs INFO. DFSClient: Skapa token HDFS_DELEGATION_TOKEN 242420 för a377683 på ha-hdfs:nameservice1
03-02-15 16:59:09 INFO säkerhet. TokenCache: Fick dt för hdfs://nameservice1; Typ: HDFS_DELEGATION_TOKEN, Service: ha-hdfs:nameservice1, inget: (HDFS_DELEGATION_TOKEN token 242420 för a377683)
......
03-02-15 16:59:25 mapreduce INFO. Jobb: minska karta 0% 0%
03-02-15 16:59:38 mapreduce INFO. Jobb: Aktivitets-Id: attempt_1422647534016_1760_m_000000_0, Status: misslyckades
Fel: java.io.IOException: R VM avslutades med slutkod: 1, utdata:
starta skriptet
[1] TRUE
$fileName
[1] NA
$start
[1] 0
$length
[1] 0
03-02-15 16:59:37 Varna säkerhet. UserGroupInformation: PriviledgedActionException som: a377683 (auth:KERBEROS) cause:javax.security.sasl.SaslException: GSS initiera misslyckades [orsakas av GSSException: inga giltiga referenser anges (mekanism nivå: kunde inte hitta några Kerberos tgt)]
03-02-15 16:59:37 Varna ipc. Klient: Undantag påträffades vid anslutning till servern: javax.security.sasl.SaslException: GSS initiera misslyckades [orsakas av GSSException: inga giltiga referenser anges (mekanism nivå: kunde inte hitta några Kerberos tgt)]
03-02-15 16:59:37 Varna säkerhet. UserGroupInformation: PriviledgedActionException som: a377683 (auth:KERBEROS) cause:java.io.IOException: javax.security.sasl.SaslException: GSS initiera misslyckades [orsakas av GSSException: inga giltiga referenser anges (mekanism nivå: kunde inte hitta några Kerberos tgt)]
hdfsOpenFile(/user/RevoShare/a377683/EE594B467CDE4C988C3C3F7AF563DABB/.input): fel FileSystem#open((Lorg/apache/hadoop/fs/Path;I)Lorg/apache/hadoop/fs/FSDataInputStream;):
java.io.IOException: misslyckades på lokala undantag: java.io.IOException: javax.security.sasl.SaslException: GSS initiera misslyckades [orsakas av GSSException: inga giltiga referenser anges (mekanism nivå: kunde inte hitta några Kerberos tgt)]; Information om värd: lokala värden är: "< hostname >"; destinationsdatorn är: "< hostname >": 8020;
vid org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:764)
vid org.apache.hadoop.ipc.Client.call(Client.java:1415)
vid org.apache.hadoop.ipc.Client.call(Client.java:1364)
vid org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)
vid com.sun.proxy.$Proxy14.getBlockLocations (okänd källa)
vid org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getBlockLocations(ClientNamenodeProtocolTranslatorPB.java:246)
vid sun.reflect.NativeMethodAccessorImpl.invoke0 (inbyggd metod)
vid sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
vid sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
vid java.lang.reflect.Method.invoke(Method.java:606)
vid org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)
vid org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
vid com.sun.proxy.$Proxy15.getBlockLocations (okänd källa)
vid org.apache.hadoop.hdfs.DFSClient.callGetBlockLocations(DFSClient.java:1179)
vid org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1169)
vid org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1159)
vid org.apache.hadoop.hdfs.DFSInputStream.fetchLocatedBlocksAndGetLastBlockLength(DFSInputStream.java:270)
vid org.apache.hadoop.hdfs.DFSInputStream.openInfo(DFSInputStream.java:237)
i org.apache.hadoop.hdfs.DFSInputStream. < init > (DFSInputStream.java:230)
vid org.apache.hadoop.hdfs.DFSClient.open(DFSClient.java:1457)
vid org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:301)
vid org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:297)
vid org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
vid org.apache.hadoop.hdfs.DistributedFileSystem.open(DistributedFileSystem.java:297)
Caused genom: java.io.IOException: javax.security.sasl.SaslException: GSS initiera misslyckades [orsakas av GSSException: inga giltiga referenser anges (mekanism nivå: kunde inte hitta några Kerberos tgt)]
vid org.apache.hadoop.ipc.Client$Connection$1.run(Client.java:679)
vid java.security.AccessController.doPrivileged (inbyggd metod)
vid javax.security.auth.Subject.doAs(Subject.java:415)
vid org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1642)
vid org.apache.hadoop.ipc.Client$Connection.handleSaslConnectionFailure(Client.java:642)
vid org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:725)
vid org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:367)
vid org.apache.hadoop.ipc.Client.getConnection(Client.java:1463)
vid org.apache.hadoop.ipc.Client.call(Client.java:1382)
Först bekräfta att användaren skickar jobbet har en aktuell och giltig kerberos-biljett men det är möjligt att se felet med en giltig biljett bekräftade.
Om klustret är konfigurerat för namnet noden hög tillgänglighet, är det nödvändigt att vara särskilt i RxHadoopMR() och RxHdfsFileSystem() som anropar i skriptet anger noden namntjänsten men ange namnet aktiva nod värdnamn fungerar också. HDFS_DELEGATION_TOKEN måste matcha nameservice referens för en kerberized och HA namnet nod-miljö. I ovanstående fel visas:
Information om säkerhet. TokenCache: Fick dt för hdfs://nameservice1; Typ: HDFS_DELEGATION_TOKEN, Service: ha-hdfs:nameservice1, inget: (HDFS_DELEGATION_TOKEN token 242420 för a377683
I det här fallet bör nameNode/värdnamn argument i RxHadoopMR() och RxHdfsFileSystem() samtal anges till "nameservice1".