Skip to content

Предварительные требования

Совместимость версий

  • Версии 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).

Более подробную информацию можно найти в документации.