Hadoop datanode无法与KDC通信,但kinit可以正常工作。
sudo kinit -k -t /etc/hadoop/conf/hdfs.keytab hdfs/symbio5.us-west-1.compute.internal@US-WEST-1.COMPUTE.INTERNAL
UDP端口也没问题。
nc symbio5.us-west-1.compute.internal -v -z -u 88
连接到symbio5.us-west-1.compute.internal 88端口[udp / kerberos]成功了!
但是在hadoop kerberos调试输出中,它总是说“接收超时”。
KrbAsReq调用createMessage
createMessage中的KrbAsReq
KrbKdcReq发送:kdc = symbio5.us-west-1.compute.internal UDP:88,timeout = 30000,重试次数= 3,#bytes = 216
KDCCommunication:kdc = symbio5.us-west-1.compute.internal UDP:88,timeout = 30000,Attempt = 1,#bytes = 216
尝试的SocketTimeOutException:1
KDCCommunication:kdc = symbio5.us-west-1.compute.internal UDP:88,timeout = 30000,Attempt = 2,#bytes = 216
尝试的SocketTimeOutException:2
KDCCommunication:kdc = symbio5.us-west-1.compute.internal UDP:88,timeout = 30000,Attempt = 3,#bytes = 216
尝试的SocketTimeOutException:3
KrbKdcReq发送:错误尝试symbio5.us-west-1.compute.internal java.net.SocketTimeoutException:接收超时
但是对于symbio5本身,它有Namenode和KDC以及datanode,没关系。
KrbAsReq调用createMessage
createMessage中的KrbAsReq
KrbKdcReq发送:kdc = symbio5.us-west-1.compute.internal UDP:88,timeout = 30000,重试次数= 3,#bytes = 217
KDCCommunication:kdc = symbio5.us-west-1.compute.internal UDP:88,timeout = 30000,Attempt = 1,#bytes = 217
KrbKdcReq发送:#bytes read = 776
KrbKdcReq发送:#bytes read = 776
KdcAccessibility:删除symbio5.us-west-1.compute.internal
有人可以给我一些帮助吗?非常感谢。
答案 0 :(得分:3)
最后我解决了这个问题,只是让Hadoop使用TCP端口与Kerberos通信,而不是UDP。
sudo vim /etc/krb5.conf
...
[libdefaults]
...
udp_preference_limit = 1
...