2016-03-17 4 views
3

По умолчанию kafka использует один каталог для ведения журнала. Чтобы увеличить производительность, рекомендуется установить больше дисков для брокера и назначить каждый диск в один каталог, а затем в server.properties введите log.dirs= в список каталогов, разделенных комой. В документации говорится, что разделы будут распределены между круговыми типами каталогов. Как я понимаю, это верно для новых тем.Как распространять существующие разделы темы kafka в другие каталоги?

Я хотел бы распространить половину разделов моей уже созданной темы на вновь созданный log.dir, оставив вторую половину, где они есть, - есть ли способ для этого?

ответ

2

https://community.hortonworks.com/articles/59715/migrating-kafka-partitions-data-to-new-data-folder.html

Подход 1: Просто удалите существующее содержимое каталога данных и настроить новые данные каталогов местоположения

При таком подходе, Кафка копирует данные раздела из других членов кластера. Полные данные разделов будут воспроизведены с самого начала. Все разделы распределены поровну между каталогами. Время репликации будет зависеть от размера данных. Если у нас есть огромные данные, реплика может занять больше времени, чтобы присоединиться к ISR. Это также наложит много нагрузки на сеть/кластер. Это может вызвать некоторые проблемы для кластера Kafka. Мы можем видеть, некоторые изменения ISR и ошибки клиента. Этот подход должен быть точным для небольших кластеров (ГБ данных)

Примечание: В Kafka брокер-идентификатор будет храниться в файле log.dir/meta.properties. Если мы не настроили broker.id, то по умолчанию Kafka генерирует новый брокер-идентификатор. Чтобы этого избежать, сохраните существующий файл meta.properties в каталоге log.dirs.

подход 2: Перемещение каталогов разделов в новый каталог данных (без справляясь файлы контрольных точек)

Это похоже на выше подхода, но здесь Кафка размножается только перемещенные разделы.

Подход 3: Перемещение каталогов разделов и разделение файлов контрольной точки.

Каждый каталог данных содержит три файла контрольной точки, а именно контрольную точку репликации-смещения, контрольную точку восстановления-точки-смещения и контрольную точку очистки-смещения. Эти файлы содержат последние зафиксированные смещения, контрольную точку завершения протокола и подробную информацию о контрольных точках для разделов, доступных в этом каталоге. Каждый из файлов содержит номер версии, no.of запрашивает, по одной строке для каждой записи.

Нам необходимо скопировать/создать эти файлы в новый каталог, и нам необходимо обновить эти файлы. нам нужно скорректировать записи в каталогах (старый каталог и новый каталог). Это может быть утомительно, если у нас есть большое количество разделов. Но это лучший подход, если у нас есть огромные данные. При таком подходе реплики быстро присоединяются к ISR. Нагрузка на кластер/сеть будет меньше.

Смежные вопросы