2016-05-25 9 views
4

私はカフカを新しくしました。カフカの設定について質問があります。私は以下のように別々のサーバーを使用するようにしたいカフカクラスター構成

SERVER1:カフカプロデューサー SERVER2:カフカブローカー、カフカの消費者、飼育係

しかし、私はブローカーにメッセージを送信することはできません。 そして私はこのエラーメッセージを受け取りました。

コンソールプロデューサー(SERVER1)に

、 コンソールSTDOUTエラーメッセージカフカプロデューサ(サーバ2)上の '

[2016-05-24 16:41:11,823] ERROR Error when sending message to topic twitter with key: null, value: 3 bytes with error: Failed to update metadata after 60000 ms.(org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) 

`

、 コンソールSTDOUTエラーメッセージ '

[2016-05-25 10:20:01,588] DEBUG Connection with /192.168.50.142 disconnected (org.apache.kafka.common.network.Selector) 
java.io.EOFException 
    at org.apache.kafka.common.network.NetworkReceive.readFromReadableChannel(NetworkReceive.java:83) 
    at org.apache.kafka.common.network.NetworkReceive.readFrom(NetworkReceive.java:71) 
    at org.apache.kafka.common.network.KafkaChannel.receive(KafkaChannel.java:160) 
    at org.apache.kafka.common.network.KafkaChannel.read(KafkaChannel.java:141) 
    at org.apache.kafka.common.network.Selector.poll(Selector.java:286) 
    at kafka.network.Processor.run(SocketServer.scala:413) 
    at java.lang.Thread.run(Thread.java:745) 

コマンドを実行している

はカフカDIR上

以下SERVER1、 `

./bin/zookeeper-server-start.sh config/zookeeper.properties 
./bin/kafka-server-start.sh config/server.properties 
./bin/kafka-console-consumer.sh --zookeeper 192.168.50.142:2181 --from-beginning --topic twitter 
./bin/kafka-topics.sh --create --zookeeper 192.168.50.142:2181 --replication-factor 1 --partitions 1 --topic twitter 

`

とserver2カフカdirの上、 `

./bin/kafka-console-producer.sh --broker-list 192.168.50.142:9092 --topic twitter 

`

のようなものですそして、私の詐欺

カフカ/設定/ producer.properties '

metadata.broker.list=192.168.50.142:9092 
producer.type=sync 
compression.codec=none 
serializer.class=kafka.serializer.DefaultEncoder 

`

サーバ2(IP:192.168.50.142)造形は、

SERVER1(:192.168.50.155 IP)です。

kafka/config/zookeeper.properties

dataDir=/tmp/zookeeper 
clientPort=2181 
maxClientCnxns=0 

`

カフカ/設定/ server.properties '

broker.id=0 
listeners=PLAINTEXT://0.0.0.0:9092 
num.io.threads=8 
socket.send.buffer.bytes=102400 
socket.receive.buffer.bytes=102400 
socket.request.max.bytes=104857600 
log.dirs=/tmp/kafka-logs 
num.partitions=1 
num.recovery.threads.per.data.dir=1 
log.retention.hours=168 
log.segment.bytes=1073741824 
log.retention.check.interval.ms=300000 
log.cleaner.enable=false 
zookeeper.connect=localhost:2181 
zookeeper.connection.timeout.ms=6000 
broker.id=0 
port=9092 
log.dir=/tmp/kafka-logs-1 
delete.topic.enable=true 

`

kafka.config/consumer.properties '

zookeeper.connect=127.0.0.1:2181 
zookeeper.connection.timeout.ms=6000 
group.id=test-consumer-group 

`

kafka_2.11-0.9.0.0 java 1.8.0_60 ノードv4.4。4

設定を変更する必要がありますか?助けてください。

+0

2番目のエラーメッセージに間違いがあります(kafkaプロデューサ - > kafka broker) –

答えて

0

プロデューサーの設定が正しくないようです。あなたはserver.propertiesは、適切な設定値をファイルと/ etc/hostsファイルは、IPにあなたのマシンを解決するためのファイルを更新するために変更する必要があり

カフカ/設定/ producer.properties

bootstrap.servers=192.168.50.142:9092 
key.serializer=org.apache.kafka.common.serialization.StringSerializer 
value.serializer=org.apache.kafka.common.serialization.StringSerializer 
+0

お返事ありがとうございます。 プロデューサがテキストを送信し、エラーログ: 'test [2016-05-26 11:23:33,162]エラーメッセージをトピックに送信しているときにエラーが発生しました。キー付きtwitter:null、値:エラーのある4バイト:60000ミリ秒後にメタデータを更新できませんでした。 (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) ' –

+0

多くのログがなければ、バグを見つけるのは難しいです。基本的には、ZookeeperとKafka Brokerをserver2で起動する必要があります。そして、server1からプロデューサを接続します。 –

+0

Kafkaのドキュメントで[クイックスタート](http://kafka.apache.org/documentation.html#quickstart)を実行し、記載されている手順に従うことをお勧めします。 –

0

0

server.propertiesで次のように変更します。

listeners=PLAINTEXT://:9092 
  • に2番目の行は、この行を追加します

    1. 変更を:

      advertised.listeners=PLAINTEXT://192.168.50.142:9092 
      

      この行は、このために必要とされていますブローカがコンシューマとプロデューサにアドバタイズするホスト名とポートです。別のマシンにプロデューサーがいるので、このラインが必要です。

    ターミナルで任意のコマンドを書いている間、この作品

    <command> --zookeeper localhost:2181 <rest of it> 
    

    希望を使用しています。