Java代码通过Kerberos连接HDFS

准备配置文件工作:
1. hdfs-site.xml , core-site.xml   从【集群中下载】
2. hadoop.keytab 【创建kerberos访问的用户生成】
3. krb5.conf  【配置Kerberos生成】


pom需要的依赖:
    
        
            org.apache.hadoop
            hadoop-common
            ${hadoop.version}
        

        
            org.apache.hadoop
            hadoop-hdfs
            ${hadoop.version}
        

        
            org.apache.hadoop
            hadoop-client
            ${hadoop.version}
        
    




具体的代码实现

package com.cib.feilong.kerber;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.security.UserGroupInformation;

/**
 * JAVA 代码通过Kerberos连接HDFS
 *
 * @author songzhan
 * @version 1.0
 * @date 2022/1/14
 */

public class Test {

    public static void main(String[] args) throws Exception {

        String user = "hadoop";

        String keytab = "/home/hadoop/hadoop.keytab";

        String path = "/tmp/";

        Configuration conf = new Configuration();

        conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem");

        System.setProperty("java.security.krb5.conf", "/etc/krb5.conf");

        UserGroupInformation.setConfiguration(conf);

        UserGroupInformation.loginUserFromKeytab(user, keytab);

        FileSystem fileSystem = FileSystem.get(conf);

        boolean exists = fileSystem.exists(new Path(path));

        // TODO  判断tmp目录是否存在,如果存在返回True,如果不存在返回False
        System.out.println("exists:{}" + exists);

    }

}









你可能感兴趣的:(java,kerberos,hdfs)