Em um ambiente corporativo de R Hadoop/revolução, um trabalho mapreduce pode falhar com uma exceção de Java relacionadas ao kerberos:

Opções de configuração:
15/02/03 16:59:05 util. AVISAR NativeCodeLoader: Não é possível carregar a biblioteca nativa-hadoop para sua plataforma... usar java builtin classes quando aplicável
DEPURAÇÃ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 09:59:16 hdfs INFO. DFSClient: Criado token HDFS_DELEGATION_TOKEN 242420 de a377683 em ha-hdfs:nameservice1
02/15/03 09:59:16 segurança de informações. TokenCache: Tem dt para hdfs://nameservice1; Tipo: HDFS_DELEGATION_TOKEN, serviço: ha-hdfs:nameservice1, identificação: (símbolo HDFS_DELEGATION_TOKEN de 242420 de a377683)

......

15/02/03 16:59:25 mapreduce INFO. Trabalho: reduzir o mapa 0% 0%
15/02/03 16:59:38 mapreduce INFO. Trabalho: Id de tarefa: attempt_1422647534016_1760_m_000000_0, Status: falha
Erro: java.io.IOException: R VM foi encerrado com o código de saída: 1, saída:
script de partida
[1] TRUE
$fileName 
[1] NA
$start 
[1] 0
$length 
[1] 0
15/02/03 16:59:37 segurança AVISAR. UserGroupInformation: PriviledgedActionException como: a377683 cause:javax.security.sasl.SaslException (auth:KERBEROS): initiate GSS falha [causado por GSSException: sem credenciais válidas fornecidas (nível do mecanismo: Falha ao localizar qualquer tgt Kerberos)]
15/02/03 16:59:37 AVISAR ipc. Cliente: Exceção encontrada durante a conexão com o servidor: javax.security.sasl.SaslException: falha de initiate GSS [causado por GSSException: sem credenciais válidas fornecidas (nível do mecanismo: Falha ao localizar qualquer tgt Kerberos)]
15/02/03 16:59:37 segurança AVISAR. UserGroupInformation: PriviledgedActionException como: a377683 (auth:KERBEROS) cause:java.io.IOException: javax.security.sasl.SaslException: initiate GSS falha [causado por GSSException: sem credenciais válidas fornecidas (nível do mecanismo: Falha ao localizar qualquer tgt Kerberos)]
hdfsOpenFile(/user/RevoShare/a377683/EE594B467CDE4C988C3C3F7AF563DABB/.input): erro FileSystem#open((Lorg/apache/hadoop/fs/Path;I)Lorg/apache/hadoop/fs/FSDataInputStream;):
java.io.IOException: Falha na exceção local: java.io.IOException: javax.security.sasl.SaslException: initiate GSS falha [causado por GSSException: sem credenciais válidas fornecidas (nível do mecanismo: Falha ao localizar qualquer tgt Kerberos)]; Detalhes da host: host local é: "< hostname >"; host 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)
no com.sun.proxy.$Proxy14.getBlockLocations (fonte desconhecida)
em org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getBlockLocations(ClientNamenodeProtocolTranslatorPB.java:246)
no 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)
no com.sun.proxy.$Proxy15.getBlockLocations (fonte 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)
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)
Provocados por: java.io.IOException: javax.security.sasl.SaslException: initiate GSS falha [causado por GSSException: sem credenciais válidas fornecidas (nível do mecanismo: Falha ao localizar qualquer tgt Kerberos)]
em org.apache.hadoop.ipc.Client$Connection$1.run(Client.java:679)
no 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)

Primeiro, confirme se o usuário que envia o trabalho de ter um tíquete kerberos válido e atual, mas é possível ver essa falha mesmo com um tíquete válido confirmada.

Se o cluster estiver configurado para alta disponibilidade do nó do nome, é necessário ser específico da RxHadoopMR() e RxHdfsFileSystem() chama o script para especificar o nome do serviço de nó que especifica o nome de host do nome ativo nó também funcionará. No caso de um Kerberizado e nome nó ambiente de HA, o HDFS_DELEGATION_TOKEN deve coincidir com a referência de nameservice. No erro acima, consulte:

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

Nesse caso, os argumentos de nameNode/nome do host em chamadas RxHadoopMR() e RxHdfsFileSystem() devem ser definidos para "nameservice1".

Precisa de mais ajuda?

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Microsoft Insider

Estas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade da tradução?
O que afetou sua experiência?

Obrigado por seus comentários!

×