I et miljø med Hadoop/revolusjon R Enterprise mislykkes en mapreduce jobben med en kerberos-relaterte Java-unntak:
Angi alternativer for:
15/02/03 16:59:05 ADVAR util. NativeCodeLoader: Kan ikke laste biblioteket for opprinnelig hadoop for din plattform... ved hjelp av innebygde java klasser der det er aktuelt
Feilsøking: 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: Opprettet HDFS_DELEGATION_TOKEN tokenet 242420 for a377683 på ha-hdfs:nameservice1
15/02/03 16:59:09 INFO sikkerhet. TokenCache: Fikk dt for hdfs://nameservice1; Type: HDFS_DELEGATION_TOKEN, Service: ha-hdfs:nameservice1, fra styreenhet ble: (HDFS_DELEGATION_TOKEN token 242420 for a377683)
......
15/02/03 16:59:25 mapreduce INFO. Jobb: redusere kartet 0% 0%
15/02/03 16:59:38 mapreduce INFO. Jobb: Aktivitets-Id: attempt_1422647534016_1760_m_000000_0, Status: mislyktes
Feil: java.io.IOException: R VM ble avsluttet med sluttkode: 1, utgang:
Start skriptet
[1] SANN
$fileName
[1] IT
$start
[1] 0
$length
[1] 0
15/02/03 16:59:37 ADVAR sikkerhet. UserGroupInformation: PriviledgedActionException som: a377683 (auth:KERBEROS) cause:javax.security.sasl.SaslException: GSS initiate mislyktes [forårsaket av GSSException: Ingen gyldige legitimasjonsbeskrivelser som er angitt (mekanisme nivå: kunne ikke finne noen Kerberos tgt)]
15/02/03 16:59:37 ADVAR IPK. Klient: Unntak oppstod ved tilkobling til serveren: javax.security.sasl.SaslException: GSS initiate mislyktes [forårsaket av GSSException: Ingen gyldige legitimasjonsbeskrivelser som er angitt (mekanisme nivå: kunne ikke finne noen Kerberos tgt)]
15/02/03 16:59:37 ADVAR sikkerhet. UserGroupInformation: PriviledgedActionException som: a377683 (auth:KERBEROS) cause:java.io.IOException: javax.security.sasl.SaslException: GSS initiate mislyktes [forårsaket av GSSException: Ingen gyldige legitimasjonsbeskrivelser som er angitt (mekanisme nivå: kunne ikke finne noen Kerberos tgt)]
hdfsOpenFile(/user/RevoShare/a377683/EE594B467CDE4C988C3C3F7AF563DABB/.input): feil FileSystem#open((Lorg/apache/hadoop/fs/Path;I)Lorg/apache/hadoop/fs/FSDataInputStream;):
java.io.IOException: mislyktes på lokale unntak: java.io.IOException: javax.security.sasl.SaslException: GSS initiate mislyktes [forårsaket av GSSException: Ingen gyldige legitimasjonsbeskrivelser som er angitt (mekanisme nivå: kunne ikke finne noen Kerberos tgt)]; Detaljer for verten: lokale verten er: "< hostname >"; målverten er: "< hostname >": 8020;
ved org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:764)
ved org.apache.hadoop.ipc.Client.call(Client.java:1415)
ved org.apache.hadoop.ipc.Client.call(Client.java:1364)
ved org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)
på com.sun.proxy.$Proxy14.getBlockLocations (ukjent kilde)
ved org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getBlockLocations(ClientNamenodeProtocolTranslatorPB.java:246)
på sun.reflect.NativeMethodAccessorImpl.invoke0 (opprinnelig metode)
ved sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
ved sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
ved java.lang.reflect.Method.invoke(Method.java:606)
ved org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)
ved org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
på com.sun.proxy.$Proxy15.getBlockLocations (ukjent kilde)
ved org.apache.hadoop.hdfs.DFSClient.callGetBlockLocations(DFSClient.java:1179)
ved org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1169)
ved org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1159)
ved org.apache.hadoop.hdfs.DFSInputStream.fetchLocatedBlocksAndGetLastBlockLength(DFSInputStream.java:270)
ved org.apache.hadoop.hdfs.DFSInputStream.openInfo(DFSInputStream.java:237)
ved org.apache.hadoop.hdfs.DFSInputStream. < init > (DFSInputStream.java:230)
ved org.apache.hadoop.hdfs.DFSClient.open(DFSClient.java:1457)
ved org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:301)
ved org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:297)
ved org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
ved org.apache.hadoop.hdfs.DistributedFileSystem.open(DistributedFileSystem.java:297)
Forårsaket av: java.io.IOException: javax.security.sasl.SaslException: GSS initiate mislyktes [forårsaket av GSSException: Ingen gyldige legitimasjonsbeskrivelser som er angitt (mekanisme nivå: kunne ikke finne noen Kerberos tgt)]
ved org.apache.hadoop.ipc.Client$Connection$1.run(Client.java:679)
på java.security.AccessController.doPrivileged (opprinnelig metode)
ved javax.security.auth.Subject.doAs(Subject.java:415)
ved org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1642)
ved org.apache.hadoop.ipc.Client$Connection.handleSaslConnectionFailure(Client.java:642)
ved org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:725)
ved org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:367)
ved org.apache.hadoop.ipc.Client.getConnection(Client.java:1463)
ved org.apache.hadoop.ipc.Client.call(Client.java:1382)
Først må bekrefte at brukeren sender jobben har en gjeldende og gyldig kerberos-billetten, men det er mulig å se feilen selv med en bekreftet gyldig billett.
Hvis sektorgruppen er konfigurert for navn på node høy tilgjengelighet, er det nødvendig å være nøyaktig i RxHadoopMR() og RxHdfsFileSystem()-kall i skript til å angi navn på node-tjenesten om å angi navn på aktiv node vertsnavnet fungerer også. Hvis det er en kerberized og HA navnet node-miljø for HDFS_DELEGATION_TOKEN må samsvare med nameservice-referanse. Feil ovenfor, kan du se:
INFO-sikkerhet. TokenCache: Fikk dt for hdfs://nameservice1; Type: HDFS_DELEGATION_TOKEN, Service: ha-hdfs:nameservice1, fra styreenhet ble: (HDFS_DELEGATION_TOKEN token 242420 for a377683
I dette tilfellet skal nameNode/hostName-argumentene i RxHadoopMR() og RxHdfsFileSystem()-kall settes til "nameservice1".