Ошибка выброса потребителя и производителя Kafka

Я получаю ошибку ниже при попытке передать слова в Kafka-consumer, команды, в которых я ввел

console-1: (для производителя)

    export PATH=$PATH:/usr/hdp/current/kafka-broker/bin

kafka-topics.sh --create --zookeeper ip-172-31-20-58.ec2.internal:2181 --replication-factor 1 --partitions 1 --topic testuday1234

kafka-console-producer.sh --broker-list ip-172-31-20-58.ec2.internal:6667 --topic testuday1234

console-2: (для потребителя)

export PATH=$PATH:/usr/hdp/current/kafka-broker/bin
kafka-console-consumer.sh --zookeeper localhost:2181 --topic testuday1234 --from-beginning

Пожалуйста, помогите мне разрешить эту ошибку

Я получаю ошибку в консоли производителя:

[udaychitukula6587@ip-172-31-38-183 ~]$ kafka-console-producer.sh --broker-list ip-172-31-20-58.ec2.internal:6667 --topic testuday1234
hi
[2018-05-28 15:27:36,761] WARN Error while fetching metadata [{TopicMetadata for topic testuday1234 ->
No partition metadata for topic testuday1234 due to kafka.common.LeaderNotAvailableException}] for topic [testuday1234]: class kafka.common.LeaderNotAvailableExcep
tion (kafka.producer.BrokerPartitionInfo)
[2018-05-28 15:27:36,774] WARN Error while fetching metadata [{TopicMetadata for topic testuday1234 ->
No partition metadata for topic testuday1234 due to kafka.common.LeaderNotAvailableException}] for topic [testuday1234]: class kafka.common.LeaderNotAvailableExcep
tion (kafka.producer.BrokerPartitionInfo)

Я получаю ошибку в консоли потребителя:

[udaychitukula6587@ip-172-31-38-183 ~]$ kafka-console-consumer.sh --zookeeper localhost:2181 --topic testuday123 --from-beginning
{metadata.broker.list=ip-172-31-20-58.ec2.internal:6667,ip-172-31-53-48.ec2.internal:6667,ip-172-31-60-179.ec2.internal:6667, request.timeout.ms=30000, client.id=c
onsole-consumer-63526, security.protocol=PLAINTEXT}
{metadata.broker.list=ip-172-31-20-58.ec2.internal:6667,ip-172-31-53-48.ec2.internal:6667,ip-172-31-60-179.ec2.internal:6667, request.timeout.ms=30000, client.id=c
onsole-consumer-63526, security.protocol=PLAINTEXT}

Сколько разделов? Ошибка на стороне производителя не требует пояснений. Нет лидеров раздела по теме. Какое исключение для потребителя? Я ничего не вижу.

Indraneel Bende 28.05.2018 21:20
Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Apache Kafka - популярная платформа распределенной потоковой передачи данных, которую можно использовать для построения конвейеров данных в реальном...
0
1
731
1

Ответы 1

Я здесь отметил несколько моментов.

Первый, в более новых версиях (я думаю, начиная с 0.10.1) Kafka для потребителя консоли нам нужно использовать опцию --bootstrap-server, а не --zookeeper. Не могли бы вы подтвердить версию, которую вы используете? а также попробовать запустить команду потребителя с опцией --bootstrap-server?

Второй, для производителя в таком сценарии я бы рекомендовал проверить 3 вещи, чтобы подтвердить, где может быть проблема:

  1. Лидер кластера Kafka выбирается zookeeper, поэтому, возможно, стоит проверить, запустив оболочку zookeeper-client, чтобы увидеть, есть ли активный контроллер в кластере Kafka (в пути znode - /brokers/ids/[brokerId]).
  2. Попробуйте запустить команду Kafka-topics --describe --topic, чтобы проверить, есть ли в теме активный ведущий раздел, то есть в столбце Leader в выходных данных команды НЕ должно быть None. Я сам сталкивался с этим раньше.
  3. Последний вопрос касается номера порта брокера. Не могли бы вы проверить и подтвердить, действительно ли брокер прослушивает этот порт. Вы найдете эту информацию (listeners и advertised.listeners) в файле server.properties на брокере. Я обнаружил, что эта почта может оказаться полезным там, где у пользователя возникла проблема с портом 6667.

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

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