尚硅谷Flink1.17问题记录
- 上手
- pom依赖循环递归
- WordCountStreamDemo中readTextFile是deprecated(强烈反对的)
- Flink本地模式开启WebUI
上手
pom依赖循环递归
pom依赖中:
<dependency><groupId>org.apache.flink</groupId><artifactId>flink-streaming-java</artifactId><version>${flink.version}</version></dependency>
- 飘黄:Transitive Uncontrolled Recursion vulnerability with High severity found
- 在Setting->Editor->Inspections->Security->Vulnerable declared dependency 关闭勾选
(“Transitive Uncontrolled Recursion” vulnerability with high severity 是一种安全漏洞,通常发生在应用程序中递归调用不受控制的情况下。这类漏洞可能导致栈溢出或拒绝服务(DoS)攻击,因为递归调用会占用大量内存和处理器资源。
要彻底解决此问题,可以尝试替换安全的依赖版本,我与教程保持一致没有替换,防止后续bug。)
WordCountStreamDemo中readTextFile是deprecated(强烈反对的)
- 我使用的JDK17报错无法运行:Unable to make field private final byte[] java.lang.String.value accessible: module java.base does not “opens java.lang” to unnamed module @4b4523f8
- 这个错误提示表明在尝试使用反射访问 java.lang.String 类的 value 字段时遇到了问题。这是由于Java的模块系统(Java 9及以上版本引入的模块系统)引起的。
- 退回了JDK8可以运行成功。
(从 Java 17 开始,模块系统对反射的限制更加严格。如果你正在使用较新的 Java 版本,考虑更新代码或库,以便兼容新的模块系统。)
Flink本地模式开启WebUI
参考链接:https://cloud.tencent.com/developer/article/2260417
无法开启解决方案:https://blog.csdn.net/Johnson8702/article/details/116747951
启动本地WebUI:
// 本地模式Configuration conf = new Configuration();// 指定端口conf.setString(RestOptions.BIND_PORT, "8082-8089");final StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(conf);// 非本地模式
// final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
pom依赖:
<dependency><groupId>org.apache.flink</groupId><artifactId>flink-runtime-web</artifactId><version>${flink.version}</version>
<!-- <scope>provided</scope>--></dependency>
有scope,访问UI显示:{“errors“:[“Not found.“]}
删除scope,重新启动项目,查看web界面,显示正常。
(scope标签详解:https://blog.csdn.net/yiguang_820/article/details/118214839#:~:text=%E5%9C%A8Maven%E7%9A%84pom)