Apache Flink 1.16:批流融合升级与关键特性概览

需积分: 16 1 下载量 58 浏览量 更新于2024-08-04 收藏 1.39MB PDF 举报
Apache Flink 1.16 是一个重要的分布式流处理和批处理框架,由Apache软件基金会维护。这次版本更新在多个方面展现了显著的改进,包括易用性、稳定性和性能。以下是1.16版的一些关键特性与改进: 1. **批处理增强**:Apache Flink 1.16 提供了批处理的全面优化,提升了易用性。新引入的SQL Gateway 支持多租户,并且采用协议插件化设计,兼容Hive生态系统,Hive查询的兼容性高达94%。此外,AdaptiveBatchScheduler 可以自动调整并发度,而 SpeculativeExecution 功能解决了长尾任务的问题,提高了批处理任务的稳定性。 2. **流处理优化**:针对流处理,Flink 1.16 提供了多项完善,例如Changelog State Backend 已经进入生产可用阶段,提供了更高效的数据处理能力。同时,Log处理也得到了改进,使得数据处理更为顺畅。 3. **存储解决方案**:TableStore 的引入使得Flink能够统一API、计算和存储,对于数据仓库和日志管理提供了新的解决方案。Streaming Warehouse 和 Binlog 等工具支持实时数据转换和持久化,便于数据的分析和监控。 4. **状态存储升级**:RocksDBStateBackend 的性能大幅提升,ScaleUp速度提高了2-10倍,同时提供了更丰富的运维指标。此外,固定增量Checkpoint 实现了秒级或亚秒级延迟,减少了数据回放,提升了故障恢复速度。 5. **PyFlink的扩展**:Python API 的覆盖率达到了95%以上,新增了window、sideoutput、broadcaststate等功能,增强了对内置Connector的支持,使得Python开发者能更方便地使用Flink进行数据分析。 6. **中国团队贡献**:中国团队对1.16版本的贡献巨大,贡献了超过80%的主要功能和代码,显示出中国社区在Flink开发中的重要作用。 7. **TaskManager和Slot优化**:TaskManager 的资源管理得到了改进,支持Slot配置的缓冲区透支,有助于加速UnalignedCheckpoint的完成,提升了整体性能。 Apache Flink 1.16是一个重要的里程碑,它不仅增强了现有功能的稳定性和性能,还引入了新的组件和技术,为用户提供了更加统一、高效的大数据处理环境。对于那些依赖Flink进行实时和批量数据处理的开发者和企业来说,这是一个值得期待的更新。
2023-06-02 上传

Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.flink.table.planner.plan.rules.FlinkStreamRuleSets$ at org.apache.flink.table.planner.plan.optimize.program.FlinkStreamProgram$.buildProgram(FlinkStreamProgram.scala:56) at org.apache.flink.table.planner.plan.optimize.StreamCommonSubGraphBasedOptimizer.$anonfun$optimizeTree$1(StreamCommonSubGraphBasedOptimizer.scala:158) at scala.Option.getOrElse(Option.scala:121) at org.apache.flink.table.planner.plan.optimize.StreamCommonSubGraphBasedOptimizer.optimizeTree(StreamCommonSubGraphBasedOptimizer.scala:158) at org.apache.flink.table.planner.plan.optimize.StreamCommonSubGraphBasedOptimizer.doOptimize(StreamCommonSubGraphBasedOptimizer.scala:83) at org.apache.flink.table.planner.plan.optimize.CommonSubGraphBasedOptimizer.optimize(CommonSubGraphBasedOptimizer.scala:77) at org.apache.flink.table.planner.delegation.PlannerBase.optimize(PlannerBase.scala:287) at org.apache.flink.table.planner.delegation.PlannerBase.translate(PlannerBase.scala:160) at org.apache.flink.table.api.internal.TableEnvironmentImpl.translate(TableEnvironmentImpl.java:1329) at org.apache.flink.table.api.internal.TableEnvironmentImpl.executeInternal(TableEnvironmentImpl.java:676) at org.apache.flink.table.api.internal.StatementSetImpl.execute(StatementSetImpl.java:98) at com.dtstack.chunjun.util.SqlTaskUtil.executeSql(SqlTaskUtil.java:117) at com.dtstack.chunjun.util.SqlTaskUtil.executeSqlJob(SqlTaskUtil.java:97) at com.dtstack.chunjun.Main.main(Main.java:59) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:366) at org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:235) at org.apache.flink.client.program.PackagedProgramUtils.getPipelineFromProgram(PackagedProgramUtils.java:158) ... 14 more

2023-06-09 上传