In een bedrijfsomgeving Hadoop revolutie/R mislukken een taak mapreduce met een uitzondering met betrekking tot kerberos Java:
Instellingsopties:
15-02-03 16:59:05 util. waarschuwen NativeCodeLoader: Kan eigen hadoop bibliotheek voor uw platform... eventueel met behulp van ingebouwde java-klassen
FOUTOPSPORING: 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]
15-02-03 16:59:09 hdfs INFO. DFSClient: HDFS_DELEGATION_TOKEN token 242420 voor a377683 op gemaakt ha-hdfs:nameservice1
15-02-03 16:59:09 INFO security. De TokenCache: Kreeg dt voor hdfs://nameservice1; Type: HDFS_DELEGATION_TOKEN, Service: ha-hdfs:nameservice1, Ident: (HDFS_DELEGATION_TOKEN token 242420 voor a377683)
......
15-02-03 16:59:25 mapreduce INFO. Project: kaart 0% verminderen 0%
15-02-03 16:59:38 mapreduce INFO. Project: Taak-Id: attempt_1422647534016_1760_m_000000_0, Status: mislukt
Fout: java.io.IOException: R VM is afgesloten met de afsluitcode: 1, uitvoer:
begin script
[1] WAAR
$fileName
[1] NB
$start
[1] 0
$length
[1] 0
15-02-03 16:59:37 waarschuwen beveiliging. UserGroupInformation: PriviledgedActionException als: a377683 cause:javax.security.sasl.SaslException (auth:KERBEROS): GSS initiate is mislukt [veroorzaakt door GSSException: geen geldige referenties opgegeven (niveau mechanisme: kan Kerberos-tgt vinden)]
15-02-03 16:59:37 ipc waarschuwen. Client: Uitzondering opgetreden tijdens de verbinding met de server: javax.security.sasl.SaslException: GSS initiate mislukt [veroorzaakt door GSSException: geen geldige referenties opgegeven (mechanisme niveau: kan het vinden van een Kerberos-tgt)]
15-02-03 16:59:37 waarschuwen beveiliging. UserGroupInformation: PriviledgedActionException als: a377683 (auth:KERBEROS) cause:java.io.IOException: javax.security.sasl.SaslException: GSS initiate is mislukt [veroorzaakt door GSSException: geen geldige referenties opgegeven (mechanisme niveau: kan Kerberos-tgt vinden)]
hdfsOpenFile(/user/RevoShare/a377683/EE594B467CDE4C988C3C3F7AF563DABB/.input): fout FileSystem#open((Lorg/apache/hadoop/fs/Path;I)Lorg/apache/hadoop/fs/FSDataInputStream;):
java.io.IOException: mislukt op lokale uitzondering: java.io.IOException: javax.security.sasl.SaslException: GSS initiate is mislukt [veroorzaakt door GSSException: geen geldige referenties opgegeven (mechanisme niveau: kan het vinden van een Kerberos-tgt)]; Details van de host: lokale host is: '< hostnaam >'; de doelhost is: '< hostnaam >': 8020;
op org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:764)
op org.apache.hadoop.ipc.Client.call(Client.java:1415)
op org.apache.hadoop.ipc.Client.call(Client.java:1364)
op org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)
bij com.sun.proxy.$Proxy14.getBlockLocations (onbekende bron)
op org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getBlockLocations(ClientNamenodeProtocolTranslatorPB.java:246)
bij sun.reflect.NativeMethodAccessorImpl.invoke0 (eigen methode)
op sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
op sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
op java.lang.reflect.Method.invoke(Method.java:606)
op org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)
op org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
bij com.sun.proxy.$Proxy15.getBlockLocations (onbekende bron)
op org.apache.hadoop.hdfs.DFSClient.callGetBlockLocations(DFSClient.java:1179)
op org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1169)
op org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1159)
op org.apache.hadoop.hdfs.DFSInputStream.fetchLocatedBlocksAndGetLastBlockLength(DFSInputStream.java:270)
op org.apache.hadoop.hdfs.DFSInputStream.openInfo(DFSInputStream.java:237)
op org.apache.hadoop.hdfs.DFSInputStream. < init > (DFSInputStream.java:230)
op org.apache.hadoop.hdfs.DFSClient.open(DFSClient.java:1457)
op org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:301)
op org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:297)
op org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
op org.apache.hadoop.hdfs.DistributedFileSystem.open(DistributedFileSystem.java:297)
Caused door: java.io.IOException: javax.security.sasl.SaslException: GSS initiate mislukt [veroorzaakt door GSSException: geen geldige referenties opgegeven (mechanisme niveau: kan het vinden van een Kerberos-tgt)]
op org.apache.hadoop.ipc.Client$Connection$1.run(Client.java:679)
bij java.security.AccessController.doPrivileged (eigen methode)
op javax.security.auth.Subject.doAs(Subject.java:415)
op org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1642)
op org.apache.hadoop.ipc.Client$Connection.handleSaslConnectionFailure(Client.java:642)
op org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:725)
op org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:367)
op org.apache.hadoop.ipc.Client.getConnection(Client.java:1463)
op org.apache.hadoop.ipc.Client.call(Client.java:1382)
Eerst bevestigen dat het de gebruiker die de taak heeft een actueel en geldig kerberos-ticket maar kunt u deze fout, zelfs met een bevestigde ticket geldig is.
Als het cluster is geconfigureerd voor maximale beschikbaarheid van naam knooppunt, moet worden bepaald in de RxHadoopMR() en RxHdfsFileSystem() wordt aangeroepen in het script de naam knooppunt-service opgeven als de naam van het actieve knooppunt hostnaam opgeeft ook werkt. In het geval van een kerberized en HA naam knooppunt omgeving, de HDFS_DELEGATION_TOKEN moet overeenkomen met de nameservice verwijzing. In de bovenstaande fout weergegeven:
INFO beveiliging. De TokenCache: Kreeg dt voor hdfs://nameservice1; Type: HDFS_DELEGATION_TOKEN, Service: ha-hdfs:nameservice1, Ident: (HDFS_DELEGATION_TOKEN token 242420 voor a377683
In dit geval moeten de nameNode/hostnaam argumenten bij het aanroepen van RxHadoopMR() en RxHdfsFileSystem() worden ingesteld op 'nameservice1'.