Hi all,

   I configured like below in hdfs-site.xml:

<property>
  <name>dfs.namenode.kerberos.principal</name>
  <value>nn/_HOST@site</value>
</property>


<property>
    <name>dfs.web.authentication.kerberos.principal</name>
    <value>host/_HOST@site</value>
</property>


   When  start up namenode, I found, namenode will use principal : 
nn/167-52-0-56@site to login, but the http server will use 
nn/167-52-0-56.site@site<mailto:nn/167-52-0-56.site@site> to lgin,  so it start 
failed.

I checked the code,

Namenode will use socAddr.getHostName() to get hostname in 
org.apache.hadoop.hdfs.server.namenode.NameNode<eclipse-javadoc:%E2%98%82=hadoop-2.0.0-alpha-src/hadoop-hdfs-project%5C/hadoop-hdfs%5C/src%5C/main%5C/java%3Corg.apache.hadoop.hdfs.server.namenode%7BNameNode.java%E2%98%83NameNode>.loginAsNameNodeUser.


But httpserver 's hostname is 0.0.0.0, so in 
org.apache.hadoop.security.SecurityUtil<eclipse-javadoc:%E2%98%82=hadoop-2.0.0-alpha-src/hadoop-common-project%5C/hadoop-common%5C/src%5C/main%5C/java%3Corg.apache.hadoop.security%7BSecurityUtil.java%E2%98%83SecurityUtil>.replacePattern,
 it will get the hostname by invoking getLocalHostName,there it use 
getCanonicalHostName(),

I think this inconsistent is wrong,  can someone confirm this? Need raise one 
bug ?



Reply via email to