Как прочитать файл hdfs с помощью webhdfs с защищенного узла?

Я хотел бы сделать вызов webhdfs для извлечения файла из защищенного узла с помощью Java.

Вот что я делаю 1. Войдите в систему с помощью keytab (отлично работает). Я получаю билет kerberos 2. Теперь, когда я пытаюсь вызвать приведенный ниже код, он пытается получить токен делегирования, выполняя вызов https, и завершается с ошибкой 401 https://mynode:50070/webhdfs/v1/?op=GETDELEGATIONTOKEN&user.name=myuser

Вот код для открытия файла hdfs. open(new Path("swebhdfs://" + домен + "myfile"))));

Мой вопрос: поскольку у меня есть билет kerberos, как я могу передать его объекту UserGropupInformation?

Спасибо,


person Biscoot    schedule 21.07.2015    source источник


Ответы (1)


Я предполагаю, что у вас есть доступ к keytab файлу. Добавьте следующий фрагмент перед подключением к кластеру Hadoop.
Метод loginUserFromKeytab загрузится и пройдет аутентификацию с помощью keytab для указанного пользователя. («входит в систему» ​​простыми словами)

String user = "USER@REALM"
String keyPath = "somekeytab.keytab"
UserGroupInformation.loginUserFromKeytab(user, keyPath)

UserGroupInformation находится в банке hadoop-common.

Ссылка :

Аутентификация участников Kerberos в коде Java

person Shyam    schedule 21.07.2015