分享

配置hadoop + kerberos, zkfc无法启动

各位好,请教一下,现在部署了三节点的hadoop ha集群(hadoop version 2.7.1, OS:Centos 7.3),一切测试正常,然后开始集成kerberos,为zookeeper做完配置后,重启hdfs,zkfc服务无法正常启动,报错如下:

2018-02-01 11:26:40,158 INFO org.apache.hadoop.ha.ZKFailoverController: Local service NameNode at node1/192.168.10.187:9000 entered state: SERVICE_HEALTHY
2018-02-01 11:26:40,198 FATAL org.apache.hadoop.ha.ActiveStandbyElector: Received create error from Zookeeper. code:NOAUTH for path /hadoop-ha/myhdfs/ActiveStandbyElectorLock
2018-02-01 11:26:40,220 INFO org.apache.zookeeper.ZooKeeper: Session: 0x2614b837f710000 closed
2018-02-01 11:26:40,220 FATAL org.apache.hadoop.ha.ZKFailoverController: Fatal error occurred:Received create error from Zookeeper. code:NOAUTH for path /hadoop-ha/myhdfs/ActiveStandbyElectorLock
2018-02-01 11:26:40,220 INFO org.apache.zookeeper.ClientCnxn: EventThread shut down
2018-02-01 11:26:40,220 INFO org.apache.hadoop.ipc.Server: Stopping server on 8019
2018-02-01 11:26:40,222 INFO org.apache.hadoop.ha.ActiveStandbyElector: Yielding from election
2018-02-01 11:26:40,222 INFO org.apache.hadoop.ipc.Server: Stopping IPC Server listener on 8019
2018-02-01 11:26:40,222 INFO org.apache.hadoop.ipc.Server: Stopping IPC Server Responder
2018-02-01 11:26:40,222 INFO org.apache.hadoop.ha.HealthMonitor: Stopping HealthMonitor thread
2018-02-01 11:26:40,224 FATAL org.apache.hadoop.hdfs.tools.DFSZKFailoverController: Got a fatal error, exiting now
java.lang.RuntimeException: ZK Failover Controller failed: Received create error from Zookeeper. code:NOAUTH for path /hadoop-ha/myhdfs/ActiveStandbyElectorLock
        at org.apache.hadoop.ha.ZKFailoverController.mainLoop(ZKFailoverController.java:369)
        at org.apache.hadoop.ha.ZKFailoverController.doRun(ZKFailoverController.java:238)
        at org.apache.hadoop.ha.ZKFailoverController.access$000(ZKFailoverController.java:61)
        at org.apache.hadoop.ha.ZKFailoverController$1.run(ZKFailoverController.java:172)
        at org.apache.hadoop.ha.ZKFailoverController$1.run(ZKFailoverController.java:168)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:360)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1637)
        at org.apache.hadoop.security.SecurityUtil.doAsLoginUserOrFatal(SecurityUtil.java:413)
        at org.apache.hadoop.ha.ZKFailoverController.run(ZKFailoverController.java:168)
        at org.apache.hadoop.hdfs.tools.DFSZKFailoverController.main(DFSZKFailoverController.java:181)


登录进入zookeeper看了一眼,报错中所说的节点并不存在:

[zk: node1:2181(CONNECTED) 10] ls /hadoop-ha/myhdfs
[]
[zk: node1:2181(CONNECTED) 11] getAcl /hadoop-ha/myhdfs
'sasl,'nn
: cdrwa
[zk: node1:2181(CONNECTED) 12]


目前两个namenode服务都是standby状态,无法提供服务,请问是什么原因呢?

已有(6)人评论

跳转到指定楼层
nextuser 发表于 2018-2-1 15:24:27
用户想创建/hadoop-ha/myhdfs/ActiveStandbyElectorLock的ActiveStandbyElectorLock文件夹。但是创建失败了。所以看看当前用户是否具有权限。
另外不要遗漏配置文件的分发,也就是集群的配置文件要保持一致。
回复

使用道具 举报

blackmoon 发表于 2018-2-1 16:03:30
本帖最后由 blackmoon 于 2018-2-1 16:05 编辑
nextuser 发表于 2018-2-1 15:24
用户想创建/hadoop-ha/myhdfs/ActiveStandbyElectorLock的ActiveStandbyElectorLock文件夹。但是创建失败了 ...

感谢回复,我按照你的回帖检查了一下:

zookeeper里面的权限是:
[zk: node1:2181(CONNECTED) 0] getAcl /hadoop-ha/myhdfs
'sasl,'nn
: cdrwa

zkfc启动的时候,日志里面显示kdc的认证已经通过了,通过的用户就是 nn
2018-02-01 15:35:48,440 INFO org.apache.hadoop.hdfs.tools.DFSZKFailoverController: Failover controller configured for NameNode NameNode at node2/192.168.10.188:9000
2018-02-01 15:35:48,884 INFO org.apache.hadoop.security.UserGroupInformation: Login successful for user nn/node2@TEST.COM using keytab file /home/hbase/keytab/nn.service.keytab

但是下面还有一条不知道为什么提示:
2018-02-01 15:35:48,958 INFO org.apache.zookeeper.ClientCnxn: Opening socket connection to server node1/192.168.10.187:2181. Will not attempt to authenticate using SASL (unknown error)

配置文件的话,由于namenode节点要有jaas文件和在hadoop-env里面配置相应环境变量,这个只在namenode节点有外,core-site.xml和hdfs-site.xml我在三个节点都用过md5sum验证了,内容是一致的......

回复

使用道具 举报

nextuser 发表于 2018-2-1 16:53:14
blackmoon 发表于 2018-2-1 16:03
感谢回复,我按照你的回帖检查了一下:

zookeeper里面的权限是:

'sasl,'nn
上面sasl的含义是什么?应该上面造成错误
Will not attempt to authenticate using SASL (unknown error)

回复

使用道具 举报

blackmoon 发表于 2018-2-1 17:37:00
nextuser 发表于 2018-2-1 16:53
'sasl,'nn
上面sasl的含义是什么?应该上面造成错误
Will not attempt to authenticate using SASL (un ...

sasl是认证方式,正常的话,zkfc去kdc认用nn的账户获取凭据,然后去zookeeper里面做操作,但是不知道为啥kdc那步过了,去连接zoo的时候没有以sasl模式......
回复

使用道具 举报

nextuser 发表于 2018-2-1 20:16:20
blackmoon 发表于 2018-2-1 17:37
sasl是认证方式,正常的话,zkfc去kdc认用nn的账户获取凭据,然后去zookeeper里面做操作,但是不知道为啥 ...

'sasl,'nn
上面检测下配置,如符号等要配对,然后在看下用户名权限,是否尝试使用root。

回复

使用道具 举报

jiewuzhe02 发表于 2018-2-8 09:08:14
是否具有权限
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条