Настройка конфигурации 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 разделах - это много записей, и вы, возможно, захотите увеличить это значение