V prostředí organizace R otáčku Hadoop mapreduce úlohy se pravděpodobně nezdaří s vyjímka Java souvisejících s protokolem kerberos:
Možnosti nastavení:
15/02/03 16:59:05 UPOZORNIT util. NativeCodeLoader: Nelze načíst knihovnu nativní hadoop pro vaši platformu... pomocí vestavěné java třídy, případně LADĚNÍ: 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: Vytvořen token HDFS_DELEGATION_TOKEN 242420 pro a377683 na ha-hdfs:nameservice1 15/02/03 16:59:09 informace o zabezpečení. TokenCache: Máte dt pro hdfs://nameservice1; Druh: HDFS_DELEGATION_TOKEN, servis: ha-hdfs:nameservice1, Ident: (token HDFS_DELEGATION_TOKEN 242420 pro a377683) ...... 15/02/03 16:59:25. INFO mapreduce. Úloha: snížení mapa 0 % 0 % 15/02/03 16:59:38. INFO mapreduce. Úloha: Id úlohy: attempt_1422647534016_1760_m_000000_0 stav: se nezdařilo Chyba: java.io.IOException: R VM byl ukončen s kódem ukončení: 1, výstup: spuštění skriptu [1] PLATÍ $fileName [1] NA $start [1] 0 $length [1] 0 15/02/03 16:59:37 zobrazit upozornění zabezpečení. UserGroupInformation: PriviledgedActionException jako: a377683 cause:javax.security.sasl.SaslException (auth:KERBEROS): se nezdařilo inicializovat GSS [způsobené GSSException: žádná platná pověření k dispozici (úroveň mechanismu: Nepodařilo se najít žádné tgt protokolu Kerberos)] 15/02/03 16:59:37 UPOZORNIT ipc. Klient: Došlo k výjimce při připojování k serveru: javax.security.sasl.SaslException: se nezdařilo inicializovat GSS [způsobené GSSException: žádná platná pověření k dispozici (úroveň mechanismu: Nepodařilo se najít žádné tgt protokolu Kerberos)] 15/02/03 16:59:37 zobrazit upozornění zabezpečení. UserGroupInformation: PriviledgedActionException jako: a377683 (auth:KERBEROS) cause:java.io.IOException: javax.security.sasl.SaslException: se nezdařilo inicializovat GSS [způsobené GSSException: žádná platná pověření k dispozici (úroveň mechanismu: Nepodařilo se najít žádné tgt protokolu Kerberos)] hdfsOpenFile(/user/RevoShare/a377683/EE594B467CDE4C988C3C3F7AF563DABB/.input): Chyba FileSystem#open((Lorg/apache/hadoop/fs/Path;I)Lorg/apache/hadoop/fs/FSDataInputStream;): java.io.IOException: na místní výjimky se nezdařilo: java.io.IOException: javax.security.sasl.SaslException: se nezdařilo inicializovat GSS [způsobené GSSException: žádná platná pověření k dispozici (úroveň mechanismu: Nepodařilo se najít žádné tgt protokolu Kerberos)]; Hostitel podrobnosti: místní hostitel je: "< hostname >"; Cílový hostitel je: "< hostname >": 8020; v org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:764) v org.apache.hadoop.ipc.Client.call(Client.java:1415) v org.apache.hadoop.ipc.Client.call(Client.java:1364) v org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206) v com.sun.proxy.$Proxy14.getBlockLocations (Neznámý zdroj) v org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getBlockLocations(ClientNamenodeProtocolTranslatorPB.java:246) v sun.reflect.NativeMethodAccessorImpl.invoke0 (nativní metoda) v sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) v sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) v java.lang.reflect.Method.invoke(Method.java:606) v org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187) v org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102) v com.sun.proxy.$Proxy15.getBlockLocations (Neznámý zdroj) v org.apache.hadoop.hdfs.DFSClient.callGetBlockLocations(DFSClient.java:1179) v org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1169) v org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1159) v org.apache.hadoop.hdfs.DFSInputStream.fetchLocatedBlocksAndGetLastBlockLength(DFSInputStream.java:270) v org.apache.hadoop.hdfs.DFSInputStream.openInfo(DFSInputStream.java:237) org.apache.hadoop.hdfs.DFSInputStream < init > (DFSInputStream.java:230). v org.apache.hadoop.hdfs.DFSClient.open(DFSClient.java:1457) v org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:301) v org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:297) v org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) v org.apache.hadoop.hdfs.DistributedFileSystem.open(DistributedFileSystem.java:297) Caused podle: java.io.IOException: javax.security.sasl.SaslException: se nezdařilo inicializovat GSS [způsobené GSSException: žádná platná pověření k dispozici (úroveň mechanismu: Nepodařilo se najít žádné tgt protokolu Kerberos)] v org.apache.hadoop.ipc.Client$Connection$1.run(Client.java:679) v java.security.AccessController.doPrivileged (nativní metoda) v javax.security.auth.Subject.doAs(Subject.java:415) v org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1642) v org.apache.hadoop.ipc.Client$Connection.handleSaslConnectionFailure(Client.java:642) v org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:725) v org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:367) v org.apache.hadoop.ipc.Client.getConnection(Client.java:1463) v org.apache.hadoop.ipc.Client.call(Client.java:1382)Nejprve zkontrolujte, zda uživatel úlohu mají lístek protokolu kerberos aktuální a platné, ale je možné zobrazit selhání i s potvrzeným platnou letenku.
Pokud je cluster konfigurován pro vysokou dostupnost název uzlu, je třeba určité RxHadoopMR() a RxHdfsFileSystem() volá skript určující název hostitele název aktivní uzel bude fungovat i v případě určit název uzlu služby. V případě kerberized a HA název uzlu prostředí musí odpovídat HDFS_DELEGATION_TOKEN odkaz na nameservice. Výše uvedené chyby naleznete v tématu:Informace o zabezpečení. TokenCache: Máte dt pro hdfs://nameservice1; Druh: HDFS_DELEGATION_TOKEN, servis: ha-hdfs:nameservice1, Ident: (HDFS_DELEGATION_TOKEN token 242420 pro a377683
NameNode/hostName argumenty ve volání RxHadoopMR() a RxHdfsFileSystem() v tomto případě je třeba nastavit na "nameservice1".