Flink `/ bin / sql -client.sh` выдает NoSuchMethodError при чтении из Кафки - PullRequest
0 голосов
/ 02 апреля 2020

При попытке прочитать из Kafka topi c, закодированного в Avro, Flink выдает ошибку NoSuchMethodError:

./bin/sql-client.sh embedded -e environment.yml -l /opt/flink-1.10.0/library
[...]
Flink SQL> select * from VideoLabeled limit 10;
[ERROR] Could not execute SQL statement. Reason:
java.lang.NoSuchMethodError: org.apache.flink.streaming.connectors.kafka.internals.metrics.KafkaMetricWrapper.<init>(Lorg/apache/kafka/common/Metric;)V

Это банки, которые я добавил в /opt/flink-1.10.0/library:

avro-1.9.1.jar
flink-avro-1.10.0.jar
flink-avro-1.10.0-sql-jar.jar
flink-cep_2.12-1.10.0.jar
flink-connector-kafka_2.12-1.10.0.jar
flink-sql-connector-kafka_2.12-1.10.0.jar
flink-table-common-1.10.0.jar
jackson-annotations-2.10.3.jar
jackson-core-2.10.3.jar
jackson-databind-2.10.3.jar
kafka-clients-0.10.2.1.jar

Я, наверное, перепутал версии этих библиотек, но не могу понять, какие мне использовать. В документах говорится, что они должны быть «готовыми к использованию JAR-пакетами», но мне пришлось добавить, например, библиотеки Джексона, чтобы исправить NoClassDefFoundError s.

Какой правильный набор банок будет исправлять NoSuchMethodError при чтении сообщений Kafka Avro с sql-client.sh?

Редактировать 2020-04-03:

Удаление flink-avro-1.10.0.jar и flink-connector-kafka_2.12-1.10.0.jar устраняет эту ошибку, но дает ошибку десериализации :

Flink SQL> select * from VideoLabeled limit 10;
[ERROR] Could not execute SQL statement. Reason:
org.apache.avro.AvroRuntimeException: Malformed data. Length is negative: -1
...