Файловая система Hadoop с керберозой
Я новичок в файловой системе hadoop. Я не нашел никакой полезной ссылки в Google, связанной с Hadoop FileSystem.
Я хочу аутентифицироваться с использованием Kerberose при использовании Hadoop FileSystem.
Образец кода:
Path src = new Path("C:\\testing\\a\\a.avro");
Path dest = new Path("webhdfs://aaaa:50070/dummy/dummy.avro");
WebHdfsFileSystem web = new WebHdfsFileSystem();
try {
Configuration conf = new Configuration();
conf.set("fs.default.name","webhdfs://aaaa:50070");
web.setConf(conf);
FileSystem fs = FileSystem.get(web.getConf());
fs.copyFromLocalFile(false,src,dest);
} catch (IOException e) {
e.printStackTrace();
}
}
Как мне выполнить аутентификацию Kerberos с помощью приведенного выше кода? Как установить принцип и значения keytab?
1 ответ
Краткий ответ на ваш вопрос: ваш код hdfs-клиента знает, как проходить аутентификацию, если вы все правильно настроили (абсолютно не имеет ничего общего с кодом, который вы разместили здесь).
Я рекомендую вам изучить руководства по безопасности Hadoop.
- Настройка безопасного Hadoop (Hadoop 1.3 Hortonworks)
- Добавление информации о безопасности в файлы конфигурации (Hadoop 2.0 Hortonworks)
- Настройка безопасности Hadoop в CDH4
- Настройка безопасности Hadoop в CDH 5
Похоже, ваш hdfs-клиент - это система Windows. Чтобы получить доступ к кластеру Kerberized (включая Kerberized HDFS), вам необходимо включить доступ к сеансу TGT, см. Раздел "Ключ реестра, чтобы разрешить отправку ключей сеанса" в Kerberos Ticket-Granting-Ticket, и вы должны убедиться, что ваш процесс не ограничен UAC администратор (см. Доступ к ключам сеанса невозможен с использованием ограниченного токена).
Ваш кластер не может быть кластером Windows, кластеры Kerberized Windows все еще находятся в разработке ( YARN-1063, YARN-1972 и т. Д.).