flink开发遇到的问题总结
问题1:
Exception in thread "main" org.apache.flink.table.api.NoMatchingTableFactoryException:
Could not find a suitable table factory for 'org.apache.flink.table.factories.TableSinkFactory' in the classpath.
org.apache.flink.table.factories.TableSinkFactory 在如下依赖里面可以找到:
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-common</artifactId>
<version>1.10.0</version>
<scope>provided</scope>
</dependency>
参考:https://blog.csdn.net/zpf_940810653842/article/details/101056212
解决:
(1)在 https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/dev/table/connectors/jdbc.html 中搜索 flink-connector-jdbc_2.11,然后下载下来后单独添加到idea的jar依赖中。
或者:
(2)导入如下依赖:
<!-- 使用 tableEnv.connect 连接外部系统格式化数据时连接jdbc所需 -->
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-jdbc_2.11</artifactId>
<version>1.10.0</version>
</dependency>
问题2:
Sun Nov 29 01:07:23 CST 2020 WARN: Establishing SSL connection without server's identity verification is not recommended.
According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set.
For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'.
You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
解决:
connector.url' = 'jdbc:mysql://localhost:3307/test?characterEncoding=utf-8&useSSL=false'