Как установить путь к файлу keytab в Windows Server, для спарк-отправки в YARN - PullRequest
0 голосов
/ 01 февраля 2019

Я давно борюсь с этим вопросом и отчаянно ищу помощь.

Контекст

У меня есть толстая банкаотправлено spark-submit менеджеру ресурсов YARn.Аутентификация YARN управляется протоколом Kerberos, для которого у меня есть действительный принципал и файл keytab.Ранее Keytab был проверен на корректность.

Менеджер ресурсов YARN и весь кластер работают на Cloudera на серверах Linux.Моя заявка должна быть отправлена ​​с Windows Server.

Я поместил свой файл keytab в C: \ Kerberos \ filename.

Чтобы включить Spark для автоматического создания заявки Kerberos, я хочу передатьkeytab и принципал при отправке.Я делаю это, помещая следующие конфигурации в файл spark-defaults.conf:

  • spark.yarn.keytab = C: \ Kerberos \ filename
  • spark.yarn.principal = user @домен

выпуск

происходят две вещи:

  • в описанной мной ситуации, когда начинается отправка, я получаюсообщение об успешном входе в систему, но к тому времени, когда контекст Spark запускается и переходит в YARN, я получаю No FileSystem for scheme: C, что заставляет меня думать, что оно интерпретирует C как префикс, а не как root.

  • если я попытаюсь file:///C/Kerberos/filename, я сразу получу исключение для файла, который не найден.Это вызвано проверкой в ​​SparkSubmit.scala (проверено исходный код для версии 2.2 - той, которую я использую), которая никогда не будет работать с URI, подобным file:///

Как же я должен указать путь к файлу keytab?Я могу только догадываться, что это зависит от Windows Server, являющегося отправителем

...