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>nn/_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.loginAsNameNodeUser.


But httpserver 's default hostname is 0.0.0.0, so in 
org.apache.hadoop.security.SecurityUtil.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 ? 

Thanks

Reply via email to