Как использовать две ключевые таблицы Kerberos (для Kafka и Hadoop HDFS) из задания Flink в автономном кластере Flink? - PullRequest
0 голосов
/ 02 мая 2018

Вопрос

В автономном кластере Flink, работающем на сервере, я разрабатываю потоковое задание Flink в Scala. Задание использует данные из более чем 1 тем Kafka (выполните некоторое форматирование) и записывает результаты в HDFS.

Одна из тем Kafka и HDFS, обе они требуют отдельной аутентификации Kerberos (потому что они принадлежат совершенно разным кластерам).

Мои вопросы:

  1. Можно ли (если да, как?) Использовать две ключевые таблицы Kerberos (одну для Kafka, другую для HDFS) из задания Flink в кластере Flink, работающего на сервере? (так что задание Flink может использовать тему Kafka и одновременно записывать в HDFS)
  2. Если это невозможно, каков разумный обходной путь для потоковой передачи данных 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...]

Окружающая среда

Спасибо за ваше внимание и отзывы!

...