Într-un mediu de întreprindere de R Hadoop/Revolution, o lucrare mapreduce poate să nu reușească cu o excepție Java legate de kerberos:
Setare opțiuni:
15/02/03 16:59:05 WARN util. NativeCodeLoader: Imposibil de încărcat bibliotecă hadoop nativ pentru platforma... folosind java încorporate classes dacă este cazul DEPANARE: 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 INFO hdfs. DFSClient: Creat HDFS_DELEGATION_TOKEN simbol 242420 pentru a377683 ha-hdfs:nameservice1 15/02/03 16:59:09 informații de securitate. TokenCache: Am dt pentru hdfs://nameservice1; Tip: HDFS_DELEGATION_TOKEN, Service: ha-hdfs:nameservice1, Ident: (HDFS_DELEGATION_TOKEN simbol 242420 pentru a377683) ...... 15/02/03 16:59:25 INFO mapreduce. Activitate: reduce hartă 0 % 0 % 15/02/03 16:59:38 INFO mapreduce. Activitate: Activitate Id: attempt_1422647534016_1760_m_000000_0, stare: nu a reușit Eroare: java.io.IOException: R VM ieșit cu codul de ieșire: 1, Ieșire: script de pornire TRUE [1] $fileName [1] NA $start [1] 0 $length [1] 0 15/02/03 16:59:37 avertizare de securitate. UserGroupInformation: PriviledgedActionException ca: a377683 (auth:KERBEROS) cause:javax.security.sasl.SaslException: GSS iniţia nu a reușit [cauzate de GSSException: No valid acreditările furnizate (mecanism de nivel: nu a reușit să găsească orice tgt Kerberos)] 15/02/03 16:59:37 WARN ipc. Client: Excepție întâlnite la conectarea la server: javax.security.sasl.SaslException: GSS iniţia nu a reușit [cauzate de GSSException: No valid acreditările furnizate (mecanism de nivel: nu a reușit să găsească orice tgt Kerberos)] 15/02/03 16:59:37 avertizare de securitate. UserGroupInformation: PriviledgedActionException ca: a377683 (auth:KERBEROS) cause:java.io.IOException: javax.security.sasl.SaslException: GSS iniţia nu a reușit [cauzate de GSSException: No valid acreditările furnizate (mecanism de nivel: nu a reușit să găsească orice tgt Kerberos)] hdfsOpenFile(/user/RevoShare/a377683/EE594B467CDE4C988C3C3F7AF563DABB/.input): FileSystem#open((Lorg/apache/hadoop/fs/Path;I)Lorg/apache/hadoop/fs/FSDataInputStream;) eroare: java.io.IOException: nu a reușit pe local excepție: java.io.IOException: javax.security.sasl.SaslException: GSS iniţia nu a reușit [cauzate de GSSException: No valid acreditările furnizate (mecanism de nivel: nu a reușit să găsească orice tgt Kerberos)]; Gazdă detalii: local gazdă este: "< hostname >"; gazdă de destinație este: "< hostname >": 8020; la org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:764) la org.apache.hadoop.ipc.Client.call(Client.java:1415) la org.apache.hadoop.ipc.Client.call(Client.java:1364) la org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206) la com.sun.proxy.$Proxy14.getBlockLocations (sursă necunoscută) la org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getBlockLocations(ClientNamenodeProtocolTranslatorPB.java:246) la sun.reflect.NativeMethodAccessorImpl.invoke0 (metoda nativ) la sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) la sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) la java.lang.reflect.Method.invoke(Method.java:606) la org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187) la org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102) la com.sun.proxy.$Proxy15.getBlockLocations (sursă necunoscută) la org.apache.hadoop.hdfs.DFSClient.callGetBlockLocations(DFSClient.java:1179) la org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1169) la org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1159) la org.apache.hadoop.hdfs.DFSInputStream.fetchLocatedBlocksAndGetLastBlockLength(DFSInputStream.java:270) la org.apache.hadoop.hdfs.DFSInputStream.openInfo(DFSInputStream.java:237) la org.apache.hadoop.hdfs.DFSInputStream. < init > (DFSInputStream.java:230) la org.apache.hadoop.hdfs.DFSClient.open(DFSClient.java:1457) la org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:301) la org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:297) la org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) la org.apache.hadoop.hdfs.DistributedFileSystem.open(DistributedFileSystem.java:297) Cauzate de: java.io.IOException: javax.security.sasl.SaslException: GSS iniţia nu a reușit [cauzate de GSSException: No valid acreditările furnizate (mecanism de nivel: nu a reușit să găsească orice tgt Kerberos)] la org.apache.hadoop.ipc.Client$Connection$1.run(Client.java:679) la java.security.AccessController.doPrivileged (metoda nativ) la javax.security.auth.Subject.doAs(Subject.java:415) la org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1642) la org.apache.hadoop.ipc.Client$Connection.handleSaslConnectionFailure(Client.java:642) la org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:725) la org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:367) la org.apache.hadoop.ipc.Client.getConnection(Client.java:1463) la org.apache.hadoop.ipc.Client.call(Client.java:1382)Mai întâi, confirmați că utilizatorul remiterea treaba au un permis kerberos curente și validă, dar este posibil să vedeți această eroare chiar și cu un permis valabil confirmat.
Dacă clusterul este configurat pentru disponibilitatea ridicată a nodului nume, este necesar să se specifice în RxHadoopMR() și RxHdfsFileSystem() apelează într-un script pentru a specifica numele nod serviciul deşi specificând numele de gazdă nume active nod va funcționa. În cazul unei kerberized și HA nume nod mediu, HDFS_DELEGATION_TOKEN trebuie să corespundă nameservice referința. Eroare de mai sus, consultaţi:INFORMAȚII de securitate. TokenCache: Am dt pentru hdfs://nameservice1; Tip: HDFS_DELEGATION_TOKEN, Service: ha-hdfs:nameservice1, Ident: (HDFS_DELEGATION_TOKEN simbol 242420 pentru a377683
În acest caz, argumentele nameNode/nume de gazdă în apelurile RxHadoopMR() și RxHdfsFileSystem() trebuie setată la "nameservice1".