大数据Flink

Flink on Zeppelin 系列之:Yarn Appli

2021-05-06  本文已影响0人  Flink中文社区

作者:章剑锋(简锋)

去年Flink Forward在讲Flink on Zeppelin这个项目的未来时我们谈到了对Application 模式的支持,今天就有一个好消息要告诉大家,社区已经实现了这一Feature,欢迎大家下载最新版来使用这个Feature。

Application mode 是 Flink 1.11 之后引入的新的运行模式,所要解决的问题就是减少客户端的压力,把用户的main函数运行在JobManager里而不是在用户客户端。这种模式是非常适合Flink on Zeppelin的,因为Flink on Zeppelin的客户端就是Flink interpreter进程,而Flink interpreter是一个long running的main函数,不断接受来自前端的命令,进行相应的操作(比如提交Job,停止Job 等等)。接下来我们就要详细讲下Zeppelin如何实现了Yarn Application模式,以及如何使用这一模式。

架构

在讲Yarn Application模式架构的时候,我们顺便来讲下 Flink on Zeppelin的架构演变过程。

普通的Flink on Yarn 运行模式

这种模式的客户端中,Flink Interpreter 运行在 Zeppelin这边,每个客户端对应一个Yarn上的Flink Cluster,如果Flink Interpreter进程很多,会对Zeppelin这台机器造成很大的压力。

参考文档:https://www.yuque.com/jeffzhangjianfeng/gldg8w/wt1g3h

参考视频:https://www.bilibili.com/video/BV1Te411W73b?p=6

image.png

Yarn Interpreter 模式

Yarn Interpreter 把客户端 (Flink Interpreter)移到了 Yarn集群,把资源压力转移到了Yarn集群,解决上上面普通Flink on Yarn 运行模式的一部分问题,这种模式会需要为每个Flink Cluster额外申请一个Yarn Container来运行这个Flink Interpreter,在资源利用方面并不是很高效。

参考文档:https://www.yuque.com/jeffzhangjianfeng/gldg8w/gcah8t

参考视频:https://www.bilibili.com/video/BV1Te411W73b?p=24

image.png

Yarn Application 模式

Yarn Application 模式彻底解决了前面2种模式的问题,把Flink interpreter 跑在了JobManager里,这样既不影响Zeppelin Server这台机器的资源压力,也不会对Yarn集群资源造成任何浪费。

image.png

如何使用 Yarn Application 模式

配置Yarn Application 模式非常简单,只要把 flink.execution.mode 设为yarn_application 即可。其他所有配置与其他模式没有区别。下面的所有Flink on Zeppelin的特性在Yarn Application模式下都可以照常使用。我们也借这个机会来Review下Flink on Zeppelin的所有功能。

多语言支持

在同一个Flink Cluster内支持以下3种语言,并且打通这3种语言(共享Catalog,共享ExecutionEnvironment)

参考文档:https://www.yuque.com/jeffzhangjianfeng/gldg8w/pg5s82

https://www.yuque.com/jeffzhangjianfeng/gldg8w/ggxz76

https://www.yuque.com/jeffzhangjianfeng/gldg8w/te2l1c

参考视频:https://www.bilibili.com/video/BV1Te411W73b?p=4

Hive整合

简单配置就可以启用Hive:

参考文档:https://www.yuque.com/jeffzhangjianfeng/gldg8w/agf94n

参考视频:https://www.bilibili.com/video/BV1Te411W73b?p=10

UDF支持

支持以下4种方式定义和使用Flink UDF

参考文档:https://www.yuque.com/jeffzhangjianfeng/gldg8w/dthfu2

参考视频:https://www.bilibili.com/video/BV1Te411W73b?p=17

https://www.bilibili.com/video/BV1Te411W73b?p=18

https://www.bilibili.com/video/BV1Te411W73b?p=19

第三方依赖

在Zeppelin里可以用以下2种方式来指定第三方依赖,具体

参考文档:https://www.yuque.com/jeffzhangjianfeng/gldg8w/rn6g1s

参考视频:https://www.bilibili.com/video/BV1Te411W73b?p=15

Checkpoint & Savepoint

Checkpoint 和 Savepoint 照常使用,

参考文档:https://www.yuque.com/jeffzhangjianfeng/gldg8w/mlnswx

SQL高级功能

Zeppelin 对 Flink SQL做了一系列增强功能,这些增强功能都可以照常使用,比如:

具体参考文档:https://www.yuque.com/jeffzhangjianfeng/gldg8w/te2l1c

上一篇 下一篇

猜你喜欢

热点阅读