Java: Доступ к серверу журнала заданий и серверу временной шкалы приложений в кластере Kerberized Hadoop?

Я использовал шаблон отдыха kerberos для доступа к серверу истории заданий на kerberized hadoop, но этот код выдает мне исключение:

KerberosRestTemplate kerberosRestTemplate = new KerberosRestTemplate(properties.getProperty("userKeytabPath"),properties.getProperty("userprincipal"));                   System.out.println(kerberosRestTemplate.getForObject(jobhistoryurl, String.class));

Исключение:

Exception in thread "main" org.springframework.web.client.RestClientException: Error running rest call; nested exception is org.springframework.web.client.HttpClientErrorException: 401 Authentication required
    at org.springframework.security.kerberos.client.KerberosRestTemplate.doExecute(KerberosRestTemplate.java:196)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:530)
    at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:237)
    at com.datametica.hiveconnection.hiveconnectioncheck.HivePortCheck.main(HivePortCheck.java:57)
Caused by: org.springframework.web.client.HttpClientErrorException: 401 Authentication required
    at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91)
    at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:614)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:570)
    at org.springframework.security.kerberos.client.KerberosRestTemplate.doExecuteSubject(KerberosRestTemplate.java:202)
    at org.springframework.security.kerberos.client.KerberosRestTemplate.access$100(KerberosRestTemplate.java:67)
    at org.springframework.security.kerberos.client.KerberosRestTemplate$1.run(KerberosRestTemplate.java:191)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:360)
    at org.springframework.security.kerberos.client.KerberosRestTemplate.doExecute(KerberosRestTemplate.java:187)
    ... 3 more

Так есть ли какие-либо дополнительные параметры, которые я должен передать в заголовках запросов для доступа к защищенному aper Kerberos? Также перед тем, как получить доступ к этому API, я вошел в систему через того же пользователя и таблицу ключей, предоставленных в kerberosRestTemplate, с использованием класса UserGroupInformation защиты hadoop.

 UserGroupInformation.loginUserFromKeytab(properties.getProperty("userprincipal"),properties.getProperty("userKeytabPath"));

Я проверил текущего пользователя, вошедшего в систему (через ugi текущего пользователя), прежде чем получить доступ к истории заданий, и он дает мне знать, что пользователь вошел в систему и имеет аутентификацию Kerberos, но я все еще получаю статус 401 с сервера истории заданий.

0 ответов

Другие вопросы по тегам