интеграция vertica с ошибкой apache kafka - PullRequest
1 голос
/ 04 мая 2020

Не могли бы вы помочь мне решить следующую проблему? У меня установлена ​​vertica 9.3 на одном хосте и установлена ​​apache kafka на втором хосте. Я хочу интеграцию vertica с apache kafka (2.4.0). Я настраиваюсь по официальному руководству vertica, но, когда я пытаюсь сделать источник:

 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, но не мой ip-адрес моего сервера kafka (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)

Ответы [ 2 ]

0 голосов
/ 04 мая 2020

Есть несколько способов отладки этого ..

  1. Попробуйте telnet 192.168.0.8 9092. Если вы можете набрать te lnet, то порт открыт, и Kafka работает и доступен из того места, где вы выполняете команду te lnet. Если вы не можете подключиться через te lnet, попробуйте это ..

    1. Проверьте правила брандмауэра или iptables и разрешите порт 9092 на этом компьютере. Пример: iptables -A INPUT -p tcp --dport 9092 -j ACCEPT
    2. Если вы все еще не можете получить к нему доступ, попробуйте отключить или разрешить этот порт в брандмауэре в вашей системе (например, ufw, firewalld) et c '
  2. Проверьте конфигурацию вашего брокера advertised.listeners. Убедитесь, что вы установили его на PLAINTEXT://192.168.0.8:9092 (если вы используете PLAINTEXT). Скорее всего, это может решить вашу проблему.

0 голосов
/ 04 мая 2020

Обязательно добавьте хосты Kafka в /etc/hosts файл Vertica Cluster. Вопрос должен быть решен. Если это так, то это означает, что ваши advertised.listeners были настроены неправильно.


Жесткое кодирование ваших хостов под /etc/hosts определенно не лучший подход. Вы должны исправить свой advertised.listeners как более постоянное решение.

...