Size: a a a

2021 September 27

ИК

Иван Калининский... in Data Engineers
Подскажите, как в scala/java заставить работать YarnClient в режиме cluster с kerberos на кластере.

Код:
val appId = ApplicationId.fromString(spark.sparkContext.applicationId)
val yarnClient = YarnClient.createYarnClient
val conf = SparkHadoopUtil.get.newConfiguration(spark.sparkContext.getConf)
yarnClient.init(conf)
yarnClient.start()
val appReport = yarnClient.getApplicationReport(appId)

Результат:
Exception encountered while connecting to the server : org.apache.hadoop.security.AccessControlException: Client cannot authenticate via:[TOKEN, KERBEROS]

Керберос через kinit:
kinit -kt ${user_name}.keytab ${user_name}@$domain
spark-submit --master yarn --deploy-mode cluster ….

Смотрю в сторону использования UserGroupInformation, но пока не понимаю, что именно брать и совсем не понимаю, куда взятое пристроить(
Ну, или делать не kinit, а --keytab ${user_name}.keytab --principal ${user_name}@$domain ?
источник

B

BadRat in Data Engineers
How to renew Kerberos ticket on spark yarn client mode? - Stack Overflow
https://stackoverflow.com/questions/43087471/how-to-renew-kerberos-ticket-on-spark-yarn-client-mode
источник

B

BadRat in Data Engineers
Тут кажется все варианты пересмотрены. А проблема в версии хадупа.
источник

ИК

Иван Калининский... in Data Engineers
Спасибо, но в deploy-mode client всё работает как надо. В cluster не работает сразу же. Это вполне понятно, я просто не знаю, как указать ярн клиенту правильную аутентификацию
источник

ИК

Иван Калининский... in Data Engineers
Более другого хадупа нет))
источник

ЕГ

Евгений Глотов... in Data Engineers
Как пропатчить ходуб под freeHDP😆
источник
2021 September 28

РД

Роман Друзык... in Data Engineers
У меня в скрипте запуска на керберизованном серваке все так же, сначала kinit, чтоб точно тикет был, а потом keytabfile.keytab и принципала указываешь.
Я думаю не в этом проблема, но все же, проверь что ты верно путь до кейтаба указываешь.
источник

ПБ

Повелитель Бури... in Data Engineers
Шутку оценил)
источник

À

Àndrew in Data Engineers
Всем привет. Подскажите пожалуйста: на спарке есть .read("jdbc") . Коннект к базе будет делать одна конкретная нода или могут сразу несколько?
источник

EK

Evgeny Kincharov in Data Engineers
по дефолту одна, чтобы было несколько надо извернуться: https://karanasou.medium.com/pyspark-parallel-read-from-database-726f4aa910b
источник

À

Àndrew in Data Engineers
Если одна, то это будет нода на которой поднят драйвер или не обязательно?
источник

B

BadRat in Data Engineers
Это будет случайная нода. Драйвер нужен на всех
источник

ИК

Иван Калининский... in Data Engineers
Это будет нода, на которой создан один из экзекуторов. Экзекутор установит соединение и будет выполнять запрос. В статье указан самый простой метод распараллеливания. Можно использовать другой метод
.jdbc(url: String, table: String, predicates: Array[String], connectionProperties: Properties)
Он позволит сделать намного больше, потому что можно передать созданные предикаты (фильтры) в аргумент predicates. Сколько фильтров передано, столько будет запросов выполнено. И они будут отдельными, в разных сессиях, так что если таблица в базе данных изменилась, то необходимо обеспечить, чтобы они читали один и тот же снимок данных.
источник

À

Àndrew in Data Engineers
Понял. Спасибо)
источник

ИК

Иван Калининский... in Data Engineers
Приложение работает, обращения к hdfs производятся, так что в целом всё хорошо. И приложение не знает пути к кейтабу, сейчас всё через kinit и этого достаточно для spark-submit, контекст создаётся правильный. Но ярн клиент о нём не знает
источник

DT

Danz The Deadly in Data Engineers
Кто-то может подсказать хорошую библиотеку для рисования графов на питоне?
источник

ДШ

Дмитрий Шаталов... in Data Engineers
источник

DT

Danz The Deadly in Data Engineers
это плотли
источник

DT

Danz The Deadly in Data Engineers
есть другая?
источник

TG

Tagir Gumerov in Data Engineers
Можно graphiz юзать, смотря какой юзкейс
источник