1. ホーム
  2. python

[解決済み] NoBrokersAvailableです。NoBrokersAvailable-Kafkaエラー

2022-01-30 18:01:08

質問

私はすでにKafkaを学び始めています。その上で基本的な操作を試しています。私は「ブローカー」についてのポイントで立ち往生している。

私のカフカは実行されていますが、私はパーティションを作成したいときに。

 from kafka import TopicPartition
(ERROR THERE) consumer = KafkaConsumer(bootstrap_servers='localhost:1234')
 consumer.assign([TopicPartition('foobar', 2)])
 msg = next(consumer)

traceback (most recent call last): ファイル "", 行 1, in ファイル "/usr/local/lib/python2.7/dist-packages/kafka/consumer/group.py", 行 284, in イニット self._client = KafkaClient(metrics=self._metrics, **self.config) ファイル "/usr/local/lib/python2.7/dist-packages/kafka/client_async.py", line 202, in イニット self.config['api_version'] = self.check_version(timeout=check_timeout)です。 ファイル "/usr/local/lib/python2.7/dist-packages/kafka/client_async.py", 行 791, in check_version raise Errors.NoBrokersAvailable() kafka.errors.NoBrokersAvailable: NoBrokersAvailable

解決方法は?

コンシューマ内でパーティションを作成することはできません。パーティションは、トピックを作成するときに作成されます。例えば、コマンドラインツールを使用します。

bin/kafka-topics.sh \
  --zookeeper localhost:2181 \
  --create --topic myNewTopic \
  --partitions 10 \
  --replication-factor 3

これは、10個のパーティション(0から9までの番号)とレプリケーション係数3を持つ新しいトピック "myNewTopic"を作成します(参照)。 http://docs.confluent.io/3.0.0/kafka/post-deployment.html#admin-operations https://kafka.apache.org/documentation.html#quickstart_createtopic )

コンシューマ内で assign() これは、対応するパーティションを消費することを意味し、このパーティションはすでに存在している必要があります。