使用Java的keytab与hiveserver2建立连接超时

时间:2018-08-24 00:36:33

标签: hadoop hive kerberos

我正在操作hadoop集群。
大多数时候,一切都很好。
但是有时候,每两个月一次,我就会收到如下所示的错误。
我该如何缓解这个问题?

03:20:06            SLF4J: Class path contains multiple SLF4J bindings.
03:20:06            SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-5.12.2-1.cdh5.12.2.p0.4/jars/avro-tools-1.7.6-cdh5.12.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
03:20:06            SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-5.12.2-1.cdh5.12.2.p0.4/jars/pig-0.12.0-cdh5.12.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
03:20:06            SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-5.12.2-1.cdh5.12.2.p0.4/jars/slf4j-simple-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
03:20:06            SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-5.12.2-1.cdh5.12.2.p0.4/jars/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
03:20:06            SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
03:20:10            org.apache.hadoop.security.KerberosAuthException: Login failure for user: sample/sample.ac@SAMPLE.SAMPLE from keytab /etc/security/sample.keytab javax.security.auth.login.LoginException: connect timed out
03:20:10                at org.apache.hadoop.security.UserGroupInformation.loginUserFromKeytab(UserGroupInformation.java:1130)
03:20:10            Caused by: java.net.SocketTimeoutException: connect timed out
03:20:10                at java.net.PlainSocketImpl.socketConnect(Native Method)
03:20:10                at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
03:20:10                at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
03:20:10                at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
03:20:10                at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
03:20:10                at java.net.Socket.connect(Socket.java:589)
03:20:10                at sun.security.krb5.internal.TCPClient.<init>(NetClient.java:63)
03:20:10                at sun.security.krb5.internal.NetClient.getInstance(NetClient.java:43)
03:20:10                at sun.security.krb5.KdcComm$KdcCommunication.run(KdcComm.java:393)
03:20:10                at sun.security.krb5.KdcComm$KdcCommunication.run(KdcComm.java:364)
03:20:10                at java.security.AccessController.doPrivileged(Native Method)
03:20:10                at sun.security.krb5.KdcComm.send(KdcComm.java:348)
03:20:10                at sun.security.krb5.KdcComm.sendIfPossible(KdcComm.java:253)
03:20:10                at sun.security.krb5.KdcComm.send(KdcComm.java:229)
03:20:10                at sun.security.krb5.KdcComm.send(KdcComm.java:200)
03:20:10                at sun.security.krb5.KrbAsReqBuilder.send(KrbAsReqBuilder.java:316)
03:20:10                at sun.security.krb5.KrbAsReqBuilder.action(KrbAsReqBuilder.java:361)
03:20:10                at com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:776)Caused by: javax.security.auth.login.LoginException: connect timed out

1 个答案:

答案 0 :(得分:0)

/etc/krb5.conf
kdc_timeout 3秒⇒9秒