Windows WebHDFS客户端到Cloudera Hadoop

时间:2014-04-22 21:51:43

标签: c# windows kerberos cloudera webhdfs

我们有一个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

我有什么可以使用的,或者我将不得不编写自定义代码?

1 个答案:

答案 0 :(得分:2)

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

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

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