分享

问题java.io.IOException: Login failure for hadoop/admin@psy.com from keytab

pengsuyun 发表于 2014-10-23 11:37:09 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 8 71376
在做hadoop和kerberos结合的时候有谁遇到过下面这个问题,导致namenode启动不了:

2014-10-17 07:45:30,382 FATAL org.apache.hadoop.hdfs.server.namenode.NameNode: Exception in namenode join
java.io.IOException: Login failure for hadoop/admin@psy.com from keytab /hadoop-data/etc/hadoop/hadoop.keytab
        at org.apache.hadoop.security.UserGroupInformation.loginUserFromKeytab(UserGroupInformation.java:890)
        at org.apache.hadoop.security.SecurityUtil.login(SecurityUtil.java:242)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.loginAsNameNodeUser(NameNode.java:532)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:551)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:724)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:708)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1358)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1424)
Caused by: javax.security.auth.login.LoginException: Unable to obtain password from user

        at com.sun.security.auth.module.Krb5LoginModule.promptForPass(Krb5LoginModule.java:856)
        at com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:719)
        at com.sun.security.auth.module.Krb5LoginModule.login(Krb5LoginModule.java:584)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at javax.security.auth.login.LoginContext.invoke(LoginContext.java:762)
        at javax.security.auth.login.LoginContext.access$000(LoginContext.java:203)
        at javax.security.auth.login.LoginContext$4.run(LoginContext.java:690)
        at javax.security.auth.login.LoginContext$4.run(LoginContext.java:688)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:687)
        at javax.security.auth.login.LoginContext.login(LoginContext.java:595)
        at org.apache.hadoop.security.UserGroupInformation.loginUserFromKeytab(UserGroupInformation.java:881)
        ... 7 more
2014-10-17 07:45:30,391 INFO org.apache.hadoop.util.ExitUtil: Exiting with status 1




已有(8)人评论

跳转到指定楼层
sstutu 发表于 2014-10-23 11:58:44

这里是否修改


回复

使用道具 举报

bioger_hit 发表于 2014-10-23 12:07:42
做这方面的很少,认证不通过,只能自己检查下权限,或则配置之类的。


回复

使用道具 举报

pengsuyun 发表于 2014-10-23 12:17:45

<property>
                   <name>dfs.permissions.enabled</name>
                   <value>true</value>
           </property>

这个是我的设置
我的hadoop版本是2.4.1

回复

使用道具 举报

bioger_hit 发表于 2014-10-23 12:20:13
pengsuyun 发表于 2014-10-23 12:17
dfs.permissions.enabled
                   true
          
改为false,试一下
回复

使用道具 举报

howtodown 发表于 2014-10-23 12:21:23


集群中的所有节点和hadoop user machine上安装 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy File
打开上面的链接,在页面的下方,下载jdk对应的文件,jdk1.6.0_22下载下面的文件:
注:如果后面出现login failed的错误,应先检查是否是从官方网站下载的JCE。

1838361_1339657797576w.jpg
下载的文件是一个zip包,解开后,将里面的两个文件放到下面的目录中:
/usr/java/jdk1.6.0_22/jre/lib/security
注:也可以不使用AED-256加密,方法见官方文档对应的部分。



回复

使用道具 举报

pengsuyun 发表于 2014-10-23 12:53:27
howtodown 发表于 2014-10-23 12:21
集群中的所有节点和hadoop user machine上安装 Java Cryptography Extension (JCE) Unlimited Strength  ...

这两个文件本来就有的,为什么要替换呢?
回复

使用道具 举报

pengsuyun 发表于 2014-10-24 08:35:52
pengsuyun 发表于 2014-10-23 12:53
这两个文件本来就有的,为什么要替换呢?

不过替换之后确实有用,求版主给个解释。
回复

使用道具 举报

紫色蒲公英 发表于 2016-7-11 14:34:04
替换了还是不行。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条