现象:
java.sercurity.auth.login.LoginException:Checksum failed
KrbException: Checksum failed
可能的原因:
没有用帐号登录:
kinit -k -t nn.keytab nn/node-107
kinit nn/node-107
启用Kerberos后,如果没有kerberos票证,则无法访问HDFS …
这意味着,执行代码的用户应该拥有有效的kerberos票证。 (如果用户组中有一个普通用户的话)
解决方案:
- 执行
klist
并检查用户的当前到期日期 - 用有效的
REALM
执行kinit(kinit user@REALM)
- 执行
klist
并检查用户的新到期日期(确保在票证到期之前重复执行这些步骤。您也可以将这些步骤放在脚本中并在频繁的交互中自动触发以避免中断)
再次执行你的代码,kerberos异常应该就消失啦