双Hadoop集群&双Kerberos kdc认证跨域互信
两个hadoop集群开启Kerberos验证后,集群间不能够相互访问,需要实现Kerberos之间的互信,使用hera集群A的客户端访问hera集群B的服务(实质上是使用Kerberos Realm A上的Ticket实现访问Realm B的服务)。
先决条件:
1)两个集群hera.com和yoga.com均开启Kerberos认证
2)Kerberos的REALM分别设置为hera.com和yoga.com
步骤如下:
1 配置KDC之间的信任ticket
实现hera.com和yoga.com之间的跨域互信,例如使用hera.com的客户端访问yoga.com中的服务,两个REALM需要共同拥有名为krbtgt/yoga.com@hera.com的principal,两个Keys需要保证密码,version number和加密方式一致。默认情况下互信是单向的, yoga.com的客户端访问hera.com的服务,两个REALM需要有krbtgt/hera.com@yoga.com的principal。
向两个集群中添加krbtgt principal
要验证两个entries具有匹配的kvno和加密type,查看命令使用getprinc
2 在core-site中配置principal和user的映射RULES
设置hera.security.auth_to_local参数,该参数用于将principal转变为user,一个需要注意的问题是SASL RPC客户端需要远程Server的Kerberos principal在本身的配置中匹配该principal。相同的pricipal name需要分配给源和目标cluster的服务,例如Source Cluster中的NameNode的kerbeors principal name为nn/h@yoga.com,在Destination cluster中NameNode的pricipal设置为nn/h@hera.com(不能设置为nn2/h***@hera.com),例如:
在yoga Cluster和 hera Cluster的core-site中增加:
用hera org.apache.hera.security.heraKerberosName 来实现验证,例如:
3 在krb5.conf中配置信任关系
3.1 配置capaths
第一种方式是配置shared hierarchy of names,这个是默认及比较简单的方式,第二种方式是在krb5.conf文件中改变capaths,复杂但是比较灵活,这里采用第二种方式。
在两个集群的节点的/etc/krb5.conf文件配置domain和realm的映射关系,例如:在yoga cluster中配置:
在hera Cluster中配置:
配置成'.'是表示没有intermediate realms
3.2 配置realms
为了是yoga 可以访问hera的KDC,需要将hera的KDC Server配置到yoga cluster中,如下,反之相同:
3.3 配置domain_realm
在domain_realm中,一般配置成'.yoga.com'和'yoga.com'的格式,'.'前缀保证kerberos将所有的yoga.com的主机均映射到yoga.com realm。但是如果集群中的主机名不是以yoga.com为后缀的格式,那么需要在domain_realm中配置主机与realm的映射关系,例yoga.nn.local映射为yoga.com,需要增加yoga.nn.local = yoga.com。
重启kerberos服务
3.4 配置hdfs-site.xml
在hdfs-site.xml,设置允许的realms
在hdfs-site.xml中设置dfs.namenode.kerberos.principal.pattern为"*"
这个是客户端的匹配规则用于控制允许的认证realms,如果该参数不配置,会有下面的异常:
4 测试
1)使用hdfs命令测试yoga 和hera 集群间的数据访问
例如在yoga Cluster中kinit admin@yoga.com,然后运行hdfs命令,查看本机群和对方集群得hdfs目录:
如果未开启跨域互信,访问对方hdfs目录时会报认证错误
- Linux7 下Hadoop集群用户管理方案之三 用户认证组件Kerberos安装
- hadoop+kerberos的跨域互信
- 配置两个Hadoop集群Kerberos认证跨域互信
- Hadoop集群集成kerberos
- kerberos+ladp+hadoop-ha 安全认证部署配置
- Hadoop集群集成kerberos
- hadoop跨域集群构建实验
- 在Hadoop集群部署Hbase并开启kerberos
- Hadoop集群中关于SSH认证权限的问题
- Hadoop Kerberos(CDH)安全认证机制
- Hadoop 安全机制认证---Kerberos
- 在hadoop集群部署hbase并开启kerberos 推荐
- Hadoop 安全机制认证---Kerberos
- hadoop-2.6.4集群编译搭建-阿里云和腾讯云
- VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群—整合Zookeeper和Hbase
- Hadoop基础教程-第5章 YARN:资源调度平台(5.3 YARN集群配置)(草稿)
- Hadoop学习---第一篇搭建Hadoop集群
- 使用docker搭建弹性hadoop集群
- Hadoop 集群间访问
- 学习Hadoop第二十课(Hadoop集群的搭建)