尝试将Flink1.9SQL客户端与kafka一起使用,但没有成功。在弄清楚所需的jar文件并将其复制到lib目录之后,在执行select*from table name时出现以下运行时异常:
Flink SQL> select * from default_catalog.default_database.member_customer_newsletters ;
[ERROR] Could not execute SQL statement. Reason:
java.lang.ClassNotFoundException: org.apache.kafka.clients.consumer.ConsumerRecord
执行jar文件的jar-tf,我可以看到类consumerrecord在那里:
jar -tf ./lib/flink-sql-connector-kafka-0.11_2.12-1.9.0.jar|grep 'ConsumerRecord'
org/apache/flink/kafka011/shaded/org/apache/kafka/clients/consumer/ConsumerRecord.class
所以,我不知道为什么它要显示classnotfoundexception,因为这个类已经在jar文件中了?
我只需要添加一个运行时来查找“org.apache.kafka.clients.consumer.consumerrecord”,但是因为这个jar文件是着色的,所以类的完整限定名是“org.apache.flink.kafka011.shaded.org.apache.kafka.clients.consumer.consumerrecord.class”
但是,这个着色jar中的任何其他类也应该如此!
1条答案
按热度按时间zbq4xfa01#
有两种不同的类别:
在
flink-sql-connector-kafka-0.11_2.12-1.9.0.jar
,你找到了班级当Flink抱怨:
第一个类是flink内部使用的类,在kafka的一种复制粘贴之后。
第二个是一个班级
kafka-clients-0.11.0.2.jar
.所以Flink抱怨图书馆不见了是对的。