内容简介:Flink 1.10 release 文档描述了一些比较重要的点,比如配置、操作、依赖、1.9 版本和 1.10 版本之间的区别,如果你准备将 Flink 升级到 1.10 版本,建议仔细看完下面的内容。以下选项已经删除,不再起作用:
Flink 1.10 release 文档描述了一些比较重要的点,比如配置、操作、依赖、1.9 版本和 1.10 版本之间的区别,如果你准备将 Flink 升级到 1.10 版本,建议仔细看完下面的内容。
集群和部署
-
文件系统需要通过插件的方式加载
-
Flink 客户端根据配置的类加载策略加载,parent-first 和 child-first 两种方式
-
允许在所有的 TaskManager 上均匀地分布任务,需要在
flink-conf.yaml
配置文件中配置cluster.evenly-spread-out-slots: true
参数 -
高可用存储目录做了修改,在
HA_STORAGE_DIR/HA_CLUSTER_ID
下,HA_STORAGE_DIR
路径通过high-availability.storageDir
参数配置,HA_CLUSTER_ID
路径通过high-availability.cluster-id
参数配置 -
当使用
-yarnship
命令参数时,资源目录和 jar 文件会被添加到 classpath 中 -
移除了
--yn/--yarncontainer
命令参数 -
移除了
--yst/--yarnstreaming
命令参数 -
Flink Mesos 会拒绝掉所有的过期请求
-
重构了 Flink 的调度程序,其目标是使调度策略在未来可以定制
-
支持 Java 11,当使用 Java 11 启动 Flink 时,会有些 WARNING 的日志提醒,注意:Cassandra、Hive、HBase 等 connector 没有使用 Java 11 测试过
内存管理
- 全新的 Task Executor 内存模型,会影响 standalone、YARN、Mesos、K8S 的部署,JobManager 的内存模型没有修改。如果你在没有调整的情况下,重用以前的 Flink 配置,则新的内存模型可能会导致 JVM 的计算内存参数不同,从而导致性能的变化。
以下选项已经删除,不再起作用:
以下选项已经替换成其他的选项:
-
RocksDB State Backend 内存可以控制,用户可以调整 RocksDB 的写/读内存比率
state.backend.rocksdb.memory.write-buffer-ratio
(默认情况下 0.5)和为索引/过滤器保留的内存部分state.backend.rocksdb.memory.high-prio-pool-ratio
(默认情况下0.1) -
细粒度的算子(Operator)资源管理,配置选项
table.exec.resource.external-buffer-memory
,table.exec.resource.hash-agg.memory
,table.exec.resource.hash-join.memory
,和table.exec.resource.sort.memory
已被弃用
Table API 和 SQL
-
将 ANY 类型重命名为 RAW 类型,该标识符 raw 现在是保留关键字,在用作 SQL 字段或函数名称时必须转义
-
重命名 Table Connector 属性,以便编写 DDL 语句时提供更好的用户体验,比如 Kafka Connector 属性
connector.properties
和connector.specific-offsets
、Elasticsearch Connector 属性connector.hosts
-
之前与临时表和视图进行交互的方法已经被弃用,目前使用 createTemporaryView()
-
移除了 ExternalCatalog API(ExternalCatalog、SchematicDescriptor、MetadataDescriptor、StatisticsDescriptor),建议使用新的 Catalog API
配置
-
ConfigOptions 如果无法将配置的值解析成所需要的类型,则会抛出 IllegalArgumentException 异常,之前是会返回默认值
-
增加默认的重启策略延迟时间(fixed-delay 和 failure-rate 已经默认是 1s,之前是 0)
-
简化集群级别的重启策略配置,现在集群级别的重启策略仅由 restart-strategy 配置和是否开启 Checkpoint 确定
-
默认情况下禁用内存映射的 BoundedBlockingSubpartition
-
移除基于未认证的网络流量控制
-
移除 HighAvailabilityOptions 中的 HA_JOB_DELAY 配置
状态(State)
-
默认开启 TTL 的状态后台清理
-
弃用
StateTtlConfig#Builder#cleanupInBackground()
-
使用 RocksDBStateBackend 时,默认将计时器存储在 RocksDB 中,之前是存储在堆内存(Heap)中
-
StateTtlConfig#TimeCharacteristic
已经被移除,目前使用StateTtlConfig#TtlTimeCharacteristic
-
新增
MapState#isEmpty()
方法来检查 MapState 是否为空,该方法比使用mapState.keys().iterator().hasNext()
的速度快 40% -
RocksDB 升级,发布了自己的 FRocksDB(基于 RocksDB 5.17.2 版本),主要是因为高版本的 RocksDB 在某些情况下性能会下降
-
默认禁用 RocksDB 日志记录,需要启用的话需要利用 RocksDBOptionsFactory 创建 DBOptions 实例,并通过 setInfoLogLevel 方法设置 INFO_LEVEL
-
优化从 RocksDB Savepoint 恢复的机制,以前如果从包含大型 KV 对的 RocksDB Savepoint 恢复时,用户可能会遇到 OOM。现在引入了可配置的内存限制,RocksDBWriteBatchWrapper 默认值为 2MB。RocksDB的WriteBatch 将在达到内存限制之前刷新。可以在
flink-conf.yml
中修改state.backend.rocksdb.write-batch-size
配置
PyFlink
- 不再支持 Python 2
监控
- InfluxdbReporter 会跳过 Inf 和 NaN(InfluxDB 不支持的类型,比如
Double.POSITIVE_INFINITY
,Double.NEGATIVE_INFINITY
,Double.NaN
)
连接器(Connectors)
- 改变 Kinesis 连接器的 License
接口更改
-
ExecutionConfig#getGlobalJobParameters()
不再返回 null -
MasterTriggerRestoreHook 中的 triggerCheckpoint 方法必须时非阻塞的
-
HA 服务的客户端/服务器端分离,HighAvailabilityServices 已分离成客户端 ClientHighAvailabilityServices 和集群端 HighAvailabilityServices
-
HighAvailabilityServices#getWebMonitorLeaderElectionService()
标记过期 -
LeaderElectionService 接口做了更改
-
弃用 Checkpoint 锁
-
弃用 OptionsFactory 和 ConfigurableOptionsFactory 接口
参考: https://github.com/apache/flink/blob/master/docs/release-notes/flink-1.10.zh.md
看了下官方的这份新版本的介绍,感觉还缺少很多新功能的介绍,比如:
- 在 1.10 版本中把 Blink 版本的哪些功能整合过来了
- 竟然没有写 Flink 对原生 Kubernetes 的集成
- PyFlink 的介绍是认真的吗?
- 对 Hive 的生产级别集成,完全没有提及呀
- Table API/SQL 优化点讲得不太多
可能因为篇幅的问题,还有很多特性都没有讲解出来,得我们自己去找源码学习!
最后
GitHub Flink 学习代码地址: https://github.com/zhisheng17/flink-learning
微信公众号: zhisheng
另外我自己整理了些 Flink 的学习资料,目前已经全部放到微信公众号(zhisheng)了,你可以回复关键字: Flink 即可无条件获取到。另外也可以加我微信 你可以加我的微信: yuanblog_tzs ,探讨技术!
更多私密资料请加入知识星球!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 安全研究 | 传真机的攻击面研究报告
- IBM将建新AI研究中心,旨在开展“颠覆性研究项目”
- 清华人工智能研究院成立「知识智能研究中心」,发布四大知识平台
- 姚班天才少年鬲融凭非凸优化研究成果获得斯隆研究奖
- 大热下的 GNN 研究面临哪些“天花板”?未来的重点研究方向又在哪?
- 『互联网架构』软件架构-redis特性和集群特性(中)(49)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
公众号运营实战手册
中信出版社 / 2018-11 / 58
作者粥左罗在刚入行做新媒体的一年时间里,就写了100篇阅读量10万+的公众号文章,但是在此之前,他足足花了两个月的时间研究公众号运营和爆款文章的逻辑和打法。 这本书就是他总结和归纳自己公众号写作和运营的全部秘诀和技巧,是一本行之有效的实战指南。 从如何注册一个公号,给公号起什么名字? 多长时间更新一次为好? 到如何找选题,如何积累爆款素材? 如何编辑内容,如何做版面设......一起来看看 《公众号运营实战手册》 这本书的介绍吧!