1.kerberos 认证,登录hdfs失败,报"Cannot locate default realm"问题排查和定位

1,136 阅读1分钟

kerberos 认证,登录hdfs失败,报"Cannot locate default realm"问题排查和定位:

arthas 排查报错的代码

1.获取静态属性 getstatic sun.security.krb5.Config singleton

2.查看某个类的某个方法的返回值

watch org.apache.hadoop.security.authentication.util.KerberosUtil getDefaultRealm returnObj

报错的日志

` org.apache.hadoop.security.HadoopKerberosName.setConfiguration(HadoopKerberosName.java:65) at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:275) at org.apache.hadoop.security.UserGroupInformation.setConfiguration(UserGroupInformation.java:311) at com.cgh.system.utils.connection.hdfs.HdfsConnection.kerberosAuthentication(HdfsConnection.java:140) at com.cgh.system.utils.connection.hdfs.HdfsConnection.login(HdfsConnection.java:106) at com.cgh.hsm.TestControlelr.healthHdfs(TestControlelr.java:185)

KrbException: Cannot locate default realm at sun.security.krb5.Config.getDefaultRealm(Config.java:1181) sun.security.krb5.Config.getRealmFromDNS(Config.java:1277) at sun.security.krb5.Config.getDefaultRealm(Config.java:1162)

at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.hadoop.security.authentication.util.KerberosUtil.getDefaultRealm(KerberosUtil.java:84) at org.apache.hadoop.security.HadoopKerberosName.setConfiguration(HadoopKerberosName.java:63) `