我是hadoop文件系统的新手。我在google上没有找到任何与hadoop文件系统相关的有用链接。
我想在使用hadoop文件系统时使用kerberose进行身份验证。
示例代码:
Path src = new Path("C:\\testing\\a\\a.avro");
Path dest = new Path("webhdfs://aaaa:50070/dummy/dummy.avro");
WebHdfsFileSystem web = new WebHdfsFileSystem();
try {
Configuration conf = new Configuration();
conf.set("fs.default.name","webhdfs://aaaa:50070");
web.setConf(conf);
FileSystem fs = FileSystem.get(web.getConf());
fs.copyFromLocalFile(false,src,dest);
} catch (IOException e) {
e.printStackTrace();
}
}
如何使用上述代码实现kerberos身份验证?如何设置原则和键表值?
1条答案
按热度按时间q3aa05251#
对您的问题的简短回答是:如果您将所有内容都配置正确,您的hdfs客户机代码就知道如何进行身份验证(与您在此处发布的代码完全无关)。
我建议您阅读hadoop安全教程。
配置安全hadoop(hadoop 1.3 hortonworks)
向配置文件添加安全信息(hadoop 2.0 hortonworks)
在cdh4中配置hadoop安全性
在cdh5中配置hadoop安全性
您的hdfs客户端似乎是windows系统。要访问kerberized集群(包括kerberized hdfs),您需要启用tgt会话访问,请参阅注册表项以允许在kerberos票证授予票证中发送会话密钥,并且您必须确保您的进程不是uac受限管理员(请参阅使用受限令牌无法访问会话密钥)。
您的集群不能是windows集群,kerberized windows集群仍在开发中(yarn-1063、yarn-1972等)。