该方法可能只针对我的环境,其他原因请自行实验或分享。(该文档只适合CDH平台,不适应于hadoop等自定义安装,因为CDH会自动生成kdc,自己配置的话如果不熟悉很容易出错)

该方法可能只针对我的环境,其他原因请自行实验或分享。(该文档只适合CDH平台,不适应于hadoop等自定义安装,因为CDH会自动生成kdc,自己配置的话如果不熟悉很容易出错)

该方法可能只针对我的环境,其他原因请自行实验或分享。(该文档只适合CDH平台,不适应于hadoop等自定义安装,因为CDH会自动生成kdc,自己配置的话如果不熟悉很容易出错)

系统:Centos6.5

CDH:CDH5.7.5

JDK:1.7.8

数据库 :PostgreSQL-9.4

报错:

 

org.apache.zookeeper.server.ZooKeeperServerMain

Unexpected exception, exiting abnormally
java.io.IOException: Could not configure server because SASL configuration did not allow the  ZooKeeper server to authenticate itself properly: javax.security.auth.enlogin.LoginException: Checksum failed

 

解决方法:kerberos正常安装即可,无需生成任何keytab

  1. 集群:ctl是HDFS namenode,comp1-3三台HDFS data node
  2. ctl安装krb5-server krb5-workstation krb5-libs openldap-clients
  3. Comp1-3分别安装krb5-workstation krb5-libs krb5-auth-dialog
  4. 每台机器的/etc/krb5.conf配置文件必须内容一致,我这里主要修改kdc和admin-server为主机名,别的没变
  5. 根据网上的资料显示,Centos5.6及以上的系统,默认使用AES-256来加密。这就需要集群中的所有节点上安装Java Cryptography Extension(JCE)Unlimited Strength Jurisdiction Policy File.(这个未测试到底需不需要下载,因为原本该文件夹下就有这两个文件,如果需要,希望大家说一下为什么,暂时没时间测试该问题,谢谢啦)

http://www.oracle.com/technetwork/java/javase/downloads/index.html

  1. /usr/java/jdk1.7.8/jre/lib/security

 

CDH集群卸载干净,然后进入右上角的管理->安全->kerberos凭据->勾选全部主体->重新生成所选项

这里可能会报很多错误,不要理会,直接删除整个集群重新安装,重新生成kdc即可。

然后进入namenode节点(kdcserver服务器),使用

 

#kadmin.local
#listprincs          #查看所有生成的凭证principal

 

 如果多出了类似以下的HTTP/ctl@EXAMPLE.COM等等,那就说明成功了,然后回到CDH平台启动zookeeper即可。

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐