2015-03-23 4 views
0

У меня есть установка kerberos для окон, обеспеченных hadoop-2.6.0 с kerberos.Изменение местоположения кеша кеша Kerberos для java

При отправке задания или выполнении каких-либо пользовательских команд Hadoop ссылается на кеш кеша Kerberos по умолчанию c: \ users \ username \ krb5cc_username.

Я хочу изменить это местоположение во время выполнения. Возможно ли изменить свойство по умолчанию для java, чтобы отнести кэш кеша где-то в моей системе.

Обновлено

Изменение местоположения по умолчанию можно сделать с помощью следующей команды

kinit -c cache_name username 

Приведи java kinit

Но когда я делать какие-либо операции на Hadoop, он берет билет по умолчанию кэширования только для информации пользователя. Как изменить местоположение по умолчанию в пользовательское расположение кеша?

Справка была бы принята с благодарностью.

ответ

2

Я просто решить эту проблему, установив переменные окружения ниже,

set KRB5CCNAME=ticketlocation 

Установку выше переменной делает Hadoop, чтобы получить билет в указанном месте.

0

Прежде всего, вы можете. Но вы должны спросить себя, почему?

Открыть PrintWriter, построить свой login.conf, установить свойство файла conf JAAS из вашего кода, и все готово.

Вот пример кода:

PrintWriter writer = new PrintWriter(new FileOutputSteam("...")); 
writer.println("client {"); 
writer.println("com.sun.security.auth.module.Krb5LoginModule required doNotPrompt=true useTicketCache=true"); 
writer.print("ticketCache=\""); 
writer.print(path); 
writer.println("\";"); 
writer.println("};"); 

System.setProperty("java.security.auth.login.config", ...); 

Это должно сделать и использовать JAAS Теперь, чтобы получить представление в памяти кэша.

+0

Спасибо. Можете ли вы предоставить какую-либо ссылку, например, или объяснить подробно, чтобы я мог понять. Hadoop использует свой собственный код, есть ли способ сделать это без изменения какого-либо кода? Я имею в виду, есть ли какой-либо файл, который может быть установлен с местоположением кеша и сделать его ссылкой java? – Kumar

+0

@ Кумар, пожалуйста, уточните, что вы на самом деле пытаетесь достичь. –

+0

Я хочу изменить расположение кеширования керобера, используя любой аргумент времени java. – Kumar

Смежные вопросы