一、类加载顺序问题,flink默认是child-first。
[ERROR] Could not execute SQL statement. Reason:
java.io.StreamCorruptedException: unexpected block data
- 在flink的flink-conf.yaml文件中添加classloader.resolve-order: parent-first 改成parent-first,重启集群即可
二、 线程池连接数不够
Connection is not available, request timed out after 30000ms.
- 在sourc源的with中设置连接池大小,设置后需重启flink才能生效,且第一个sql设置即可,后面的会复用
'connection.pool.size'='50'
三、 stop-cluster.sh无法正常关闭
- Flink运行一段时间后,通过命令stop-cluster.sh无法正常关闭,提示:
No taskexecutor daemon to stop on host xxx.
No standalonesession daemon to stop on host xxx.
-
原因:flink启动是会把启动的进程的ID存到一个文件中,由于配置不修改的话文件默认是保存到系统的/tmp目录下,由于是临时目录,会被系统清理,所以存放的ID就找不到了,也就没法关闭集群了
-
解决方案:修改FLINK_HOME/bin/目录的config.sh文件,将DEFAULT_ENV_PID_DIR="/tmp"改为:DEFAULT_ENV_PID_DIR的位置修改到一个合适的位置。kill之前的集群重新启动