【问题标题】:How can I bulk queue kafka messages to clickhouse如何将 kafka 消息批量排队到 clickhouse
【发布时间】:2018-05-05 01:24:03
【问题描述】:

我正在尝试按照官方网页https://clickhouse.yandex/docs/en/table_engines/kafka.html 的步骤将 Streaming queue kafka 批量发送到 clickhouse,但无法使其正常运行。

我检查了kafka configuration,没关系,因为我已经为这个队列创建了一个馈送器,并且我已经将zookeeper's hostport 添加到clickhouse configuration

例如,来自eclipse的句子是:

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() 的结果总是 false 并且没有异常。

有什么想法吗?

谢谢, 亲切的问候。

【问题讨论】:

    标签: clickhouse


    【解决方案1】:

    您可以尝试通过命令行 clickhouse-client 运行您的查询吗 在clickhouse节点上? cliclhouse-client -c "CREATE TABLE IF NOT EXISTS test.clickhouseMd5 (st1 String,st2 String, st3 String) ENGINE = Kafka('node2:2181', 'TestTopic', 'testConsumerGroup', 'JSONEachRow')"

    【讨论】:

    • 嗨,我在 Kafka 队列中写入消息时尝试过,查询正常,但不要在 clickhouse 表中写入记录。谢谢。
    • 你能在clickhouse服务器上运行tcpdump -i any -w kafka_wtf.pcap port 2181,然后你向kafka发送消息尝试在clickhouse-client中运行查询吗?捕获任何东西? telnet node2 2181 工作正常吗?
    • 抱歉最近回复,我试过你说的两个命令,都运行正常,但问题仍然存在。当我在 kafka 队列中写入时,使用命令 'tcpdump -i any -w kafka_wtf.pcap port 2181',总是捕获相同的 xxxx 字节,但不再捕获。非常感谢您的帮助。
    【解决方案2】:

    您使用端口 2181,这是 zookeeper 的默认端口。 但是根据您提到的文档 (https://clickhouse.yandex/docs/en/table_engines/kafka.html),您应该在第一个参数中指定一个以逗号分隔的代理列表 (localhost:9092)。

    另请注意,它可能不适用于旧 Kafka 版本。例如 0.9.0.1。在这个版本中,CREATE TABLE 命令返回 OK。但在 kafka 日志中,我有类似“错误处理器未捕获异常”之类的错误。 (kafka.network.Processor) java.lang.ArrayIndexOutOfBoundsException: 18'.

    但是使用最新的 Kafka 0.11.0.2 对我来说效果很好。

    【讨论】:

    • 你是对的,但我尝试了不同的端口(代理端口、zookeeper 端口..等),因为我在默认端口中没有代理,但没有办法。感谢您的帮助。
    猜你喜欢
    • 2021-04-24
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-01
    • 1970-01-01
    • 2018-02-18
    • 2019-12-15
    相关资源
    最近更新 更多