二つの異なるクラスタのKerberos認証センターとの間の相互信頼の設定

2つのオープンHadoopクラスタのKerberos認証の後、クラスタ間には、本質的にKerberosレルムにアクセスのチケット実現を使用してHadoopクラスタにのクライアントアクセスサービスのHadoopクラスタBを(使用して、Kerberosの間の相互信頼を達成する必要が互いへのアクセス権を持っていませんレルムBサービス)。
前提条件:
1)は、2つのクラスタ(XDF.COMとHADOOP.COM)はKerberos認証オンさ
2)がKerberos領域に設定されXDF.COMとHADOOP.COMあり
、以下のステップ:

1枚のチケットKDC構成との間の信頼

達成DXDF.COMHADOOP.COM例えば間のクロスドメインの信頼、XDF.COMクライアントアクセスHADOOP.COMサービスでは、2 REALMという名前の共同所有者のkrbtgt /必要と[email protected]元本の2つのキーがパスワード、同じバージョン番号と暗号化を確保する必要があります。デフォルトでは、信頼関係が一方向である、  HADOOP.COMクライアントアクセスXDF.COMのサービスは、2 REALMはKRBTGT /必要です[email protected]の校長を。
二つのクラスタへのkrbtgtプリンシパルを追加します。

  #XDF CLUSTER
  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/[email protected]
  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/[email protected]

  #HADOOP CLUSTER
   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/[email protected]
   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/[email protected]

2つのエントリが一致するKVNOと暗号化の種類、ビューコマンドgetprinc <principal_nameの>を持っていることを確認するために、

kadmin.local:  getprinc  krbtgt/[email protected]
Principal: krbtgt/[email protected]
Expiration date: [never]
Last password change: Wed Jul 05 14:18:11 CST 2017
Password expiration date: [none]
Maximum ticket life: 1 day 00:00:00
Maximum renewable life: 30 days 00:00:00
Last modified: Wed Jul 05 14:18:11 CST 2017 (admin/[email protected])
Last successful authentication: [never]
Last failed authentication: [never]
Failed password attempts: 0
Number of keys: 7
Key: vno 1, aes128-cts-hmac-sha1-96
Key: vno 1, des3-cbc-sha1
Key: vno 1, arcfour-hmac
Key: vno 1, camellia256-cts-cmac
Key: vno 1, camellia128-cts-cmac
Key: vno 1, des-hmac-sha1
Key: vno 1, des-cbc-md5
MKey: vno 1
Attributes:
Policy: [none]
kadmin.local:  getprinc  addprinc krbtgt/[email protected]
usage: get_principal [-terse] principal
kadmin.local:  getprinc  krbtgt/[email protected]
Principal: krbtgt/[email protected]
Expiration date: [never]
Last password change: Wed Jul 05 14:17:47 CST 2017
Password expiration date: [none]
Maximum ticket life: 1 day 00:00:00
Maximum renewable life: 30 days 00:00:00
Last modified: Wed Jul 05 14:17:47 CST 2017 (admin/[email protected])
Last successful authentication: [never]
Last failed authentication: [never]
Failed password attempts: 0
Number of keys: 7
Key: vno 1, aes128-cts-hmac-sha1-96
Key: vno 1, des3-cbc-sha1
Key: vno 1, arcfour-hmac
Key: vno 1, camellia256-cts-cmac
Key: vno 1, camellia128-cts-cmac
Key: vno 1, des-hmac-sha1
Key: vno 1, des-cbc-md5
MKey: vno 1
Attributes:
Policy: [none]

コアサイト2とユーザ設定プリンシパルマッピング規則

 

 
Paste_Image.png


ユーザーにプリンシパルに使用されているhadoop.security.auth_to_localパラメータを設定し、SASL RPCクライアントはKerberosプリンシパルリモートサーバーは、構成自体で元本と一致する必要が問題に注意を払う必要があります。NN / H用の名前ノードkerbeorsプリンシパル名で、ソースクラスタとサービスのソースと宛先クラスタに割り当てられた同じpricipal名必要pricipal NN / Hに設定された宛先クラスタの@ XDF.COM、名前ノードを @ HADOOP.COM( )nn2/h***@HADOOP.COM設定することができない、例えば:
コアサイトにXDFクラスタとHADOOPクラスタの増加。

 

<property>
<name>hadoop.security.auth_to_local</name>
<value>
RULE:[1:$1@$0](^.*@HADOOP\.COM$)s/^(.*)@HADOOP\.COM$/$1/g
RULE:[2:$1@$0](^.*@HADOOP\.COM$)s/^(.*)@HADOOP\.COM$/$1/g
RULE:[1:$1@$0](^.*@XDF\.COM$)s/^(.*)@XDF\.COM$/$1/g
RULE:[2:$1@$0](^.*@XDF\.COM$)s/^(.*)@XDF\.COM$/$1/g 
DEFAULT             
</value>
</property>

使用Hadoopのorg.apache.hadoop.security.HadoopKerberosName <校長名>例えば、達成確認します。

[root@node1a141 ~]#  hadoop org.apache.hadoop.security.HadoopKerberosName hdfs/[email protected]
Name: hdfs/[email protected] to hdfs 

3 krb5.confの中に信頼関係を設定します

3.1コンフィギュレーションcapaths

最初の方法は、これがデフォルトであり、比較的簡単な方法、第二の方法は、第二のアプローチ複雑ですが、より柔軟なkrb5.confファイル、でcapathsを変更することで、名前の共有階層を設定することです。
例えば、2つのクラスタノード/etc/krb5.confのファイル内のドメインとレルムとの間のマッピングを設定:XDFクラスタ構成にします。

[capaths]
       XDF.COM = {
              HADOOP.COM = .
       }

Hadoopクラスタ構成ではその中:

 [capaths]
       HADOOP.COM = {
              XDF.COM = .
       }

「」配置された中間の王国ではありません

3.2レルムを設定します

同じに対し、以下に説明するようにKDCのHADOOP XDFアクセスできるようにするために、KDCサーバHADOOPは、XDF Cluster構成する必要があります。

 [realms]
  XDF.COM = {
    kdc = {host}.XDF.COM:88
    admin_server = {host}.XDF.COM:749
    default_domain = XDF.COM
  }
  HADOOP.COM = {
    kdc = {host}.HADOOP.COM:88
    admin_server = {host}.HADOOP.COM:749
    default_domain = HADOOP.COM
  }

3.3のdomain_realm

「.XDF.COM」と 『XDF.COM』形式へのdomain_realmで、一般的な構成「」プレフィックス全てXDF.COMはホストがXDF.COMレルムにマッピングされるケルベロスことを確実にします。クラスタのホスト名がXDF.COMサフィックス形式にない場合は、あなたがXDF.nn.localがXDF.COMにマッピングされ、たとえば、ホストとののdomain_realm領域との間のマッピングを設定する必要があり、必要がXDF.nn.local =を高めるためにXDF.COM。

[domain_realm]
.hadoop.com=HADOOP.COM
 hadoop.com=HADOOP.COM
 .xdf.com=XDF.COM
 xdf.com=XDF.COM
 node1a141 = XDF.COM
 node1a143 = XDF.COM
 node1a210 = HADOOP.COM
 node1a202 = HADOOP.COM
 node1a203 = HADOOP.COM 

Kerberosサービスを再起動します。

3.4コンフィギュレーションHDFS-site.xmlの

HDFS-site.xmlで、レルムを可能にするために設けられている
「*」のようdfs.namenode.kerberos.principal.pattern HDFS-site.xmlのを配置

 
Paste_Image.png

 

これは、パラメータが設定されていない場合は、次の例外があり、認証レルムを許可するようにクライアントを制御するためのマッチングルールです:

java.io.IOException: Failed on local exception: java.io.IOException:
java.lang.IllegalArgumentException:
       Server has invalid Kerberosprincipal:nn/ HADOOP.COM@ XDF.COM;
       Host Details : local host is: "host1.XDF.COM/10.181.22.130";
                        destination host is: "host2.HADOOP.COM":8020;

4試験

1)HDFSを使用して試験し、HADOOP XDFクラスタ間のデータアクセスをコマンドのkinitでXDFクラスタにおける例示[email protected]ため、HDFSは、コマンドを実行します。

[root@node1a141 ~]# kdestroy
[root@node1a141 ~]# kinit admin
Password for [email protected]: 
[root@node1a141 ~]# hdfs dfs -ls /
Found 3 items
drwxrwxrwx+  - hdfs supergroup          0 2017-06-13 15:13 /tmp
drwxrwxr-x+  - hdfs supergroup          0 2017-06-22 15:55 /user
drwxrwxr-x+  - hdfs supergroup          0 2017-06-14 14:11 /wa
[root@node1a141 ~]# hdfs dfs -ls hdfs://node1a202:8020/
Found 9 items
drwxr-xr-x   - root  supergroup          0 2017-05-27 18:55 hdfs://node1a202:8020/cdtest
drwx------   - hbase hbase               0 2017-05-22 18:51 hdfs://node1a202:8020/hbase
drwx------   - hbase hbase               0 2017-07-05 19:16 hdfs://node1a202:8020/hbase1
drwxr-xr-x   - hbase hbase               0 2017-05-11 10:46 hdfs://node1a202:8020/hbase2
drwxr-xr-x   - root  supergroup          0 2016-12-01 17:30 hdfs://node1a202:8020/home
drwxr-xr-x   - mdss  supergroup          0 2016-12-13 18:30 hdfs://node1a202:8020/idfs
drwxr-xr-x   - hdfs  supergroup          0 2017-05-22 18:51 hdfs://node1a202:8020/system
drwxrwxrwt   - hdfs  supergroup          0 2017-05-31 17:37 hdfs://node1a202:8020/tmp
drwxrwxr-x+  - hdfs  supergroup          0 2017-05-04 15:48 hdfs://node1a202:8020/user

HADOOP.COMと同様の操作
2)以下のようにクラスタにdistcp XDFのHadoopデータをコピーするためのプログラムを実行し、コマンドは次のとおりです。

[root@node1a141 ~]# hadoop distcp hdfs://node1a141:8020/tmp/test.sh  hdfs://node1a202:8020/tmp/

付録5

以下の2つのクラスタの完全なファイルの内容の/etc/krb5.conf:

[root@node1a141 xdf]# cat /etc/krb5.conf
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = XDF.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 7d
 renew_lifetime = 30
 forwardable = true
 renewable=true
 #default_ccache_name = KEYRING:persistent:%{uid}

[realms]
 HADOOP.COM = {
   kdc = node1a198
   admin_server = node1a198
   default_realm = HADOOP.COM
   supported_enctypes = aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
 }
 XDF.COM = {
   kdc = node1a141
   admin_server = node1a141
   default_realm = XDF.COM
   supported_enctypes = aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
 }

[domain_realm]
 .hadoop.com=HADOOP.COM
 hadoop.com=HADOOP.COM
 .xdf.com=XDF.COM
 xdf.com=XDF.COM
 node1a141 = XDF.COM
 node1a143 = XDF.COM
 node1a210 = HADOOP.COM
 node1a202 = HADOOP.COM
 node1a203 = HADOOP.COM

[capaths]
XDF.COM = {
 HADOOP.COM = .
}

おすすめ

転載: www.cnblogs.com/felixzh/p/11505996.html