Flink概念图

本文详述了Flink从v1.7到v1.11的版本变化,涵盖State、配置、Table API、连接器等多个方面,并着重介绍了Flink对Hive支持的逐步增强,包括HiveCatalog、SQL DDL支持和向量化读取等特性。
摘要由CSDN通过智能技术生成

因为网上大部分图都很渣所以自己整理了几张原创图,划清清浊

Flink v1.7

  • 支持scala2.12版本

  • 状态中序列化类演变

    • TypeSerializerSnapshot替换TypeSerializerConfigSnapshot

  • 删除legacy mode

  • Savepoints可用于恢复

    • 之前,当使用一次精确的接收器时,如果在执行保存点之后,在下一个savepoint出现之前发生故障,则可能会遇到重复输出数据的问题。

  • MetricQueryService在单独的线程池中运行

  • 延迟指标的粒度

  • 延迟标记激活

  • 迁移Hadoop的依赖项

  • 支持多槽TaskManager

  • StandaloneJobClusterEntrypoint生成具有固定JobID的JobGraph

  • Scaca shell不支持scala2.12

  • 故障转移策略的限制

  • Window之前SQL子句可选

  • OperatorSnapshotUtil写入v2快照

  • SBT Project 和 MiniClusterResource

    • 如果使用sbt构建的项目需要使用MiniClusterResource,需要配置flink-runtime依赖jar

Flink v1.8

State

  • 使用TTL连续增量清理旧的Keyed State

  • 恢复Savepoints时支持新的模式迁移

  • savepoint兼容性

    • 兼容1.3至1.7版本

  • RocksDB版本自定义并切换到FRocksDB

Maven Dependencies

  • Flink中不再自动绑定Hadoop依赖

    • Flink不再绑定Hadoop库,如需依赖,手动下载hadoop jar,并将其复制$FLINK_HOME/lib目录中

Configuration

  • TaskManager配置

    • TaskManagers默认绑定到主机IP地址而不是主机名

    • 可以再flink-conf.yaml文件中,通过配置选项控制:taskmanager.network.bind-policy

Table API

  • 弃用直接使用Table构造函数用法

    • 使用 table.joinLateral()table.leftOuterJoinLateral()代替

  • 引入新的CSV格式描述符

  • 在TableEnvironment上弃用静态生成器方法

    • TableEnvironment.getTableEnvironment()不建议使用静态方法,使用Batch/StreamTableEnvironment.create()

  • 更改Table API的maven模块

    • java语言使用flink-table-api-java-bridge,scala语言使用flink-table-api-scala-bridge

  • 更改外部目录表构建器

    • 不推荐使用ExternalCatalogTable.builder(),推荐使用ExternalCatalogTableBuilder()

  • 更改Table API连接器jar的命名

    • 使用maven构建jar依赖时,不再具有sql-jar限定符,并且artifactId现在以flink-sql代替flink,例如 flink-sql-connector-kafka

  • 更改制定Null字面含义

    • 需要使用Table API定义Null字面含义,nullOf(type),而不是Null(type)

Connectors

  • 引入新的KafkaDeserializationSchema,可以直接访问ConsumerRecord

  • FlinkKafkaConsumer将根据主题规范过滤还原分区

Miscellaneous Interface Changes(更改容冗余接口)

  • 从TypeSerializer接口中删除了canEqual()方法

  • 删除CompositeSerializerSnapshot实用程序类

Memory Management

  • 在Fink 1.8.0和更低版本中,taskmanager的托管内存部分由进行控制taskmanager.memory.fraction,并且默认值为0.7。但是,有时由于JVM参数NewRatio的默认值为2,这将导致OOMs ,这意味着旧版本仅占用堆内存的2/3(0.66)。因此,如果遇到这种情况,请手动将此值更改为较低的值。

Flink v1.9

SQL DDL

  • 在Flink 1.9.0中,社区还添加了有关SQL DDL的预览功能,但仅适用于批处理样式DDL。因此,尚不支持所有与流有关的概念ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值