Dotyczy
Revolution Analytics

W środowisku przedsiębiorstwa R Hadoop/obrót zadania mapreduce może się nie powieść z wyjątkiem Java związane z protokołem kerberos:

Ustawianie opcji:15/02/03 16:59:05 util. "OSTRZEGAJ" NativeCodeLoader: Za pomocą wbudowanego polecenia java nie mógł załadować biblioteki hadoop macierzystego dla danej platformy... klas stosownychProgram 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 INFO hdfs. DFSClient: Utworzony token HDFS_DELEGATION_TOKEN 242420 dla a377683 na ha-hdfs:nameservice115/02/03 16:59:09 INFO security. TokenCache: Dostał dt dla hdfs://nameservice1; Rodzaj: HDFS_DELEGATION_TOKEN, Service: ha-hdfs:nameservice1, Ident: (token HDFS_DELEGATION_TOKEN 242420 do a377683)......15/02/03 16:59:25 INFO mapreduce. Zadanie: Mapa 0% zmniejszenia 0%15/02/03 16:59:38 INFO mapreduce. Zadania: Zadań Id: attempt_1422647534016_1760_m_000000_0, stan: nie powiodło sięBłąd: java.io.IOException: R VM zostało zakończone przez kod zakończenia: 1, dane wyjściowe:Uruchamianie skryptuTRUE [1]$fileName [1] NA$start [1] 0$length [1] 015/02/03 16:59:37 OSTRZEGAJ zabezpieczeń. UserGroupInformation: PriviledgedActionException jako: a377683 cause:javax.security.sasl.SaslException (auth:KERBEROS): nie powiodło się inicjowanie GSS [spowodowane przez GSSException: nie prawidłowych poświadczeń, pod warunkiem (poziom mechanizm: nie udało się znaleźć żadnych biletu Kerberos)]15/02/03 16:59:37 OSTRZEGAJ ipc. Klienta: Wyjątek napotkano podczas nawiązywania połączenia z serwerem: javax.security.sasl.SaslException: nie powiodło się inicjowanie GSS [spowodowane przez GSSException: nie prawidłowych poświadczeń, pod warunkiem (poziom mechanizm: nie udało się znaleźć żadnych biletu Kerberos)]15/02/03 16:59:37 OSTRZEGAJ zabezpieczeń. UserGroupInformation: PriviledgedActionException jako: a377683 cause:java.io.IOException (auth:KERBEROS): javax.security.sasl.SaslException: nie powiodło się inicjowanie GSS [spowodowane przez GSSException: nie prawidłowych poświadczeń, pod warunkiem (poziom mechanizm: nie udało się znaleźć żadnych biletu Kerberos)]hdfsOpenFile(/user/RevoShare/a377683/EE594B467CDE4C988C3C3F7AF563DABB/.input): błąd FileSystem#open((Lorg/apache/hadoop/fs/Path;I)Lorg/apache/hadoop/fs/FSDataInputStream;):java.io.IOException: nie powiodło się na lokalnej wyjątek: java.io.IOException: javax.security.sasl.SaslException: nie powiodło się inicjowanie GSS [spowodowane przez GSSException: nie prawidłowych poświadczeń, pod warunkiem (poziom mechanizm: nie udało się znaleźć żadnych biletu Kerberos)]; Dane hosta: hosta lokalnego jest: "< nazwa_hosta >"; host docelowy to: "< nazwa_hosta >": 8020;o org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:764)o org.apache.hadoop.ipc.Client.call(Client.java:1415)o org.apache.hadoop.ipc.Client.call(Client.java:1364)o org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)w com.sun.proxy.$Proxy14.getBlockLocations (nieznanego źródła)o org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getBlockLocations(ClientNamenodeProtocolTranslatorPB.java:246)w sun.reflect.NativeMethodAccessorImpl.invoke0 (metoda)o sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)o sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)o java.lang.reflect.Method.invoke(Method.java:606)o org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)o org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)w com.sun.proxy.$Proxy15.getBlockLocations (nieznanego źródła)o org.apache.hadoop.hdfs.DFSClient.callGetBlockLocations(DFSClient.java:1179)o org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1169)o org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1159)o org.apache.hadoop.hdfs.DFSInputStream.fetchLocatedBlocksAndGetLastBlockLength(DFSInputStream.java:270)o org.apache.hadoop.hdfs.DFSInputStream.openInfo(DFSInputStream.java:237)o org.apache.hadoop.hdfs.DFSInputStream < init > (DFSInputStream.java:230).o org.apache.hadoop.hdfs.DFSClient.open(DFSClient.java:1457)o org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:301)o org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:297)o org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)o org.apache.hadoop.hdfs.DistributedFileSystem.open(DistributedFileSystem.java:297)Spowodowany przez: java.io.IOException: javax.security.sasl.SaslException: nie powiodło się inicjowanie GSS [spowodowane przez GSSException: nie prawidłowych poświadczeń, pod warunkiem (poziom mechanizm: nie udało się znaleźć żadnych biletu Kerberos)]o org.apache.hadoop.ipc.Client$Connection$1.run(Client.java:679)w Java.Security.accesscontroller.doprivilegednative (metoda)o javax.security.auth.Subject.doAs(Subject.java:415)o org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1642)o org.apache.hadoop.ipc.Client$Connection.handleSaslConnectionFailure(Client.java:642)o org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:725)o org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:367)o org.apache.hadoop.ipc.Client.getConnection(Client.java:1463)o org.apache.hadoop.ipc.Client.call(Client.java:1382)

Po pierwsze potwierdzić, że użytkownik przesyłania zadania mają biletu kerberos aktualne i prawidłowe, ale istnieje możliwość zobaczyć ten błąd, nawet w przypadku potwierdzonego ważny bilet.Jeśli klaster jest skonfigurowany dla nazwy węzła wysokiej dostępności, jest specyficzne w RxHadoopMR() i RxHdfsFileSystem() wywołania w skrypcie, aby określić usługę węzeł nazwa, choć Określanie nazwy hosta aktywnej nazwy węzła będzie również działać. W przypadku Kerberos i HA nazwa węzła środowisku HDFS_DELEGATION_TOKEN musi odpowiadać odwołanie serwowanie. W powyższych błędów Zobacz:

Bezpieczeństwo informacji. TokenCache: Dostał dt dla hdfs://nameservice1; Rodzaj: HDFS_DELEGATION_TOKEN, Service: ha-hdfs:nameservice1, Ident: (HDFS_DELEGATION_TOKEN token 242420 dla a377683

W takim przypadku argumenty nameNode lub nazwę hosta w wywołaniach RxHadoopMR() i RxHdfsFileSystem() powinna być równa "nameservice1".

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.