美文网首页
hdfs集群间kerberos互信配置(转)

hdfs集群间kerberos互信配置(转)

作者: 你的努力时光不会辜负 | 来源:发表于2023-01-31 11:34 被阅读0次

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提交任务的用户受权限控制,需要保证提交任务的用户有相应的权限。

————————————————
版权声明:本文为CSDN博主「snail_bing」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/snail_bing/article/details/120264129

相关文章

网友评论

      本文标题:hdfs集群间kerberos互信配置(转)

      本文链接:https://www.haomeiwen.com/subject/miovhdtx.html