0

我是hadoop文件系统的新手。我在 google 上没有找到任何与 Hadoop FileSystem 相关的有用链接。

我想在使用 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 身份验证?如何设置原则和 keytab 值?

4

1 回答 1

0

对您的问题的简短回答是:如果您正确配置所有内容,您的 hdfs-client 代码知道如何进行身份验证(与您在此处发布的代码绝对无关)。

我建议您阅读 Hadoop 安全教程。

看来您的 hdfs-client 是 Windows 系统。要访问 Kerberos 集群(包括 Kerberized HDFS),您需要启用 TGT 会话访问,请参阅Registry Key to Allow Session Keys to Be Sent in Kerberos Ticket-Granting-Ticket并且您必须确保您的进程不受 UAC 限制管理员(请参阅使用受限令牌无法访问会话密钥)。

您的集群不能是 Windows 集群,Kerberized Windows 集群仍在开发中(YARN-1063YARN-1972等)。

于 2014-07-23T12:06:53.920 回答