前提条件
启用 Kerberos
预配置
启动向导之前,您必须设置两个配置并重新启动所有服务。入门
导航至 Admin -> Kerberos ,然后按“Enable Kerberos”按钮。本部分中的标题请参阅 Kerberos 向导页面的标题。配置 Kerberos/安装和测试 Kerberos 客户端
填写所有 KDC 和管理员服务器信息。在步骤 3(安装和测试 Kerberos 客户端)上,Ambari 服务器将执行冒烟测试,以确保正确配置 Kerberos。
配置标识/确认配置
a) Ambari 用户主体 (UPN)
Ambari 以 $-$ @$ 的形式创建用户主体,然后使用 core-site.xml 中的hadoop.security.auth_to_local 将主体映射到文件系统上仅 $ 。
配置相应的主体后,按“下一步”。在“Confirm Configuration”(确认配置)屏幕中,按“Next”(下一步)。
停止服务/Kerberize 群集
停止和 Kerberizing 服务应成功。
请勿继续:Isilon 不允许 Ambari 为 Isilon 主体创建密钥表。相反,您必须使用以下步骤在 Isilon 上手动配置 Kerberos。
a) 创建 KDC 作为 Isilon 身份验证提供程序
提醒:如果此 Isilon 分区已配置为使用您的 MIT KDC,则可以跳过这些步骤。
isi auth krb5 create --realm=$REALM --admin-server=$admin_server --kdc=$kdc_server --user=$admin_principal --password=$admin_password
isi zone zones modify --zone=$isilon_zone --add-auth-provider=krb5:$REALM
b) 为 HDFS 和 HTTP(用于 WebHDFS)创建服务主体。
isi auth krb5 spn create --provider-name=$REALM --spn=hdfs/$isilon_smartconnect@$REALM --user=$admin_principal --password=$admin_password
isi auth krb5 spn create --provider-name=$REALM --spn=HTTP/$isilon_smartconnect@$REALM --user=$admin_principal --password=$admin_password
c) 创建任何必要的代理用户
在不安全的群集中,任何用户都可以模拟任何其他用户。在安全群集中,需要明确指定代理用户。
如果您有 Hive 或 Oozie,请添加相应的代理用户。
isi hdfs proxyusers create oozie --zone=$isilon_zone --add-user=ambari-qa
isi hdfs proxyusers create hive --zone=$isilon_zone --add-user=ambari-qa
d) 禁用简单身份验证
仅允许 Kerberos 或委派令牌身份验证。
isi hdfs settings modify --zone=$isilon_zone --authentication-mode=kerberos_only
现在还配置了 Isilon,请在 Ambari 中按“下一步”以继续执行向导的最后一步。
启动和测试服务
如果服务未启动,以下是调试 Kerberos 问题的一些技巧:
在 HDFS 中 —> 自定义核心站点 将“hadoop.rpc.protection”设置为“完整性”或“隐私”。除了身份验证之外,完整性还保证消息未被篡改,并且隐私对所有消息进行加密。
运行作业!
在任何客户端主机上,尝试 MapReduce 作业!
kinit <some-user> yarn jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar pi 1 1000
Job Finished in 37.635 seconds
Estimated value of Pi is 3.14800000000000000000
Congratulations--you have secured your cluster with Kerberos!
(可选)禁用 Kerberos
清理 Isilon
您应该先清理 Isilon。这实质上是启用 Kerberos 的反向。
a) 禁用 Kerberos 身份验证
isi hdfs settings modify --authentication-mode=simple_only --zone=$isilon_zone
b) 删除任何代理用户
isi hdfs proxyusers delete oozie --zone=$isilon_zone
isi hdfs proxyusers delete hive --zone=$isilon_zone
c) 删除主体
isi auth krb5 spn delete --provider-name=$REALM --spn=hdfs/$isilon_smartconnect@$REALM --all
isi auth krb5 spn delete --provider-name=$REALM --spn=HTTP/$isilon_smartconnect@$REALM --all
请注意,上述命令仅从 Isilon 中删除这些主体,但不要从 KDC 中删除它们。使用以下命令从 KDC 中删除 Isilon 主体:
kadmin -p $admin_principal
kadmin: delete_principal hdfs/$isilon_smartconnect@$REALM
kadmin: delete_principal HTTP/$isilon_smartconnect@$REALM
d) 删除 KDC 作为 Isilon 身份验证提供程序
isi zone zones modify --zone=$isilon_zone --remove-auth-provider=krb5:$REALM
isi auth krb5 delete --provider-name=$REALM
使用 Ambari 清理客户端
在 Admin -> Kerberos 中按“Disable Kerberos”。所有服务都应呈绿色亮起。