vertica与apache kafka的整合出现错误

问题描述 投票:0回答:1

我在一台主机上安装了vertica 9.3,在第二台主机上安装了apache kafka,我想把vertica和apache kafka(2.4.0)整合起来。我想把vertica和apache kafka(2.4.0)整合起来。我按照官方的vertica指南进行了配置,但是,当我尝试制作源码时,我得到错误信息:"vertica与apache kafka(2.4.0)集成"。

 vkconfig source --create --cluster kafka_weblog --source test --partitions 1 --conf /opt/vertica/packages/kafka/config/my.conf

我得到了一个错误。

Exception in thread "main" com.vertica.solutions.kafka.exception.ConfigurationException: ERROR: [[Vertica][VJDBC](5861) ERROR: Error calling processPartition() in User Function KafkaListTopics at [/data/qb_workspaces/jenkins2/ReleaseBuilds/Grader/REL-9_3_1-x_grader/build/udx/supported/kafka/KafkaUtil.cpp:163], error code: 0, message: Error getting metadata: [Local: Broker transport failure]]
        at com.vertica.solutions.kafka.model.StreamSource.validateConfiguration(StreamSource.java:248)
        at com.vertica.solutions.kafka.model.StreamSource.setFromMapAndValidate(StreamSource.java:194)
        at com.vertica.solutions.kafka.model.StreamModel.<init>(StreamModel.java:93)
        at com.vertica.solutions.kafka.model.StreamSource.<init>(StreamSource.java:44)
        at com.vertica.solutions.kafka.cli.SourceCLI.getNewModel(SourceCLI.java:62)
        at com.vertica.solutions.kafka.cli.SourceCLI.getNewModel(SourceCLI.java:13)
        at com.vertica.solutions.kafka.cli.CLI.run(CLI.java:59)
        at com.vertica.solutions.kafka.cli.CLI._main(CLI.java:141)
        at com.vertica.solutions.kafka.cli.SourceCLI.main(SourceCLI.java:29)
Caused by: java.sql.SQLNonTransientException: [Vertica][VJDBC](5861) ERROR: Error calling processPartition() in User Function KafkaListTopics at [/data/qb_workspaces/jenkins2/ReleaseBuilds/Grader/REL-9_3_1-x_grader/build/udx/supported/kafka/KafkaUtil.cpp:163], error code: 0, message: Error getting metadata: [Local: Broker transport failure]
        at com.vertica.util.ServerErrorData.buildException(Unknown Source)
        at com.vertica.dataengine.VResultSet.fetchChunk(Unknown Source)
        at com.vertica.dataengine.VResultSet.initialize(Unknown Source)
        at com.vertica.dataengine.VQueryExecutor.readExecuteResponse(Unknown Source)
        at com.vertica.dataengine.VQueryExecutor.handleExecuteResponse(Unknown Source)
        at com.vertica.dataengine.VQueryExecutor.execute(Unknown Source)
        at com.vertica.jdbc.common.SPreparedStatement.executeWithParams(Unknown Source)
        at com.vertica.jdbc.common.SPreparedStatement.executeQuery(Unknown Source)
        at com.vertica.solutions.kafka.model.StreamSource.validateConfiguration(StreamSource.java:227)
        ... 8 more
Caused by: com.vertica.support.exceptions.NonTransientException: [Vertica][VJDBC](5861) ERROR: Error calling processPartition() in User Function KafkaListTopics at [/data/qb_workspaces/jenkins2/ReleaseBuilds/Grader/REL-9_3_1-x_grader/build/udx/supported/kafka/KafkaUtil.cpp:163], error code: 0, message: Error getting metadata: [Local: Broker transport failure]

如果我显示表 weblog_sched.stream_clusters,那么就有 localhost:9092 列中的hosts,但不是我的kafka服务器的ip-address (192.168.0.8),尽管我在创建集群时指定了kafka服务器的地址。

vkconfig cluster --create --cluster kafka_weblog --hosts 192.168.0.8:9092 --conf /opt/vertica/packages/kafka/config/my.conf

为什么会这样?(我认为,这个错误是与在 weblog_sched.stream_clusters)

apache-kafka vertica
1个回答
0
投票

有几个方法可以调试这个问题。

  1. 试试 telnet 192.168.0.8 9092. 如果你能够通过telnet连接,那么这个端口是开放的,Kafka正在运行,并且可以从你执行telnet命令的地方访问。如果你不能通过telnet连接,那么你可以试试这个。

    1. 检查你的防火墙或iptables规则,并允许在该机器上使用9092端口。iptables -A INPUT -p tcp --dport 9092 -j ACCEPT
    2. 如果你仍然无法访问它,请尝试在你的系统防火墙中禁用或允许该端口(如ufw,firewalld)等。
  2. 检查你的 advertised.listeners 经纪人配置。确保您已将其设置为 PLAINTEXT://192.168.0.8:9092 如果你使用的是PLAINTEXT)。这很可能会解决你的问题。


0
投票

请确保将Kafka主机添加在 /etc/hosts 文件的Vertica Cluster。这个问题应该可以解决。如果是这种情况,那么这意味着您的 advertised.listeners 已被错误配置。


硬编码的主机在 /etc/hosts 绝对不是最好的方法。你必须修复你的 advertised.listeners 作为一个更持久的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.