Hadoop: Excepción de Java "Error de inicio GSS"

En un entorno empresarial de R Hadoop/revolución, un trabajo mapreduce puede fallar con una excepción de Java relacionados con kerberos:

Opciones de configuración:
15/02/03 16:59:05 util de ADVERTIR. NativeCodeLoader: No se puede cargar la biblioteca nativa hadoop para su plataforma... mediante builtin java clases en su caso
DEPURACIÓ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 hdfs INFO. DFSClient: Crea token HDFS_DELEGATION_TOKEN 242420 de a377683 de ha-hdfs:nameservice1
15/02/03 16:59:09 seguridad INFO. TokenCache: Consiguió dt para hdfs://nameservice1; Tipo: HDFS_DELEGATION_TOKEN, servicio: ha-hdfs:nameservice1, Ident: (token 242420 de HDFS_DELEGATION_TOKEN de a377683)

......

15/02/03 16:59:25 mapreduce INFO. Trabajo: reducir el mapa 0% % 0
15/02/03 16:59:38 mapreduce INFO. Trabajo: Id. tarea: attempt_1422647534016_1760_m_000000_0, estado: error
Error: java.io.IOException: R VM terminó con el código de salida: 1 salida:
el script de inicio
[1] VERDADERO
$fileName 
[1] NA
$start 
[1] 0
$length 
[1] 0
15/02/03 16:59:37 seguridad ADVERTIR. UserGroupInformation: PriviledgedActionException como: a377683 cause:javax.security.sasl.SaslException (auth:KERBEROS): iniciar GSS error [causada por GSSException: sin credenciales válidas proporcionadas (nivel de mecanismo: no se pudo encontrar ningún vale de Kerberos)]
15/02/03 16:59:37 ADVERTIR ipc. Cliente: Excepción que se produjo mientras se conecta al servidor: javax.security.sasl.SaslException: iniciar GSS error [causada por GSSException: sin credenciales válidas proporcionadas (nivel de mecanismo: no se pudo encontrar ningún vale de Kerberos)]
15/02/03 16:59:37 seguridad ADVERTIR. UserGroupInformation: PriviledgedActionException como: a377683 cause:java.io.IOException (auth:KERBEROS): javax.security.sasl.SaslException: iniciar GSS error [causada por GSSException: sin credenciales válidas proporcionadas (nivel de mecanismo: no se pudo encontrar ningún vale de Kerberos)]
hdfsOpenFile(/user/RevoShare/a377683/EE594B467CDE4C988C3C3F7AF563DABB/.input): error de FileSystem#open((Lorg/apache/hadoop/fs/Path;I)Lorg/apache/hadoop/fs/FSDataInputStream;):
java.io.IOException: error de excepción local: java.io.IOException: javax.security.sasl.SaslException: iniciar GSS error [causada por GSSException: sin credenciales válidas proporcionadas (nivel de mecanismo: no se pudo encontrar ningún vale de Kerberos)]; Detalles del host: host local es: "< hostname >"; host de destino es: "< hostname >": 8020;
en org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:764)
en org.apache.hadoop.ipc.Client.call(Client.java:1415)
en org.apache.hadoop.ipc.Client.call(Client.java:1364)
en org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)
en com.sun.proxy.$Proxy14.getBlockLocations (fuente desconocida)
en org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getBlockLocations(ClientNamenodeProtocolTranslatorPB.java:246)
en sun.reflect.NativeMethodAccessorImpl.invoke0 (método nativo)
en sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
en sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
en java.lang.reflect.Method.invoke(Method.java:606)
en org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)
en org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
en com.sun.proxy.$Proxy15.getBlockLocations (fuente desconocida)
en org.apache.hadoop.hdfs.DFSClient.callGetBlockLocations(DFSClient.java:1179)
en org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1169)
en org.apache.hadoop.hdfs.DFSClient.getLocatedBlocks(DFSClient.java:1159)
en org.apache.hadoop.hdfs.DFSInputStream.fetchLocatedBlocksAndGetLastBlockLength(DFSInputStream.java:270)
en org.apache.hadoop.hdfs.DFSInputStream.openInfo(DFSInputStream.java:237)
en org.apache.hadoop.hdfs.DFSInputStream < init > (DFSInputStream.java:230).
en org.apache.hadoop.hdfs.DFSClient.open(DFSClient.java:1457)
en org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:301)
en org.apache.hadoop.hdfs.DistributedFileSystem$3.doCall(DistributedFileSystem.java:297)
en org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
en org.apache.hadoop.hdfs.DistributedFileSystem.open(DistributedFileSystem.java:297)
Causado por: java.io.IOException: javax.security.sasl.SaslException: iniciar GSS error [causada por GSSException: sin credenciales válidas proporcionadas (nivel de mecanismo: no se pudo encontrar ningún vale de Kerberos)]
en org.apache.hadoop.ipc.Client$Connection$1.run(Client.java:679)
en java.security.AccessController.doPrivileged (método nativo)
en javax.security.auth.Subject.doAs(Subject.java:415)
en org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1642)
en org.apache.hadoop.ipc.Client$Connection.handleSaslConnectionFailure(Client.java:642)
en org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:725)
en org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:367)
en org.apache.hadoop.ipc.Client.getConnection(Client.java:1463)
en org.apache.hadoop.ipc.Client.call(Client.java:1382)

En primer lugar, confirme el usuario que envía el trabajo tiene un vale de kerberos actual y válida, pero es posible que vea este error incluso con un vale válido confirmado.

Si el clúster está configurado para alta disponibilidad de nombre nodo, es necesario que sean específicas en el RxHadoopMR() y llama a RxHdfsFileSystem() en la secuencia de comandos para especificar el servicio de nombres de nodo, aunque también funciona especificando el nombre de host del nodo nombre activo. En el caso de un aptas y nombre nodo entorno HA, la HDFS_DELEGATION_TOKEN debe coincidir con la referencia de nameservice. En el error anterior, consulte:

Seguridad de la información. TokenCache: Consiguió dt para hdfs://nameservice1; Tipo: HDFS_DELEGATION_TOKEN, servicio: ha-hdfs:nameservice1, Ident: (HDFS_DELEGATION_TOKEN token 242420 para a377683

En este caso, los argumentos de nombre de host/nameNode en las llamadas RxHadoopMR() y RxHdfsFileSystem() deben establecerse en "nameservice1".

¿Necesita más ayuda?

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Unirse a Microsoft Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×