hdfs集群间kerberos互信配置

目录

1.修改hdfs配置

2.配置两个集群的hosts

3.在两个集群中创建相同加密算法的共享principal

4.在两个hdfs集群中增加彼此域中受信任的principal的命名匹配规则

5.修改两个集群所有主机的krb5.conf配置文件

6.重启两个集群的kdc

7.重启两个集群的hdfs集群和yarn集群

8.查看对方hdfs上的文件目录

9.向对方hdfs集群上传文件

10.使用distcp传输数据到对方hdfs集群


1.修改hdfs配置

在两个集群的hdfs-site.xml中添加以下内容:

<property>
	<name>dfs.namenode.rpc-bind-host</name>
	<value>0.0.0.0</value>
	<description></description>
</property>
<property>
	<name>dfs.namenode.servicerpc-bind-host</name>
	<value>0.0.0.0</value>
</property>
<property>
	<name>dfs.namenode.http-bind-host</name>
	<value>0.0.0.0</value>
	<description></description>
</property>
<property>
	<name>dfs.namenode.https-bind-host</name>
	<value>0.0.0.0</value>
	<description></description>
</property>
<property>
	<name>dfs.client.use.datanode.hostname</name>
	<value>true</value>
	<description>Whether clients should use datanode hostnames when connecting to datanodes.
	</description>
</property>
<property>
	<name>dfs.datanode.use.datanode.hostname</name>
	<value>true</value>
	<description>Whether datanodes should use datanode hostnames when connecting to other datanodes for data transfer.</description>
</property>
<property>
	<name>dfs.namenode.kerberos.principal.pattern</name>
	<value>*</value>
	<description></description>
</property>

2.配置两个集群的hosts

由于hadoop集群之间数据迁移是分布式数据传输,要求两个集群的主机都能识别对方集群的主机名,因此需要在两个集群的各个主机的/etc/hosts文件中,都配置两个集群所有主机的ip主机名映射。

3.在两个集群中创建相同加密算法的共享principal

在源集群ZETA_RANGER.COM中:

kadmin.local: addprinc krbtgt/ZETA_RANGER.COM@PANEL.COM
kadmin.local: addprinc krbtgt/PANEL.COM@ZETA_RANGER.COM

在目的集群PANEL.COM中:

kadmin.local: addprinc krbtgt/ZETA_RANGER.COM@PANEL.COM
kadmin.local: addprinc krbtgt/PANEL.COM@ZETA_RANGER.COM

注意:如果两个集群的kdc的默认加密算法不同,需要在addprinc时指定相同的加密算法,如:

kadmin.local: addprinc -e "aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-hmac-sha1:normal des-cbc-md5:normal" krbtgt/ZETA_RANGER.COM@PANEL.COM

验证两个集群中新增后的principal加密算法是否相同:

kadmin.local: getprinc krbtgt/ZETA_RANGER.COM@PANEL.COM
kadmin.local: getprinc krbtgt/PANEL.COM@ZETA_RANGER.COM

4.在两个hdfs集群中增加彼此域中受信任的principal的命名匹配规则

在core-site.xml中通过hadoop.security.auth_to_local配置项增加受信任的kdc域的principal命名匹配规则,即让源集群和目的集群都信任对方的principal,增加如下内容:

RULE:[2:$1@$0]([ndj]n/.*@PANEL.COM)s/.*/hdfs/
RULE:[2:$1@$0](hdfs/.*@PANEL.COM)s/.*/hdfs/
RULE:[2:$1@$0](hive/.*@PANEL.COM)s/.*/hive/
RULE:[2:$1@$0]([ndj]n@PANEL.COM)s/.*/hdfs/
RULE:[2:$1@$0](hdfs@PANEL.COM)s/.*/hdfs/
RULE:[2:$1@$0](hive@PANEL.COM)s/.*/hive/
RULE:[2:$1@$0]([nd]n@ZETA_RANGER.COM)s/.*/hdfs/
RULE:[2:$1@$0](hive@ZETA_RANGER.COM)s/.*/hive/
RULE:[2:$1@$0]([nd]n/.*@ZETA_RANGER.COM)s/.*/hdfs/
RULE:[2:$1@$0](hive/.*@ZETA_RANGER.COM)s/.*/hive/
RULE:[1:$1@$0](^.*@ZETA_RANGER.COM$)s/^(.*)@ZETA_RANGER.COM$/$1/g
RULE:[2:$1@$0](^.*@ZETA_RANGER.COM$)s/^(.*)@ZETA_RANGER.COM$/$1/g
RULE:[1:$1@$0](^.*@PANEL.COM$)s/^(.*)@PANEL.COM$/$1/g
RULE:[2:$1@$0](^.*@PANEL.COM$)s/^(.*)@PANEL.COM$/$1/g

注意:为了保证对方kdc能够识别并匹配到相应的principal,这里最好将两个集群中我们需要使用到的principal的命名规则都配置上。

5.修改两个集群所有主机的krb5.conf配置文件

在源集群ZETA_RANGER.COM的所有节点的krb5.conf中增加:

[capaths]
    ZETA_RANGER.COM = {
        PANEL.COM = .
    }

在目的集群PANEL.COM的所有节点的krb5.conf中增加:

[capaths]
    PANEL.COM = {
        ZETA_RANGER.COM = .
    }

将[realms]中彼此的域添加到对方的文件中,类似这样:

[realms]
    PANEL.COM = {
        kdc = cd-hadoop3-1
        admin_server = cd-hadoop3-1
    }
    ZETA_RANGER.COM = {
        kdc = sp-dev-1
        admin_server = sp-dev-1
    }

[domain_realm]增加如下配置,让所有的主机都能被对方kdc识别:

[domain_realm]
    .panel.com = PANEL.COM
    panel.com = PANEL.COM
    .zeta_ranger.com = ZETA_RANGER.COM
    zeta_ranger.com = ZETA_RANGER.COM

6.重启两个集群的kdc

service krb5kdc restart
service kadmin restart

7.重启两个集群的hdfs集群和yarn集群

注意: 必须重启yarn,否则提交MR任务会失败

8.查看对方hdfs上的文件目录

hadoop fs -ls hdfs://cd-hadoop3-1:8020

9.向对方hdfs集群上传文件

hadoop fs -put /tmp/test hdfs://cd-hadoop3-1:8020/tmp

10.使用distcp传输数据到对方hdfs集群

hadoop distcp -D ipc.client.fallback-to-simple-auth-allowed=true -m 30 hdfs://sp-dev-2:8020/tmp/test hdfs://cd-hadoop3-1:8020/tmp

注意:distcp实际上是运行的mr任务,如果向yarn提交任务的用户受权限控制,需要保证提交任务的用户有相应的权限。

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值