In einem Unternehmensumfeld R Hadoop-Revolution fehlschlagen Mapreduce-Auftrag mit einer Kerberos-bezogene Java-Ausnahme:
Optionen:
15/02/03 16:59:05 util WARNEN. NativeCodeLoader: Systemeigene Hadoop für Ihre Plattform laden... mit integrierten Java Klassen ggf.
DEBUG: 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 Informationen bietet. DFSClient: Erstellt HDFS_DELEGATION_TOKEN Token 242420 a377683 ha-Hdfs:nameservice1
15/02/03 16:59:09 INFO Security. TokenCache: Habe dt für hdfs://nameservice1; Art: HDFS_DELEGATION_TOKEN, Service: ha-Hdfs:nameservice1 Ident: (HDFS_DELEGATION_TOKEN Token 242420 für a377683)
......
15/02/03 16:59:25 INFO Mapreduce. Auftrag: Karte 0 % 0 % verringern
15/02/03 16:59:38 INFO Mapreduce. Auftrag: Vorgangsnummer: attempt_1422647534016_1760_m_000000_0, Status: Fehler
Fehler: java.io.IOException: R VM mit Exitcode beendet: 1, Ausgabe:
Skript starten
[1] TRUE
$fileName
[1] NA
$start
[1] 0
$length
[1] 0
15/02/03 16:59:37 WARNEN Sicherheit. UserGroupInformation: PriviledgedActionException als: a377683 (Auth:KERBEROS) cause:javax.security.sasl.SaslException: GSS initiieren fehlgeschlagen [GSSException zurückzuführen: keine gültigen Anmeldeinformationen (Mechanismus Ebene: Kerberos-Tgt zu Fehler)]
15/02/03 16:59:37 Ipc WARNEN. Client: Ausnahme beim Verbinden mit dem Server: javax.security.sasl.SaslException: GSS initiieren fehlgeschlagen [GSSException zurückzuführen: keine gültigen Anmeldeinformationen (Mechanismus Ebene: Kerberos-Tgt zu Fehler)]
15/02/03 16:59:37 WARNEN Sicherheit. UserGroupInformation: PriviledgedActionException als: a377683 (Auth:KERBEROS) cause:java.io.IOException: javax.security.sasl.SaslException: GSS initiieren fehlgeschlagen [GSSException zurückzuführen: keine gültigen Anmeldeinformationen (Mechanismus Ebene: Kerberos-Tgt zu Fehler)]
hdfsOpenFile(/user/RevoShare/a377683/EE594B467CDE4C988C3C3F7AF563DABB/.input): FileSystem#open((Lorg/apache/hadoop/fs/Path;I)Lorg/apache/hadoop/fs/FSDataInputStream;)-Fehler:
java.io.IOException: lokale Ausnahme fehlgeschlagen: java.io.IOException: javax.security.sasl.SaslException: GSS initialisieren konnte [GSSException zurückzuführen: keine gültigen Anmeldeinformationen (Mechanismus auf: keine Kerberos-Tgt gefunden)]; Hostdetails: localhost ist: "< Hostname >"; Ziel-Host: "< Hostname >": 8020;
am org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:764)
am org.apache.hadoop.ipc.Client.call(Client.java:1415)
am org.apache.hadoop.ipc.Client.call(Client.java:1364)
am org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)
Bei com.sun.proxy.$Proxy14.getBlockLocations (unbekannte Quelle)
am org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getBlockLocations(ClientNamenodeProtocolTranslatorPB.java:246)
Bei sun.reflect.NativeMethodAccessorImpl.invoke0 (systemeigene Methode)
am sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
am sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
am java.lang.reflect.Method.invoke(Method.java:606)
am org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)
am org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
Bei com.sun.proxy.$Proxy15.getBlockLocations (unbekannte Quelle)
am org.apache.hadoop.hdfs.DFSClient.callGetBlockLocations(DFSClient.java:1179)
am org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1169)
am org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1159)
am org.apache.hadoop.hdfs.DFSInputStream.fetchLocatedBlocksAndGetLastBlockLength(DFSInputStream.java:270)
am org.apache.hadoop.hdfs.DFSInputStream.openInfo(DFSInputStream.java:237)
Bei org.apache.hadoop.hdfs.DFSInputStream < Init > (DFSInputStream.java:230)
am org.apache.hadoop.hdfs.DFSClient.open(DFSClient.java:1457)
am org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:301)
am org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:297)
am org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
am org.apache.hadoop.hdfs.DistributedFileSystem.open(DistributedFileSystem.java:297)
Verursacht durch: java.io.IOException: javax.security.sasl.SaslException: GSS initiieren fehlgeschlagen [GSSException zurückzuführen: keine gültigen Anmeldeinformationen (Mechanismus Ebene: Kerberos-Tgt zu Fehler)]
am org.apache.hadoop.ipc.Client$Connection$1.run(Client.java:679)
Bei java.security.AccessController.doPrivileged (systemeigene Methode)
am javax.security.auth.Subject.doAs(Subject.java:415)
am org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1642)
am org.apache.hadoop.ipc.Client$Connection.handleSaslConnectionFailure(Client.java:642)
am org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:725)
am org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:367)
am org.apache.hadoop.ipc.Client.getConnection(Client.java:1463)
am org.apache.hadoop.ipc.Client.call(Client.java:1382)
Zuerst bestätigen Sie, dass die Nutzer hat der Auftrag einem aktuellen und gültigen Kerberos-Ticket jedoch kann dieser Fehler auch mit bestätigten gültiges Ticket finden Sie unter.
Wenn Cluster Name Knoten hohe Verfügbarkeit konfiguriert ist, ist speziell in der RxHadoopMR() und RxHdfsFileSystem() wird im Skript der Namensdienst Knoten an, wenn aktive Namen Knoten Hostnamen angeben auch funktioniert. Die HDFS_DELEGATION_TOKEN muss bei einer kerberisiert HA Namen Knoten Umgebung und Nameservice Verweis übereinstimmen. In dem vorstehend beschriebenen Fehler angezeigt:
INFO-Sicherheit. TokenCache: Habe dt für hdfs://nameservice1; Art: HDFS_DELEGATION_TOKEN, Service: ha-Hdfs:nameservice1 Ident: (HDFS_DELEGATION_TOKEN Token 242420 für a377683
In diesem Fall die NameNode-HostName Argumente in den RxHadoopMR() und RxHdfsFileSystem(), "nameservice1" fest.