Kafka 2.0 - несколько принципов Kerberos в соединителях KafkaConnect - PullRequest
0 голосов
/ 03 февраля 2020

В настоящее время мы используем HDF (Hortonworks Dataflow) 3.3.1, который включает Kafka 2.0.0. Проблема в том, что на одном кластере KafkaConnect работают несколько коннекторов с разной конфигурацией (принципалы Kerberos).

Как часть этой версии Kafka, предполагается, что все соединители будут использовать одинаковые свойства потребителя / производителя, которые были установлены в рабочей конфигурации с префиксом customer. * Или provider. *. Но, как я уже говорил, у нас есть несколько пользователей (приложений), использующих свои собственные соединители, и мы не можем использовать одного принципала Kerberos, чтобы разрешить чтение по всем темам.

Так что я просто хотел уточнить у экспертов, есть ли какое-нибудь средство преодоления этого ограничения безопасности. Вариант, который я могу придумать, - запустить разные кластеры Kafka-Connect для каждого пользователя Kafka (разные принципалы), но какие последствия это может иметь, если мы запустим много кластеров KafkaConnect на одних и тех же узлах? Вызывает ли это какое-либо воздействие с точки зрения ресурсов (Java heap et c.) Или это единственный способ (стандартная процедура) справиться с этим.

PS: в более поздних выпусках (2.3+) эта проблема исправлена ​​с помощью KAFKA-8265 , и эти настройки могут быть перезаписаны, но даже если мы попытаемся перейти на последнюю версию HDF, мы получим только Kafka 2.1 которая не решит эту проблему.

Спасибо за вашу помощь !!

1 Ответ

0 голосов
/ 03 февраля 2020

Я думаю, что обновление - ваш лучший вариант для получения связанной функции. Как я уже прокомментировал, вы можете go получить последние версии kafka самостоятельно ... Hortonworks / Cloudera в любом случае не поддерживает Connect. Они предпочли бы, чтобы вы использовали Spark / Flink / NiFi (я думаю, что Storm больше не существует?)

какие последствия это может иметь, если мы запустим много кластеров KafkaConnect на одних и тех же узлах? Вызывает ли это какое-либо влияние с точки зрения ресурсов (Java heap et c.)

Куча является основной (для дозирования, коннекторов приемника). Также может учитываться нагрузка на сеть и ЦП, в зависимости от частоты сообщений.

Пока объявленные порты для каждого процесса кластера не сталкиваются, вы должны иметь возможность использовать одинаковые идентификаторы групп и внутренние темы. хотя

...