Настройка конфигурации Kafka Connect HDFS?

Я хочу настроить Kafka Connect для записи максимально возможного количества записей в HDFS (мне нужно записывать около 100B записей в день, каждая запись составляет около 1.2Kb).

У меня есть сервер Kafka с 256 ГБ оперативной памяти.

Я пытаюсь настроить следующие параметры:

flush.size=305000
tasks.max=215

С кафкой тема с 215 разделами. С этим параметром я получил исключение:

Пространство кучи Java OutOfMemoryException

И с:

    flush.size=305000
    tasks.max=10

С темами Кафки с 10 разделами, Это работает нормально, но записывает только около 40-50M записей за 10 минут, С этой конфигурацией у меня очень большое отставание (около 1.5B).

Как рассчитать максимальную конфигурацию подключения Kafka?

Благодарю.

1 ответ

Размер вашей оперативной памяти Kafka Server не имеет значения, если вы не установили размер кучи Java больше, чем значения по умолчанию.

То же относится и к Kafka Connect... Это поможет с ошибками OOM

Если у вас есть 10 разделов, вам нужно запустить 10 задач в распределенном режиме, а не в автономном режиме. Это позволит масштабировать потребительские процессы, и если вы хотите, чтобы он шел еще быстрее, запустите его на 10 отдельных машинах (или нескольких машинах и используйте контейнеры Docker)

Единственный способ, которым я знаю, что вы можете рассчитать максимальное количество сообщений, которое вы можете получить в данном сбросе, - это контролировать используемое пространство кучи с помощью JMX-мониторинга в процессе подключения. 100B записей в день в 10 разделах - это много записей, и вы, возможно, захотите увеличить это значение

Другие вопросы по тегам