2011-10-25 2 views
0

클러스터에서 hadoop을 구성 중입니다.서버는 namenode가있는 보조 namenode docheckpoint 중에 403을 반환합니다.

모든 노드가 성공적으로 시작하지만, 보조 노드는 다음 로그로 doCheckpoint 실패 :

2011-10-25 11:09:07,207 ERROR org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Exception in doCheckpoint: 
2011-10-25 11:09:07,208 ERROR org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: java.io.IOException: Server returned HTTP response code: 403 for URL: https://name.node.http:50470/getimage?getimage=1 
    at sun.reflect.GeneratedConstructorAccessor24.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
    at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1491) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1485) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1139) 
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:234) 
    at org.apache.hadoop.hdfs.server.namenode.TransferFsImage.getFileClient(TransferFsImage.java:183) 
    at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode$3.run(SecondaryNameNode.java:364) 
    at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode$3.run(SecondaryNameNode.java:353) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:396) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1127) 
    at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.downloadCheckpointFiles(SecondaryNameNode.java:353) 
    at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.doCheckpoint(SecondaryNameNode.java:438) 
    at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.doWork(SecondaryNameNode.java:329) 
    at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode$2.run(SecondaryNameNode.java:288) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:337) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1110) 
    at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.run(SecondaryNameNode.java:285) 
    at java.lang.Thread.run(Thread.java:662) 
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: https://name.node.http:50470/getimage?getimage=1 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1436) 
    at sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:2308) 
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getHeaderField(HttpsURLConnectionImpl.java:271) 
    at org.apache.hadoop.hdfs.server.namenode.TransferFsImage.getFileClient(TransferFsImage.java:175) 
    ... 14 more 

는 네임 노드가 403

Kerberos를 하둡으로 구성되어 HTTP 오류 코드와 secondarynode의 요청을 거부 것, 그리고 인증이다 보조 노드 이름의 요청을 수락하기 위해 namenode를 전달했습니다.

2011-10-25 11:27:40,033 INFO SecurityLogger.org.apache.hadoop.ipc.Server: Auth successfull for hadoop/[email protected] 
2011-10-25 11:27:40,100 INFO SecurityLogger.org.apache.hadoop.security.authorize.ServiceAuthorizationManager: Authorization successfull for hadoop/[email protected] for protocol=interface org.apache.hadoop.hdfs.server.protocol.NamenodeProtocol 
2011-10-25 11:27:40,101 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Roll Edit Log from 123.58.169.92 

어떻게 이런 일이 발생할 수 있는지 알고 있습니까? 어떻게 해결할 수 있습니까?

대단히 감사합니다.

답변

0

나는 내 대답을 위의 대답으로 옮기는 것이 더 적절하다고 생각합니다. hdfs-site.xml에는 dfs.secondary.http.address 세트의 _HOST이 그것을 사용하는 일에 의해 번역됩니다이없는 경우

이 오류 때문에 hdfs-site.xml에서 보조 namemode 주체의 _HOST 매크로 설정이다.

이 경우 코드는 nameenode에서 실행되므로 _HOST은 name, hostname, realm으로 구성된 kerberos principal이 다른 principal이므로 인증에 실패했습니다.

관련 문제