Flink1.17为什么需要JDK 11呢?JDK8我试了也能运行
虽然您在使用 JDK 8 运行 Flink 1.17 时没有遇到任何问题,但 Flink 官方推荐使用的 Java 版本是 JDK 11。这是因为从 Flink 1.17 开始,部分依赖于 Flink 的第三方库已经弃用了对 JDK 8 的支持,并要求使用 JDK 11 或更高版本。
此外,JDK 11 在性能、稳定性以及新特性和 API 方面较之 JDK 8 都有所改进,因此 Flink 官方建议用户尽可能使用最新版的 Java 来运行 Flink 应用程序。同时,请注意在安装和配置过程中选择正确的 Java 版本以避免可能出现的问题。
当然,您也可以继续使用 JDK 8 运行 Flink 1.17,但是可能会出现一些未知的问题或潜在风险,所以建议尽量遵循官方推荐的做法,升级至 JDK 11 或更高版本。
虽然 Flink 1.17 支持 JDK 8 和更高版本,但是 Flink 官方推荐使用 JDK 11。这是因为 Flink 依赖的一些第三方库(如 Arrow)要求使用 JDK 11。
此外,JDK 11 还引入了很多新的特性和改进,可以更好地支持 Flink 的特性。例如,JDK 11 提供了更加稳定和高效的垃圾回收机制,以及增强的并行 GC 功能。因此,使用 JDK 11 可以为 Flink 提供更好的性能。
另外,JDK 8 已经不再受到 Oracle 的维护和支持,这意味着一旦出现问题,Oracle 不再发布安全更新或补丁。因此,使用 JDK 8 可能存在安全风险。相反,JDK 11 得到了长期的支持,可以在更长的时间内保持安全可靠。
Apache Flink官方文档明确指出,Flink 1.17版本需要Java 11环境才能运行。这可能是因为Flink 1.17在开发和测试过程中使用的是Java 11,因此为了保证兼容性和稳定性,建议使用Java 11运行Flink 1.17。虽然你提到JDK 8也能运行,但这可能是因为某些功能在JDK 8下仍然可以正常工作,但并不保证所有功能都能正常实现,也不保证程序的稳定性和安全性。因此,为了保证你的Flink应用能够正常运行并避免潜在的风险,建议使用Java 11作为运行环境。
是 flink 同时兼容 jdk 11 和jdk 8 ,而 jdk 8 的兼容最终会被移除,新发布的 1.18 已经兼容 jdk 17 了。此回答整理自钉群“【②群】Apache Flink China社区”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。