连接hdfs代码
public class HdfsTest {
public static void main(String[] args) throws IOException {
System.setProperty("java.security.krb5.conf", "hdfs-conf-kerberos\\krb5.conf");
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://bigdata-37-201:8020");
conf.set("hadoop.security.authentication", "kerberos");
try {
UserGroupInformation.setConfiguration(conf);
UserGroupInformation.loginUserFromKeytab("hdfs_test1/hdfs_test1@HADOOP.COM", "hdfs-conf-kerberos\\hdfs_test1.keytab");
System.out.println("+++++++++++++="+UserGroupInformation.getCurrentUser());
} catch (IOException e) {
e.printStackTrace();
}
FileSystem fs = FileSystem.get(conf);
FileStatus[] fsStatus = fs.listStatus(new Path("/tmp"));
for (int i = 0; i < fsStatus.length; i++) {
System.out.println("+++++ "+fsStatus[i].getPath().toString());
}
}
}
配置文件放置路径:
报错内容:
2021-02-18 15:33:50,189 INFO [org.apache.hadoop.security.UserGroupInformation] - Login successful for user hdfs_test1/hdfs_test1@HADOOP.COM using keytab file hdfs-conf-kerberos\hdfs_test1.keytab
+++++++++++++=hdfs_test1/hdfs_test1@HADOOP.COM (auth:KERBEROS)
2021-02-18 15:34:17,628 WARN [org.apache.hadoop.ipc.Client] - Couldn't setup connection for hdfs_test1/hdfs_test1@HADOOP.COM to big