Вопрос
В автономном кластере Flink, работающем на сервере, я разрабатываю потоковое задание Flink в Scala. Задание использует данные из более чем 1 тем Kafka (выполните некоторое форматирование) и записывает результаты в HDFS.
Одна из тем Kafka и HDFS, обе они требуют отдельной аутентификации Kerberos (потому что они принадлежат совершенно разным кластерам).
Мои вопросы:
- Можно ли (если да, как?) Использовать две ключевые таблицы Kerberos (одну для Kafka, другую для HDFS) из задания Flink в кластере Flink, работающего на сервере? (так что задание Flink может использовать тему Kafka и одновременно записывать в HDFS)
- Если это невозможно, каков разумный обходной путь для потоковой передачи данных Kafka-Flink-HDFS, когда Kafka и HDFS защищены Kerberos?
Примечание
- Я довольно плохо знаком с большинством технологий, упомянутых здесь.
- Задание Flink может выполнять запись в HDFS, если для этого не требуется тема, требующая Kerberos. В этом случае я указал информацию HDFS для
security.kerberos.login.keytab
и security.kerberos.login.principal
в flink-conf.yaml
- Я использую HDFS-разъем, предоставленный Flink для записи в HDFS.
Возможно ручное переключение аутентификации Kerberos между двумя принципалами. В разделе [realm] в файле krb5.conf
я указал две области: одну для Kafka, другую для HDFS.
kinit -kt path/to/hdfs.keytab [principal: xxx@XXX.XXX...]
kinit -kt path/to/kafka.keytab [principal: yyy@YYY.YYY...]
Окружающая среда
Спасибо за ваше внимание и отзывы!