使用java从windows访问远程kerberized HDF

0yg35tkg  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(182)

我正在尝试一个hadoop项目,但我对这个概念还不熟悉。我已经成功地在ubuntu服务器上设置了hadoop集群以使用kerberos身份验证,并且我可以使用kerberos票证访问hdfs文件。现在我正试图在我的windows机器上编写一个java代码来访问远程kerberized hdfs。这是我迄今为止尝试过的:

class FileCount
{
    public static void main(final String[] args) throws IOException, FileNotFoundException, InterruptedException{

        System.setProperty("java.security.krb5.realm", "PFE.COM");
        System.setProperty("java.security.krb5.kdc","ubuntu:88");

        Configuration conf = new Configuration();
        conf.set("fs.defaultFS", "hdfs://192.168.8.101:9000");
        conf.set("hadoop.security.authentication", "kerberos");
        conf.set("debug", "true");
        UserGroupInformation.setConfiguration(conf);
        UserGroupInformation.loginUserFromKeytab("hdfs/ubuntu@PFE.COM", 
           "C:/fichiers/hdfs.keytab");

        FileSystem fs = FileSystem.get(conf);
        FileStatus[] fsStatus = fs.listStatus(new Path("/"));
        for(int i = 0; i < fsStatus.length; i++){
          System.out.println(fsStatus[i].getPath().toString());
        }
    }
}

但我得到了一个错误:

Exception in thread "main" java.io.IOException: Login failure for hdfs/ubuntu@PFE.COM from keytab C:/fichiers/hdfs.keytab: javax.security.auth.login.LoginException: ubuntu

我已经将我的keytab文件从ubntu服务器转移到我的windows机器上,以便能够在这段代码中使用它。另外,我不知道我是否应该在我的windows机器上安装kerberos才能让它工作。所以如果你有什么想法请帮我!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题