Flink 1.10 是迄今为止规模最大的一次版本升级,除标志着 Blink 的合并完成
外,还实现了 Flink 作业的整体性能及稳定性的显著优化, 非常适合数据实时处理及海量批处理。
Hive相关
● 支持读写静态分区和动态分区表。
● 在表级别和分区级别都支持 INSERT OVERWRITE。
● 支持了更多数据类型。(除 UNION 类型都支持)
● 支持更多的 DDL。(CREATE TABLE/DATABASE)
● 支持在 Flink 中调用 Hive 的内置函数。(Hive 大约 200 多个内置函数)
● 支持了更多的 Hive 版本。(Hive 的 1.0.0~3.1.1)
● 做了很多性能优化如,Project/Predicate Pushdown,向量的读取 ORC 数
据等。
● 通过Module用户可以使用多种外部系统函数,目前 Module 有两个实现,CoreModule 提供了Flink原生的内置函数,HiveModule 提供了 Hive 的内置函数,先加载的 Module 会提供 Function 的定义。
Batch Sql
-
特点:
● 容错好,可以单点恢复
● 调度好,不管多少资源都可以运行
● 性能差,中间数据需要落盘,强烈建议开启压缩 -
配置
#开启压缩
taskmanager.network.blocking-shuffle.compression.enabled = true
#提高重启间隔时间
restart-strategy.fixed-delay.delay = 30 s
#故障转移策略
jobmanager.execution.failover-strategy = region
#Session 模式可以跨作业复用进程。加大 TaskManager 的超时释放,复用闲置的进程资源
resourcemanager.taskmanager-timeout = 900000
- 使用 Blink planner 创建Batch Sql
TableEnvironment tEnv = TableEnvironment.create(EnvironmentSettings
.newInstance()
.useBlinkPlanner()
.inBatchMode()
.build());
#切换到hive catalog
tEnv.registerCatalog("hive", hiveCatalog);
tEnv.useCatalog("hive");
其它
- Flink 和 Blink 的整合正式完成
- Flink on Yarn 支持Session模式,支持跨作业复用Job资源
- Flink 对 K8S 环境的原生支持
- PyFlink 增加了原生 UDF 支持
- 支持创建临时函数,程序退出即销毁
- 默认Shuffle 的压缩
- 基于新调度框架的优化 (FLINK-14735)
- 基于比例的弹性内存分配,使得内存利用更加合理
- 对管理页面进行优化调整
网友评论