Flink sql使用遇到的问题mark
遇到了类似的问题:
报错信息:
Caused by: org.apache.flink.table.api.ValidationException: Could not find any factory for identifier ‘kafka’ that implements ‘org.apache.flink.table.factories.DynamicTableSourceFactory’ in the classpath.
Available factory identifiers are:
datagen
at org.apache.flink.table.factories.FactoryUtil.discoverFactory(FactoryUtil.java:240)
at org.apache.flink.table.factories.FactoryUtil.getDynamicTableFactory(FactoryUtil.java:326)
… 33 more
链接:http://apache-flink.147419.n8.nabble.com/Could-not-find-any-factory-for-identifier-kafka-td5414.html
我遇到这个的原因是将Flink streaming 代码 跟 Flink sql代码放入了一个项目,解决办法就是拆开2个项目:
Flink streaming 代码依赖:
Flink sql代码依赖:
在服务起Flink lib下面不需要放入 下面2个包,如果同时放入这2个包,只能执行sql代码,不能执行streaming代码
flink-connector-kafka_2.11-1.11.2.jar
flink-sql-connector-kafka_2.11-1.11.2.jar
==================================================================================================
我们在自定义table connector之后会遇到类似下面的问题 。
原因:因为Flink 加载 table Factory 使用的时SPI机制,而正常的flink jar包是不包含META-INF.services 路径的,需要自己去添加
org.apache.flink.table.factories.TableFactory
1,Caused by: java.lang.NoClassDefFoundError: org/apache/hadoop/fs/Path
原因:Flink找不到hadoop环境,要么在环境变量配置:
要么在flink lib下添加包(1.11以后不推荐):
flink-shaded-hadoop-3-uber
还没有评论,来说两句吧...