Предварительные требования
Совместимость версий
- Версии Kafka сервера:
- Официально заявленные: 0.10 или выше
- Фактически протестированные: 3.2.3, 3.9.0 (только Kafka 3.x поддерживает заголовки сообщений)
- Версии Spark: 2.4.x - 3.5.x
- Версии Java: 8 - 17
Установка PySpark
Для использования коннектора Kafka необходимо установить PySpark (или добавить его в sys.path) ДО создания экземпляра коннектора.
Подробнее см. инструкцию по установке.
Подключение к Kafka
Адрес подключения
Kafka — это распределенный сервис, и обычно имеет список брокеров, к которым можно подключиться (в отличие от других коннекторов, где можно указать только один хост и порт). Пожалуйста, обратитесь к администратору Kafka, чтобы получить адреса этих брокеров, так как стандартных значений нет.
Также у Kafka есть функция advertised listeners — клиент подключается к одному брокеру и получает список других брокеров в кластере.
Поэтому вам не нужно передавать все брокеры в addresses, это может быть некоторое подмножество. Адреса других брокеров будут получены непосредственно из кластера.
Протокол подключения
Kafka может поддерживать различные протоколы подключения. Список поддерживаемых на данный момент протоколов:
PLAINTEXT(не защищенный)SSL(защищенный, рекомендуется)
Обратите внимание, что конкретный порт может прослушивать только один из этих протоколов, поэтому важно установить правильную комбинацию номера порта и протокола.
Механизм аутентификации
Kafka может поддерживать различные механизмы аутентификации (также известные как SASL).
Список поддерживаемых на данный момент механизмов:
PLAIN. Чтобы не путать с протоколом подключенияPLAINTEXT, onETL использует названиеBasicAuth.GSSAPI. Для упрощения именования onETL использует названиеKerberosAuth.SCRAM-SHA-256 или SCRAM-SHA-512(рекомендуется).
Различные механизмы используют разные типы учетных данных (логин + пароль, файл keytab и т.д.).
Обратите внимание, что протокол подключения и механизм аутентификации устанавливаются парами:
- Если вы видите
SASL_PLAINTEXT, это означает протокол подключенияPLAINTEXT+ какой-то механизм аутентификации. - Если вы видите
SASL_SSL, это означает протокол подключенияSSL+ какой-то механизм аутентификации. - Если вы видите просто
PLAINTEXTилиSSL(безSASL), это означает, что аутентификация отключена (анонимный доступ).
Пожалуйста, обратитесь к администратору Kafka, чтобы получить подробную информацию о включенном механизме аутентификации в конкретном экземпляре Kafka.
Необходимые разрешения
Попросите администратора Kafka установить следующие разрешения для пользователя, если экземпляр Kafka использует ACL:
Describe+Readдля чтения данных из Kafka (Consumer).Describe+Writeдля записи данных в Kafka (Producer).
Более подробную информацию можно найти в документации.