Aplica-se A
Revolution Analytics

Num ambiente empresarial de R Hadoop/rotação, uma tarefa mapreduce poderá falhar com uma excepção de Java relacionadas com kerberos:

Definir opções:02/15/03 16:59:05 util. avisar NativeCodeLoader: Não é possível carregar a biblioteca hadoop nativo para a sua plataforma... utilizar builtin java classes se for caso dissoDEPURAÇÃO: 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]02/15/03 16:59:09 INFO hdfs. DFSClient: Criado o token de HDFS_DELEGATION_TOKEN 242420 de a377683 ha-hdfs:nameservice102/15/03 16:59:09 segurança de informações. TokenCache: Obteve dt para hdfs://nameservice1; Tipo: HDFS_DELEGATION_TOKEN, serviço: ha-hdfs:nameservice1, Ident: (token HDFS_DELEGATION_TOKEN 242420 para a377683)......02/15/03 16:59:25 mapreduce de informações. Tarefa: reduzir a mapa 0% 0%02/15/03 16:59:38 INFO mapreduce. Projecto: Id da tarefa: attempt_1422647534016_1760_m_000000_0, estado: falhouErro: java.io.IOException: R VM foi encerrado com o código de saída: 1, saída:script de inícioTRUE [1]$fileName [1] NA$start [1] 0$length [1] 002/15/03 16:59:37 avisar segurança. UserGroupInformation: PriviledgedActionException como: a377683 cause:javax.security.sasl.SaslException (auth:KERBEROS): initiate GSS falhou [causados por GSSException: não válidas credenciais fornecidas (nível de mecanismo: não foi possível localizar qualquer tgt de Kerberos)]02/15/03 16:59:37 avisar ipc. Cliente: Excepção encontrada ao ligar ao servidor: javax.security.sasl.SaslException: initiate GSS falhou [causados por GSSException: não válidas credenciais fornecidas (nível mecanismo: não foi possível localizar qualquer tgt de Kerberos)]02/15/03 16:59:37 avisar segurança. UserGroupInformation: PriviledgedActionException como: a377683 cause:java.io.IOException (auth:KERBEROS): javax.security.sasl.SaslException: initiate GSS falhou [causados por GSSException: não válidas credenciais fornecidas (nível de mecanismo: não foi possível localizar qualquer tgt de Kerberos)]hdfsOpenFile(/user/RevoShare/a377683/EE594B467CDE4C988C3C3F7AF563DABB/.input): erro FileSystem#open((Lorg/apache/hadoop/fs/Path;I)Lorg/apache/hadoop/fs/FSDataInputStream;):java.io.IOException: falhou na excepção local: java.io.IOException: javax.security.sasl.SaslException: initiate GSS falhou [causados por GSSException: não válidas credenciais fornecidas (nível de mecanismo: não foi possível localizar qualquer tgt de Kerberos)]; Detalhes do anfitrião: anfitrião local é: "< hostname >"; anfitrião de destino é: "< hostname >": 8020;em org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:764)em org.apache.hadoop.ipc.Client.call(Client.java:1415)em org.apache.hadoop.ipc.Client.call(Client.java:1364)em org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)em com.sun.proxy.$Proxy14.getBlockLocations (origem desconhecida)em org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getBlockLocations(ClientNamenodeProtocolTranslatorPB.java:246)em sun.reflect.NativeMethodAccessorImpl.invoke0 (método nativo)em sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)em sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)em java.lang.reflect.Method.invoke(Method.java:606)em org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)em org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)em com.sun.proxy.$Proxy15.getBlockLocations (origem desconhecida)em org.apache.hadoop.hdfs.DFSClient.callGetBlockLocations(DFSClient.java:1179)em org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1169)em org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1159)em org.apache.hadoop.hdfs.DFSInputStream.fetchLocatedBlocksAndGetLastBlockLength(DFSInputStream.java:270)em org.apache.hadoop.hdfs.DFSInputStream.openInfo(DFSInputStream.java:237)em org.apache.hadoop.hdfs.DFSInputStream. < init > (DFSInputStream.java:230)em org.apache.hadoop.hdfs.DFSClient.open(DFSClient.java:1457)em org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:301)em org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:297)em org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)em org.apache.hadoop.hdfs.DistributedFileSystem.open(DistributedFileSystem.java:297)Deu origem a por: java.io.IOException: javax.security.sasl.SaslException: initiate GSS falhou [causados por GSSException: não válidas credenciais fornecidas (nível de mecanismo: não foi possível localizar qualquer tgt de Kerberos)]em org.apache.hadoop.ipc.Client$Connection$1.run(Client.java:679)em java.security.AccessController.doPrivileged (método nativo)em javax.security.auth.Subject.doAs(Subject.java:415)em org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1642)em org.apache.hadoop.ipc.Client$Connection.handleSaslConnectionFailure(Client.java:642)em org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:725)em org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:367)em org.apache.hadoop.ipc.Client.getConnection(Client.java:1463)em org.apache.hadoop.ipc.Client.call(Client.java:1382)

Em primeiro lugar, confirme que o utilizador submeter a tarefa tiver uma permissão kerberos actuais e válidas, mas é possível ver esta falha mesmo com uma permissão válida confirmada.Se o cluster estiver configurado para elevada disponibilidade do nome nó, é necessário ser específica de RxHadoopMR() e RxHdfsFileSystem() chamadas no script para especificar o serviço de nomes de nó, apesar de especificar o nome de anfitrião do nome activo nó também irá funcionar. No caso de um kerberized HA nome nó ambiente e , o HDFS_DELEGATION_TOKEN tem de corresponder a referência de nameservice. O erro acima, consulte:

Segurança de informações. TokenCache: Obteve dt para hdfs://nameservice1; Tipo: HDFS_DELEGATION_TOKEN, serviço: ha-hdfs:nameservice1, Ident: (HDFS_DELEGATION_TOKEN token 242420 para a377683

Neste caso, os argumentos de nameNode/nome de anfitrião em chamadas de RxHadoopMR() e RxHdfsFileSystem() devem ser definidos como "nameservice1".

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.