2017-11-21 8 views
0

公式ウェブページhttps://clickhouse.yandex/docs/en/table_engines/kafka.htmlの手順に従って、ストリーミングキューkafkaをclickhouseに一括して送信しようとしています。kafkaメッセージをクリックハウスに一括してキューに入れるには

私はkafka configurationをチェックしましたし、私はこのキューのフィーダーを作成したと私はclickhouse configurationzookeeper's hostportに追加したので、それは大丈夫です。例えば

、日食の文は次のとおりです。

System.out.println(ck.connection.createStatement().execute("CREATE TABLE IF NOT EXISTS test.clickhouseMd5 ("st1 String," + "st2 String," + "st3 String) ENGINE = Kafka('node2:2181', 'TestTopic', 'testConsumerGroup', 'JSONEachRow')")); 

System.out.println()の結果は常にで、例外はありません。

アイデア?

ありがとう、 種類です。

答えて

0

clickhouseノードのコマンドラインclickhouse-client でクエリを実行できますか? cliclhouse-client -c "CREATE TABLE IF NOT EXISTS test.clickhouseMd5 (st1 String,st2 String, st3 String) ENGINE = Kafka('node2:2181', 'TestTopic', 'testConsumerGroup', 'JSONEachRow')"

+0

こんにちは、私はカフカのキューにメッセージを書き込んでいて、クエリはOKですが、クリックハウステーブルにはレコードを書きません。ありがとうございました。 – David

+0

clickhouse-serverで '' 'tcpdump -i any -w kafka_wtf.pcap port 2181'''を実行してもかまいませんか? その後kafkaにメッセージを送信している間にclickhouse-clientでrunnクエリを試してみませんか? anyphingキャプチャ? '' 'telnet node2 2181'''はうまく動作しますか? – Slach

+0

最近申し訳ありませんが、私はあなたが言った2つのコマンドを試してみましたが、どちらも問題なく動作しています。私がkafkaキューに書き込んでいるときに 'tcpdump -i any -w kafka_wtf.pcap port 2181'コマンドを使用すると、常に同じxxxxバイトをキャプチャします。あなたの助けに感謝します。 – David

0

あなたはzookeeperのデフォルトポートであるポート2181を使用します。 あなたが言及したドキュメント(https://clickhouse.yandex/docs/en/table_engines/kafka.html)によれば、第1引数には、ブローカのカンマ区切りリスト(localhost:9092)を指定する必要があります。

古いカフカバージョンでは機能しない可能性があります。たとえば、0.9.0.1となります。このバージョンでは、CREATE TABLEコマンドはOKを返します。しかし、kafkaログには、 'ERROR'のようなエラーがあります。 (kafka.network.Processor)java.lang.ArrayIndexOutOfBoundsException:18 '

最新のKafka 0.11.0.2ではうまく動作します。

+0

あなたは正しいですが、私はデフォルトポートにブローカーを持っていないので、異なるポート(ブローカーポート、動物園ポート..など)を試しましたが、方法はありません。ご協力いただきありがとうございます。 – David

関連する問題