我已将milton webdav与hadoop hdfs集成,并能够将文件读/写到hdfs集群。
我还使用linux文件权限添加了授权部分,因此只有授权用户才能访问hdfs服务器,但是,我被困在认证部分。
似乎hadoop不提供任何内置身份验证,用户只能通过unix'whami'识别,这意味着我无法为特定用户启用密码。 参考:http://hadoop.apache.org/common/docs/r1.0.3/hdfs_permissions_guide.html 因此,即使我创建新用户并为其设置权限,也无法确定用户是否进行身份验证。具有相同用户名和不同密码的两个用户可以访问用于该用户名的所有资源。
我想知道是否有任何方法可以在hdfs中启用用户身份验证(在任何新的hadoop版本中都是固有的,或者使用像kerbores等第三方工具。)
编辑:
好的,我已经检查过,似乎kerberos可能是一个选项,但我只是想知道是否还有其他可供认证的替代方案。
谢谢, -chhavi
答案 0 :(得分:0)
目前,kerberos是唯一受支持的“真实”身份验证协议。 “简单”协议完全信任客户端的whois信息。
要设置kerberos身份验证,我建议您使用此指南:https://ccp.cloudera.com/display/CDH4DOC/Configuring+Hadoop+Security+in+CDH4
msktutil 是在linux中创建kerberos keytabs的好工具:https://fuhm.net/software/msktutil/
创建服务主体时,请确保您具有正确的DNS设置,即如果您有一个名为“host1.yourdomain.com”的服务器,并且解析为IP 1.2.3.4,则该IP应该依次解析回host1 .yourdomain.com。
另请注意,kerberos Negotiate Authentication标头可能比Jetty的内置标头大小限制更大,在这种情况下,您需要修改org.apache.hadoop.http.HttpServer
并在ret.setHeaderBufferSize(16*1024);
中添加createDefaultChannelConnector()
。我不得不。