当前位置: 首页 > news >正文

Flink1.14.2发布,除了log4j漏洞你还需要关注什么?

Flink1.14.2 Release版本已经、发布,主要是修复了Log4j导致的可执行任意代码的漏洞问题,但是还有一些非常重要的功能更新。

我挑了其中比较重要的列出来。

flink-pulsar-connector导致的OOM问题

Pulsar客户端在底层使用的 Netty 在 Java 11 和 Java 8 上分配内存的方式不同。在Java 11 上,它将从 Java 直接内存池中分配内存,并受 MaxDirectMemory限制。当前的Pulsar客户端没有用于控制内存限制的配置选项,这可能导致OOM。

建议用户在JDK8环境下使用Pulsar连接器,或者为Flink开启足够内存。

Table API & SQL

DataStream API and Table API的pipeline name修改为一致

批处理模式下 DataStream API 程序的默认作业名称已从"Flink Streaming Job"更改为"Flink Batch Job"。可以使用配置选项"pipeline.name"设置自定义名称。

fromChangelogStream方法

与 1.13.2 相比,StreamTableEnvironment.fromChangelogStream 方法可能会产生不同的流,因为之前没有正确考虑主键。

Table#flatMap支持新的类型推断

Table.flatMap() 现在支持新的类型系统。用户可以进行功能升级。

为新的 API 方法添加 Scala 隐式转换

在 DataStream API 和 Table API 之间新增新的 Scala 隐式转换。

删除 SQL 客户端中的 YAML 环境文件支持

sql-client-defaults.yaml 文件在 1.13 版本中已弃用,现在已完全删除。作为替代方法,您可以使用 -i 启动选项来执行 SQL 初始化文件以设置 SQL 客户端会话。SQL 初始化文件可以使用 Flink DDL 来定义可用的目录、表源和接收器、用户定义的函数以及其他执行和部署所需的属性。

废弃/删除了一些API

  1. 以下 Maven 模块已重命名:

flink-table-planner-blink -> flink-table-planner
flink-table-runtime-blink -> flink-table-runtime
flink-table-uber-blink -> flink-table-uber

由于删除了 BatchTableEnvironment,BatchTableSource 和 BatchTableSink 也被删除了。请改用 DynamicTableSource 和 DynamicTableSink。

  1. TableEnvironment#connect方法删除

  2. 弃用 toAppendStream 和 toRetractStream

  3. SQL Kafka 连接器和 SQL Elasticsearch 连接器的旧版本及其相应的旧格式已被删除。'connector.type='或'format.type='变更为'connector='选项。

  4. 删除 BatchTableSource/Sink、HBaseTableSource/Sink 和相关类

  5. 删除 BatchTableSource、ParquetTableSource和相关类

  6. 删除 BatchTableSource、OrcTableSource和相关类

  7. PyFlink中删除BatchTableEnvironment和旧planner的使用

DataStream API

修复多个输入操作符的空闲处理

AbstractStreamOperator、Input 等类添加了 processWatermarkStatusX 方法。它允许在两个/多个输入操作符中组合水印时考虑 WatermarkStatus。

POJO字段上可以使用@TypeInfo注解

Connectors

暴露标准化Metrics

使用统一的 Source 和 Sink 接口的连接器将自动暴露某些标准化指标。

KafkaSink 取代了 FlinkKafkaProducer

FlinkKafkaConsumer废弃

Checkpoints

alignmentTimeout语义变更

alignmentTimeout配置的语义已经改变了含义,现在是检查点开始和任务接收到检查点屏障之间的时间。

BROADCAST 禁用未对齐检查点

广播分区不能与未对齐的检查点一起使用。因为无法保证在所有通道中以相同的速率消费数据。这可能导致某些任务应用与某个广播事件相对应的状态更改,而其他任务则不会。还原时,可能会导致状态不一致。

不在支持Apache Mesos

「Mesos is phasing out gradually and has been replaced with Kubernetes in the containerized world」。

准备和Mesos说在再见吧。

RECOMMEND

推荐阅读

af010c03718317a397d83dda5f77435b.png

01

f91be9e721ba0eef07dd7aa1794f7ab5.png

推荐理由

这是一部从源代码角度出发,通过分析Flink的各个功能模块的实现来剖析Flink的架构设计和实现原理的著作。它将能指导读者更好地对Flink进行性能调优、可用性保障、效能优化和二次开发。 
四位作者都是非常资深的Flink专家,部分作者是Flink源代码的维护者和改造者,本书总结了他们在阿里巴巴、蚂蚁集团、滴滴等企业的大规模Flink实践经验。 

5f2399fc352da164447671e63c10054b.png

02

1471583e44d8fc5ed3a3fc79579289aa.png

推荐理由

这是一本从源代码角度剖析Flink设计思想、架构原理以及各功能模块的底层实现原理的著作。

作者是Flink领域的资深技术专家和架构师,对Flink的源代码进行了深入分析和解读,同时融入了自己丰富的工程实践经验,既能让理解Flink的设计与实现原理,又能为他们解决性能优化等实际应用问题提供源码级别的指导。源码大多艰涩难懂,为了降低读者的学习门槛,本书提供了大量架构设计图、UML图和代码注释。

7ada748d943dfa72fc279b4461f7e607.gif

89a9516cd43ac8619036d007edba914e.png

扫码关注【华章计算机】视频号

每天来听华章哥讲书

505e0f1b4babea9057df8de9c72e0e2b.gif

更多精彩回顾

书讯 | 1月书讯(上)| 2022年的第一本书

书讯 | 1月书讯(下)| 2022年的第一本书

资讯 | Docker冲顶技术热词,微服务应用热度不减,中国云原生开发者真实现状如何?

书单 | 8本书助你零基础转行数据分析岗

干货 | 用Python写了一个图像文字识别OCR工具

收藏 | Excel摸鱼技巧:快速实现分列转到行

上新 | 【新书速递】高效使用Greenplum

e58cbefdf7a8d6f24c1003fe33757f4c.gif

83797aa495bd6a88f8bf1fb7bcd1a9b7.gif

点击阅读全文购买

相关文章:

  • 揭秘 vivo 如何打造千万级 DAU 活动中台
  • 终于有人把“可解释机器学习”讲明白了
  • 产品经理必读:用户场景分析的四要素
  • 年终盘点:2021年的通信行业
  • 缓存和数据库一致性问题,看这篇就够了
  • 【新书速递】深入浅出Electron
  • Java静态编译技术:突破Java“冷启动”桎梏,实现启动性能“质”的飞跃
  • 脑机接口新进展!只凭意念,操纵机器移动、拿取物体成为现实
  • 【第87期】程序员怎样上元宇宙的车?
  • 什么是贝叶斯定理?朴素贝叶斯有多“朴素”?终于有人讲明白了
  • 数据中台怎么选型?终于有人讲明白了
  • 一幅真实的产品世界全景图,产品小白向上突破必看!
  • 自主IT行业生态需要会造计算机的人才
  • AI正在模仿人类大脑!2021年10篇顶会论文:大脑也在「无监督」学习
  • 终于有人把“嵌入式人工智能”讲明白了
  • [译]CSS 居中(Center)方法大合集
  • 【译】理解JavaScript:new 关键字
  • 03Go 类型总结
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • css选择器
  • JDK 6和JDK 7中的substring()方法
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • Mysql优化
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • Vue组件定义
  • 测试开发系类之接口自动化测试
  • 程序员该如何有效的找工作?
  • 简单基于spring的redis配置(单机和集群模式)
  • 利用jquery编写加法运算验证码
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 区块链共识机制优缺点对比都是什么
  • 使用SAX解析XML
  • 消息队列系列二(IOT中消息队列的应用)
  • 新书推荐|Windows黑客编程技术详解
  • 译有关态射的一切
  • 扩展资源服务器解决oauth2 性能瓶颈
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​Linux·i2c驱动架构​
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #13 yum、编译安装与sed命令的使用
  • (10)STL算法之搜索(二) 二分查找
  • (2)STM32单片机上位机
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (floyd+补集) poj 3275
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (四)汇编语言——简单程序
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .net反混淆脱壳工具de4dot的使用
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter