【发布时间】:2015-02-03 15:06:08
【问题描述】:
我们有一个通过 HDFS、YARN 和 Hive 接口访问 Hadoop 的应用程序。如果 kinit 已运行,则此应用程序对 Kerberos 保护的集群运行良好。如果我们调用 UserGroupInformation.loginUserFromKeytab(),它也可以正常工作。我们能够将 HDFS 和 Hive 令牌委托给 YARN 应用程序。我们无法弄清楚的是以下场景:
- Hadoop 集群使用 Kerberos 保护
- Hadoop 集群要么使用 Active Directory 作为其 KDC,要么具有 在其 KDC 和 AD 控制器之间建立了单向信任。
- 我们的软件正在一个经过身份验证的会话中运行 直接在 Windows 上使用 AD,或者通过 PAM 或 LDAP(或其他一些机制)在 Linux。
- 我们的软件查询活动的 AD 会话以提取 TGT 或 等效,并将该信息中继到 Hadoop API(通过 UserGroupInformation,大概)。
- 因此无需用户即可实现 Hadoop 身份验证 输入主体、密码或密钥表。
我们知道这在理论上是可能的,因为有两个软件示例可以实现这一点。第一个是 RedGate 的 HDFS Explorer。第二个是色相。然而,我们似乎无法找出正确的咒语,甚至 Hortonworks 的支持似乎也无济于事。
【问题讨论】: