0

我们有一个 Windows 应用程序,它通过 WebHDFS 客户端(在孵化器阶段)http://hadoopsdk.codeplex.com/wikipage?title=WebHDFS%20Client&referringTitle=Home 到 Cloudera Hadoop 安装可以正常通信。下一阶段是通过 http 建立 Kerberos 身份验证。我很难在 Windows 客户端和 Linux/Apache 服务器之间找到很多关于这个主题的内容。

我见过的大多数示例都使用 cURL --negotiate 作为机制: http ://hadoop.apache.org/docs/r1.0.4/webhdfs.html#Delegation+Token+Operations

我为 .Net 找到的所有其他内容都非常低级 http://msdn.microsoft.com/en-us/library/ms995331.aspx

有什么我可以使用的还是我必须编写自定义代码?

4

1 回答 1

2

我发现我的问题的解决方案是我误解了 Kerebros SNEGO 是如何实现的。

对于那些处于同样困境的人,我希望这会有所帮助..在用户登录客户端(对于一种配置)时,客户端(Windows 机器)和 kdc(Linux)之间完成了身份验证。发出票证后,可以以更安全的方式建立 WebHDFS 通信。这句话来自 Cloudera 团队(顺便说一句,这非常有帮助)。

“如果 Cloudera 集群是 kerberized,那么服务器端的 WebHDFS 将接受 SPNEGO Kerberos 身份验证。如果集群直接在 AD 领域中进行 kerberized 并且最终用户已经登录到同一个 AD 域,那么如果 Microsoft 客户端支持就足够了否则,他们要么必须使用 MIT kerberos 客户端和 kinit 对同一个 kerberos 域进行身份验证,要么应该在集群 kerberos 域和最终用户正在验证的 AD 域之间建立一种信任方式。

于 2014-04-23T23:12:07.900 回答