Подтвердить что ты не робот

Ошибка при создании тем Kafka - коэффициент репликации больше доступных брокеров

Я пытаюсь создать темы в Kafka, следуя руководству на веб-сайте Apache Kafka через командную строку. Выполняя команду:

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

Я получаю ошибку следующим образом:

Error while executing topic command replication factor: 1 larger than available
brokers: 0
kafka.admin.AdminOperationException: replication factor: 1 larger than available
 brokers: 0
        at kafka.admin.AdminUtils$.assignReplicasToBrokers(AdminUtils.scala:70)
        at kafka.admin.AdminUtils$.createTopic(AdminUtils.scala:171)
        at kafka.admin.TopicCommand$.createTopic(TopicCommand.scala:93)
        at kafka.admin.TopicCommand$.main(TopicCommand.scala:55)
        at kafka.admin.TopicCommand.main(TopicCommand.scala)

[2015-10-13 14:25:38,607] INFO Processed session termination for sessionid: 0x15
06056566d0004 (org.apache.zookeeper.server.PrepRequestProcessor)
[2015-10-13 14:25:38,608] INFO Closed socket connection for client /127.0.0.1:33
391 which had sessionid 0x1506056566d0004 (org.apache.zookeeper.server.NIOServer
Cnxn)

Как я могу решить проблему? Любая хорошая документация, чтобы начать с этого? Спасибо!!

4b9b3361

Ответ 1

Кажется, что ваш сервер не запущен, проверьте журналы для выпуска

Процесс убийства

sudo fuser -k 2181/tcp

запустить zookeeper

bin/zookeeper-server-start.sh config/zookeeper.properties

Запуск Kafka

bin/kafka-server-start.sh config/server.properties  ' 

Ответ 2

Если бы я был вами, я бы попробовал этот код:

bin/kafka-topics.sh --create --zookeeper localhost: 2181/kafka - коэффициент повторения 1 - части 1 - топический тест

Если вы используете кластер, где zookeeper будет распределен в 3 узлах, вы должны подставить localhost:2181/kafka для direccion1:2181,direction2:2181,direction3:2181/kafka

Ответ 3

В нем четко сказано, что 0 брокер доступен. Запуск брокера

bin/zookeeper-server-start.sh config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties

в учебнике Apache Kafka, затем попробуйте

Ответ 4

У меня была та же проблема. Я решаю проблему. Я думаю, причина в том, что нет фонового запуска. поэтому мы начинаем фон запуска

bin/kafka-server-start.sh config/server.properties &
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test &

Ответ 5

Ваш Zookeeper не может видеть каких-либо брокеров Kafka. Войдите в свою консоль Zookeepr: bin/zkCli.sh -server localhost:2181 Запустите [zk: localhost:2181(CONNECTED) 2] ls /brokers/ids на консоли. Не должно быть никаких брокеров. Вам необходимо перезапустить все ваши брокеров Kafka и проверить журнал процесса kafka. Иногда даже в том случае, когда процесс отображается как выполняемый (ps -ef | grep kafka), он может вообще не запускаться полностью, из-за чего Zookeeper не может его увидеть. У меня была такая же проблема с дистрибутивом Apache Kafka 0.11.0.

Ответ 6

У меня была та же проблема, но в конце концов я попробовал следующие шаги, которые помогли мне:

1) Создайте chroot в Zookeeper с помощью следующих команд:

zkCli.sh -server localhost: 2181

создать/kafka1 []

2) Для конфигурации брокеров kafka измените zookeeper.connect и добавьте путь к chroot: например,

В server.properties:

zookeeper.connect = localhost: 2181/kafka1

3) Запустить Zookeeper

4) Запустить Kafka Server

5) Создать тему, как показано ниже: Bin/kafka-topic.sh --create -zookeeper локальный: 2181/kafka1 --replication-фактора 1 --partitions 1 --topic данные

6) Подтвердите созданную тему: bin/kafka-topics.sh --list --zookeeper localhost: 2181/kafka1

Я следовал ниже для справки: https://community.hortonworks.com/questions/102132/run-multiple-broker-versions-in-the-same-cluster.html

Ответ 7

Тот же сценарий, с которым я столкнулся после удаления единственной темы, которую я создал.

Путь к его решению был сделан Kafka и Zookeeper, обновлены настройки Kafka (файл server.properties), где я добавляю следующую настройку

delete.topic.enable=true

сохраненный файл, повернуть Zookeeper и Kafka вверх, и все работает как обычно.

Ответ 8

убедитесь, что сервер kafka запущен правильно. Если вы используете параметр -dameon чтобы запустить kafka server в качестве демона. Попробуйте удалить его и посмотреть, есть ли какие-либо ошибки во время запуска.

Проблема, с которой я столкнулся, оказалась проблемой доступа к файлу, в которой пользователь запускает kafka, не имеет доступа к директории журнала, которую я настроил. После того, как я предоставил доступ, он просто работает!

Ответ 9

Попробуйте добавить в свой сервер:

delete.topic.enable=true

Ответ 10

Скорее всего, на вашем сервере есть оставшийся, беглый zookeeper из одного из предыдущих развертываний. Перечислите контейнеры, контейнеры, процессы и т.д. И проверьте их возраст/время начала, чтобы определить это.

Ответ 11

В моем случае ошибка была вызвана тем, что я начал создавать темы до того, как zookeeper стал доступен. Так как я все делал в сценарии, помогло введение некоторой задержки перед созданием тем. Если ваш клиентский порт zookeeper - 2181, вы можете проверить доступность ваших брокеров:

echo dump | nc zookeeper 2181 | grep brokers

Ответ 12

В моем случае config/server.properties:

zookeeper.connect=localhost:2181

Но я создаю тему так:

$ ./bin/kafka-topics.sh --create --zookeeper localhost:2181/kafka --replication-factor 1 --partitions 1 --topic test

Тогда у меня была эта проблема.

Я решаю эту проблему, исправив команду создания темы, как показано ниже:

$ ./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

Вы должны убедиться, что опция --zookeeper такая же, как zookeeper.connect в config/server.properties

Ответ 13

  • Проверьте, все ли брокеры зарегистрированы в Zookeeper:

    zookeeper-shell.sh localhost:2181 ls /brokers/ids

  • Скорее всего, некоторые скобки отсутствуют в скобках []

  • Войдите в систему, на которой находится этот идентификатор, и перезапустите посредник:

    kafka-server-stop.sh
    nohup kafka-server-start.sh ../config/server.properties > /dev/null 2>&1 &
    
  • Проверьте еще раз, может ли Zookeeper теперь правильно видеть всех ваших брокеров.
  • Повторите команду создания темы.

Надеюсь, это поможет.

Ответ 14

У меня была та же проблема. Вы должны следовать этой части руководства: http://kafka.apache.org/documentation.html#quickstart_multibroker

У меня не было никакого брокера. Создайте 2 новых брокера, и вы устраните проблему. Выполните следующие действия:

cp config/server.properties config/server-1.properties
cp config/server.properties config/server-2.properties

После создания этих файлов вы должны настроить его с помощью этих изменений:

В "server-1.properties":

broker.id=1
port=9093 
log.dir=/tmp/kafka-logs-1
host.name=localhost

(Номер порта должен быть номером порта, который у вас есть на сервере server.properties + 1. У меня было 9092, поэтому мне нужно написать 9093)

В "server-2.properties":

broker.id=2
port=9094
log.dir=/tmp/kafka-logs-2
host.name=localhost

(Номер порта должен быть рядом с сервером-1. В моем случае 9094)