我已经将milton webdav与hadoop hdfs集成在一起,并且能够对hdfs集群读/写文件。
我还添加了使用linux文件权限的授权部分,因此只有经过授权的用户才能访问hdfs服务器,但是,我仍然停留在身份验证部分。
hadoop似乎没有提供任何内置的身份验证,并且用户只能通过unix的“meaning”来识别,这意味着我不能为特定用户启用密码。ref:http://hadoop.apache.org/common/docs/r1.0.3/hdfs_permissions_guide.html因此,即使我创建了一个新用户并为其设置了权限,也无法确定该用户是否通过了身份验证。具有相同用户名和不同密码的两个用户可以访问该用户名的所有资源。
我想知道是否有任何方法可以在hdfs中启用用户身份验证(可以是任何新的hadoop版本中固有的,也可以使用第三方工具,如kerbores等)。
编辑:
好的,我已经检查过了,似乎kerberos可能是一个选择,但我只想知道是否有其他可用的身份验证替代方案。
谢谢,-chhavi
发布于 2012-09-25 05:38:17
目前,kerberos是唯一受支持的“真正”身份验证协议。“简单”协议完全信任客户端的whois信息。
要设置kerberos身份验证,我建议使用以下指南:https://ccp.cloudera.com/display/CDH4DOC/Configuring+Hadoop+Security+in+CDH4
msktutil是在linux中创建kerberos keytab的一个很好的工具:https://fuhm.net/software/msktutil/
在创建服务主体时,请确保您具有正确的DNS设置,即,如果您有一个名为" host1.yourdomain.com“的服务器,并且该服务器解析为IP 1.2.3.4,则该IP应反过来解析回host1.yourdomain.com。
还要注意,kerberos协商的身份验证标头可能会大于Jetty的内置标头大小限制,在这种情况下,您需要修改org.apache.hadoop.http.HttpServer并在createDefaultChannelConnector()中添加ret.setHeaderBufferSize(16*1024);。我不得不这么做。
https://stackoverflow.com/questions/12054099
复制相似问题