Как авторизоваться в Hadoop/HDFS через kerberos ??

 
 
 
Сообщения:1
openjdk 11
windows

Разбираюсь с доступом к Hadoop/HDFS через авторизацию kerberos.

Всё что нашел пока - это авторизация через keytab либо через контекст текущего пользователя.
Пишу приложение для работы в windows, по этому keytab мне, наверное, не подойдёт.

В случае с контекстом код:
        Configuration hadoopconf = new Configuration();
        hadoopconf.set("fs.defaultFS", "hdfs://my-hdp-cluster:8020");
        hadoopconf.set("hadoop.security.authentication","kerberos");

        // Берем пользовательский контекст для авторизации KDB
        UserGroupInformation.setConfiguration(hadoopconf);
        UserGroupInformation.loginUserFromSubject(null);

        FileSystem fileSystem = FileSystem.get(hadoopconf);

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


ловлю ошибку
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.hadoop.security.authentication.util.KerberosUtil (file:/C:/Users/USER/.m2/repository/org/apache/hadoop/hadoop-auth/2.7.3/hadoop-auth-2.7.3.jar) to method sun.security.krb5.Config.getInstance()
WARNING: Please consider reporting this to the maintainers of org.apache.hadoop.security.authentication.util.KerberosUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Exception in thread "main" java.io.IOException: No FileSystem for scheme: hdfs


Хочется реализовать авторизацию через передачу логина и пароля.

Куда рыть, направление укажите?
 
Модераторы:wedens
Сейчас эту тему просматривают:Нет