2015-10-19 19 views
8

Tôi mới sử dụng Kafka và cố gắng thiết lập môi trường cho nó. Tôi đang cố gắng chạy một nút Kafka nhưng tôi gặp lỗi trong đó.Lỗi trong Thông báo xuất bản cho chủ đề Kafka

Tiếp theo các bước sau trên mac

1. brew install zookeeper 
2. brew install kafka 
3. zkServer start 
4. kafka-server-start.sh /usr/local/etc/kafka/server.properties 
5.bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test 
6.bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test 
This is a message 

Nhưng tôi nhận được lỗi sau. Xin vui lòng cho tôi biết, nếu tôi bỏ lỡ bất cứ điều gì

[2015-10-19 15:48:46,632] WARN Error while fetching metadata [{TopicMetadata for topic test -> 
No partition metadata for topic test due to kafka.common.LeaderNotAvailableException}] for topic [test]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo) 
[2015-10-19 15:48:46,637] WARN Error while fetching metadata [{TopicMetadata for topic test -> 
No partition metadata for topic test due to kafka.common.LeaderNotAvailableException}] for topic [test]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo) 
[2015-10-19 15:48:46,638] ERROR Failed to collate messages by topic, partition due to: Failed to fetch topic metadata for topic: test (kafka.producer.async.DefaultEventHandler) 
[2015-10-19 15:48:46,746] WARN Error while fetching metadata [{TopicMetadata for topic test -> 
No partition metadata for topic test due to kafka.common.LeaderNotAvailableException}] for topic [test]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo) 
[2015-10-19 15:48:46,749] WARN Error while fetching metadata [{TopicMetadata for topic test -> 
No partition metadata for topic test due to kafka.common.LeaderNotAvailableException}] for topic [test]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo) 
[2015-10-19 15:48:46,749] ERROR Failed to collate messages by topic, partition due to: Failed to fetch topic metadata for topic: test (kafka.producer.async.DefaultEventHandler) 
[2015-10-19 15:48:46,860] WARN Error while fetching metadata [{TopicMetadata for topic test -> 
No partition metadata for topic test due to kafka.common.LeaderNotAvailableException}] for topic [test]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo) 
[2015-10-19 15:48:46,863] WARN Error while fetching metadata [{TopicMetadata for topic test -> 
No partition metadata for topic test due to kafka.common.LeaderNotAvailableException}] for topic [test]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo) 
[2015-10-19 15:48:46,863] ERROR Failed to collate messages by topic, partition due to: Failed to fetch topic metadata for topic: test (kafka.producer.async.DefaultEventHandler) 
[2015-10-19 15:48:46,973] WARN Error while fetching metadata [{TopicMetadata for topic test -> 
No partition metadata for topic test due to kafka.common.LeaderNotAvailableException}] for topic [test]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo) 
[2015-10-19 15:48:46,977] WARN Error while fetching metadata [{TopicMetadata for topic test -> 
No partition metadata for topic test due to kafka.common.LeaderNotAvailableException}] for topic [test]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo) 
[2015-10-19 15:48:46,977] ERROR Failed to collate messages by topic, partition due to: Failed to fetch topic metadata for topic: test (kafka.producer.async.DefaultEventHandler) 
[2015-10-19 15:48:47,083] WARN Error while fetching metadata [{TopicMetadata for topic test -> 
No partition metadata for topic test due to kafka.common.LeaderNotAvailableException}] for topic [test]: class kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo) 
[2015-10-19 15:48:47,084] ERROR Failed to send requests for topics test with correlation ids in [0,8] (kafka.producer.async.DefaultEventHandler) 
[2015-10-19 15:48:47,086] ERROR Error in handling batch of 1 events (kafka.producer.async.ProducerSendThread) 
kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries. 
    at kafka.producer.async.DefaultEventHandler.handle(DefaultEventHandler.scala:90) 
    at kafka.producer.async.ProducerSendThread.tryToHandle(ProducerSendThread.scala:105) 
    at kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:88) 
    at kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:68) 
    at scala.collection.immutable.Stream.foreach(Stream.scala:547) 
    at kafka.producer.async.ProducerSendThread.processEvents(ProducerSendThread.scala:67) 
    at kafka.producer.async.ProducerSendThread.run(ProducerSendThread.scala:45) 

nhờ

Trả lời

4

Alok, này vấn đề rất phổ biến của cổng và máy chủ.
Bạn có thể vui lòng xác nhận HOST và PORT cho Zookeeper và Kafka Broker. Tôi giả sử bạn đã cấu hình Kafka trong địa phương của bạn để chắc chắn rằng bạn đang cung cấp tên máy chủ thích hợp.

Chạy lệnh dưới đây để đảm bảo Zookeeper và Kafka Broker chạy trên cổng mà bạn đã đề cập trong lệnh của bạn:

netstat-a | grep port

Vui lòng cho tôi biết nếu bạn vẫn gặp phải bất kỳ sự cố nào.

+0

Xin chào, Cổng có vẻ đúng với tôi. Tôi đã xác minh trong zoo.cfg và server.properties. Tôi đang sử dụng localhost thay cho tên máy chủ. – Alok

+0

bạn có thể chạy lệnh "tên máy chủ" trên CLI của mình và xác minh tên máy chủ cho máy của bạn là gì. – Bector

+1

. Dường như nó chỉ là vấn đề máy chủ. cảm ơn – Alok

0

Hãy thử bắt đầu trông giữ sở thú với cấu hình thích hợp như bạn làm với các Kafka:

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

Bạn có thể xóa các bản ghi môi giới và sau đó thử lại:

rm -R /tmp/kafka-logs (default location) 

Nếu bạn vẫn gặp vấn đề kiểm tra Các bản ghi.

+0

Tôi bắt đầu với cấu hình mặc định. Tôi không thay đổi zookeeper.properties. – Alok

7

Vấn đề đứng về phía tôi đã được giải quyết bằng cách thiết lập giá trị localhost đến các thuộc tính sau bên trong tập tin config/server.properties:

host.name 
advertised.host.name 
+0

Cảm ơn, điều này đã làm việc cho tôi. Tôi cũng sẽ thêm sự cần thiết phải thiết lập 'advertised.port = yourPortNum', đặc biệt nếu chạy trên một máy cục bộ và các nhà môi giới có các cổng khác nhau. – mohsenmadi

+0

[những điều này hiện không được chấp nhận] (http://kafka.apache.org/documentation#configuration), bạn có thể chỉ xóa chúng theo thứ tự 'listeners' hoặc' advertised.listeners' – marengaz

0

Tôi giải quyết nó bằng cách thay đổi thuộc tính host.name trong tập tin server.properties. Theo mặc định, nó được nhận xét và trỏ tới máy cục bộ. Vì vậy, nếu bạn muốn bắt đầu kafka tại địa phương, chỉ cần bỏ ghi chú này ra và bạn đã sẵn sàng. Ý nghĩa - host.name = localhost

0

tôi đã thiết lập localhost 127.0.0.1 để khắc phục vấn đề này trong server.properties

0

Trong khi sử dụng môi giới Kafka, Zookeeper là bắt buộc. Bạn phải bắt đầu zookeeper-server trước khi bắt đầu kafka-server.

Hãy rất cẩn thận với các cảng, khi nào sử dụng zookeeper port, khi nào sử dụng kafka broker port

Nếu bạn đang nhận được bất kỳ ngoại lệ liên quan đến Metadata, Kiểm tra nếu chủ đề của bạn tồn tại trong môi giới.

./kafka-topics.sh --zookeeper <host>:<port> --describe --topic <topic-name>

Đối với các chủ đề và Người tiêu dùng sử dụng cổng Zookeeper (dịch vụ) và cho môi giới người tiêu dùng sử dụng Kafka.

Các vấn đề liên quan