Файловая система 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.

Похоже, ваш hdfs-клиент - это система Windows. Чтобы получить доступ к кластеру Kerberized (включая Kerberized HDFS), вам необходимо включить доступ к сеансу TGT, см. Раздел "Ключ реестра, чтобы разрешить отправку ключей сеанса" в Kerberos Ticket-Granting-Ticket, и вы должны убедиться, что ваш процесс не ограничен UAC администратор (см. Доступ к ключам сеанса невозможен с использованием ограниченного токена).

Ваш кластер не может быть кластером Windows, кластеры Kerberized Windows все еще находятся в разработке ( YARN-1063, YARN-1972 и т. Д.).

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