E-MapReduce中的Kerberos支持跨域访问(cross-realm),即不同的Kerberos集群之间可以互相访问。
下面以Cluster-A跨域去访问Cluster-B中的服务为例:
- Cluster-A的emr-header-1的hostname -> emr-header-1.cluster-1234 ; realm -> EMR.1234.COM。
- Cluster-B的emr-header-1的hostname -> emr-header-1.cluster-6789 ; realm -> EMR.6789.COM。
-
说明
- hostname可以在emr-header-1上面执行命令hostname获取。
- realm可以在emr-header-1上面的/etc/krb5.conf获取。
添加 principal
Cluster-A和Cluster-B两个集群的emr-header-1节点分别执行以下完全一样的命令。
# root账号
sh /usr/lib/has-current/bin/hadmin-local.sh /etc/ecm/has-conf -k /etc/ecm/has-conf/admin.keytab
HadminLocalTool.local: addprinc -pw 123456 krbtgt/EMR.6789.COM@EMR.1234.COM
说明
- 123456是初始密码,可自行修改。
- EMR.6789.COM是Cluster-B的realm,即被访问的集群的realm。
- EMR.1234.COM是Cluster-A的realm,即发起访问的集群realm。
配置 Cluster-A 的 /etc/krb5.conf
在Cluster-A集群上配置 [realms]/[domain_realm]/[capaths],如下所示。
[libdefaults]
kdc_realm = EMR.1234.COM
default_realm = EMR.1234.COM
udp_preference_limit = 4096
kdc_tcp_port = 88
kdc_udp_port = 88
dns_lookup_kdc = false
[realms]
EMR.1234.COM = {
kdc = 10.81.49.3:88
}
EMR.6789.COM = {
kdc = 10.81.49.7:88
}
[domain_realm]
.cluster-1234 = EMR.1234.COM
.cluster-6789 = EMR.6789.COM
[capaths]
EMR.1234.COM = {
EMR.6789.COM = .
}
EMR.6789.COM = {
EMR.1234.COM = .
}
将上述/etc/krb5.conf同步到Cluster-A所有节点。
将Cluster-B节点的/etc/hosts文件中绑定信息(只需要长域名emr-xxx-x.cluster-xxx)拷贝到Cluster-A的所有节点 /etc/hosts。
10.81.45.89 emr-worker-1.cluster-xxx
10.81.46.222 emr-worker-2.cluster-xx
10.81.44.177 emr-header-1.cluster-xxx
说明
- Cluster-A上面如果要跑作业访问Cluster-B,需要先重启yarn。
- Cluster-A的所有节点配置Cluster-B的host绑定信息。
访问Cluster-B服务
在Cluster-A上面可以用Cluster-A的Kerberos的keytab文件/ticket缓存,去访问Cluster-B的服务。
如访问Cluster-B的hdfs服务。
su has;
hadoop fs -ls hdfs://emr-header-1.cluster-6789:9000/
Found 4 items
-rw-r----- 2 has hadoop 34 2017-12-05 18:15 hdfs://emr-header-1.cluster-6789:9000/abc
drwxrwxrwt - hadoop hadoop 0 2017-12-05 18:32 hdfs://emr-header-1.cluster-6789:9000/spark-history
drwxrwxrwt - hadoop hadoop 0 2017-12-05 17:53 hdfs://emr-header-1.cluster-6789:9000/tmp
drwxrwxrwt - hadoop hadoop 0 2017-12-05 18:24 hdfs://emr-header-1.cluster-6789:9000/user
在文档使用中是否遇到以下问题
更多建议
匿名提交