У меня есть кластер Kafka, работающий с двумя разделами. Я искал способ увеличить количество разделов до 3. Однако я не хочу потерять существующие сообщения в теме. Я попытался остановить Kafka, изменив файл server.properties
, чтобы увеличить количество разделов до 3 и перезапустить Kafka. Однако это ничего не меняет. Используя Kafka ConsumerOffsetChecker
, я все еще вижу, что он использует только 2 раздела. Версия Kafka, которую я использую, равна 0.8.2.2. В версии 0.8.1 использовался сценарий под названием kafka-add-partitions.sh
, который, я думаю, мог бы сделать трюк. Тем не менее, я не вижу такого сценария в 0.8.2. Есть ли способ сделать это? Я экспериментировал с созданием совершенно новой темы, и для нее он, похоже, использует 3 раздела в соответствии с изменением в файле server.properties
. Однако для существующих тем это, похоже, не заботит.Можно ли добавить разделы в существующую тему в Kafka 0.8.2
ответ
Похоже, вы можете использовать this скрипт вместо:
bin/kafka-topics.sh --zookeeper zk_host:port/chroot --alter --topic my_topic_name
--partitions 40
В коде это выглядит как они делают то же самое:
AdminUtils.createOrUpdateTopicPartitionAssignmentPathInZK(topic, partitionReplicaList, zkClient, true)
kafka-topics.sh
выполняет this кусок кода, а также AddPartitionsCommand, используемый kafka-add-partition.
Однако вы должны быть осведомлены о повторном разбиении при использовании ключа:
Имейте в виду, что один случай использования для разделов является семантически разбиение данных и добавление разделов не изменяет разбиение существующие данные, так что это может помешать потребителям, если они полагаются на этот раздел . То есть, если данные разделены на
hash(key) % number_of_partitions
, то это разбиение будет потенциально , перетасованное добавлением разделов, но Kafka не будет пытаться автоматически перераспределить данные любым способом.
Спасибо. Попробуй. –
Если данные должны быть перераспределены, существует ли способ переместить только сообщения, которые не были прочитаны, и игнорировать сообщения, которые были прочитаны? – Glide
в соответствии с философией «append-only», я бы предположил, что для достижения этой цели вам потребуется большая длина. Я бы сказал, что проще всего остановить потребление по этой теме, создать новую тему с количеством разделов, которые вы хотите, переиздать непрочитанные сообщения на новую тему, а затем продолжить потребление новой темы. – CmdrDats
Пожалуйста, обратите внимание, что в моем случае значение zk_host: порт/корневым для параметра --zookeeper бросил следующее исключение:
ОШИБКА java.lang.IllegalArgumentException: Тема my_topic_name не существует на ZK пути zk_host: порт/корневым.
Итак, я попытался следующие, и она работала:
bin/kafka-topics.sh --alter --zookeeper zk_host:port --topic my_topic_name --partitions 10
'chroot' - это * необязательный * параметр конфигурации, который не должен восприниматься буквально –
- 1. Kafka consumer - как добавить тему
- 2. Изучение Kafka 0.8.2
- 3. Kafka 0.8.2 потребитель
- 4. Kafka 0.8.2 пользовательские библиотеки API?
- 5. Как использовать потребительский API Kafka 0.8.2?
- 6. Как Kafka распространяет разделы темы среди брокеров
- 7. Как создать тему в apache kafka?
- 8. Можно ли создать тему kafka с динамическим количеством разделов?
- 9. Можно ли создать тему с помощью Kafka Rest Proxy?
- 10. Kafka не заполняет разделы равномерно в теме
- 11. Можно ли добавить столбец в существующую treemodel в gtk?
- 12. Создает ли поставщик 0.8.2 Kafka для вас секционирование?
- 13. Можно добавить разделы в отчет Jenkins?
- 14. Как добавить форму входа для пользователя в существующую тему Wordpress?
- 15. Создать тему Apache Kafka
- 16. Можно ли добавить слова в существующую OpenNLP POS corpus/model?
- 17. Можно ли добавить логику Teardown в уже существующую Observable?
- 18. Просмотр сообщений через разделы Kafka
- 19. Добавить страницу входа в существующую тему angularjs metronic
- 20. Где kafka хранит разделы по темам?
- 21. Разделы темы Kafka для Spark streaming
- 22. Можно ли сохранить разделы CDATA в BeautifulSoup?
- 23. Можно ли вытащить репозиторий git в разделы?
- 24. Можно ли добавить раздел или брокер онлайн для kafka?
- 25. Как скопировать тему из кластера kafka в другой кластер kafka?
- 26. Репликация сообщений из одной темы Kafka в другую тему kafka
- 27. Как создать неустойчивую тему kafka
- 28. Есть ли способ удалить тему в kafka-node
- 29. Удалить тему из kafka в коде C++
- 30. Как загрузить тему Kafka в HDFS?
Последний релиз Apache Кафка 0.8.2.2, я сомневаюсь, что вы используете «2.10». Вы можете снова проверить версии. – C4stor
@ C4stor На самом деле я имел в виду Kafka, основанный на Scala 2.10, который именно в указанной вами версии 0.8.2.2. Извините за путаницу. Я отредактирую свой вопрос. –