Flink on Zeppelin 系列之:Yarn Application 模式支持

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: Zeppelin 如何实现并使用 Yarn Application 模式。

作者:章剑锋(简锋)

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

GitHub 地址

https://github.com/apache/flink

欢迎大家给 Flink 点赞送 star~

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 server这台机器上,每个客户端对应一个 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):

  • Scala (%flink)
  • PyFlink (%flink.pyflink)
  • SQL (%flink.ssql, %flink.bsql)
参考文档:
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:

  • 在 Zeppelin 中直接写 Scala UDF;
  • 在 Zeppelin 中直接写 PyFlink UDF;
  • 用 SQL 创建 UDF;
  • 使用 flink.udf.jars 来指定含有 udf 的 jar。
参考文档:
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 种方式来指定第三方依赖,具体:

  • flink.excuetion.packages
  • flink.execution.jars (需要注意的是在 Yarn Application 模式下,这里需要指定 HDFS 路径,因为 Flink Interpreter 运行在 JobManager 里,而JobManager 是跑在 yarn container, 在 yarn container 那台 NodeManager 机器上不一定有你要指定的 jar)
参考文档:
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做了一系列增强功能,这些增强功能都可以照常使用,比如:

  • 同时支持 Batch SQL 和 Streaming SQL
  • 多语句支持
  • Comment 支持
  • Job 并行度支持
  • Multiple insert 支持
  • JobName 的设置
  • Stream SQL 流式数据可视化
具体参考文档:
https://www.yuque.com/jeffzhangjianfeng/gldg8w/te2l1c

另外,阿里云开放平台团队长期招聘优秀大数据人才(包括实习+社招)。我们的主要职责为阿里云上的各大中小企业客户提供大数据和 AI 的基础服务。你的工作将是围绕 Spark,Flink,Hadoop,Tensorflow,PyTorch 等开源组件构建一个易用的,企业级的大数据和 AI 开放平台。不仅有技术的挑战,也需要做产品的激情。我们采用大量的开源技术(Hadoop, Flink, Spark, Zeppelin, Kubernetes,Tensorflow,Pytorch等等),并且致力于回馈到开源社区。

如果你对开源,大数据或者 AI 感兴趣,这里有最好的土壤。拥有在 Apache Flink, Apache Kafka, Apache Zeppelin,Apache Beam,Apache Druid,Apache Hbase 等诸多开源领域的 Committer & PMC。感兴趣的同学请发简历到:jeffzhang.zjf@alibaba-inc.com

更多 Flink 相关技术问题,可扫码加入社区钉钉交流群~

image.png

活动推荐

阿里云基于 Apache Flink 构建的企业级产品-实时计算Flink版现开启活动:
99元试用实时计算Flink版(包年包月、10CU)即有机会获得 Flink 独家定制T恤;另包3个月及以上还有85折优惠!
了解活动详情:https://www.aliyun.com/product/bigdata/sc

image.png

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
13天前
|
消息中间件 资源调度 关系型数据库
如何在Flink on YARN环境中配置Debezium CDC 3.0,以实现实时捕获数据库变更事件并将其传输到Flink进行处理
本文介绍了如何在Flink on YARN环境中配置Debezium CDC 3.0,以实现实时捕获数据库变更事件并将其传输到Flink进行处理。主要内容包括安装Debezium、配置Kafka Connect、创建Flink任务以及启动任务的具体步骤,为构建实时数据管道提供了详细指导。
38 9
|
1月前
|
资源调度 分布式计算 大数据
大数据-111 Flink 安装部署 YARN部署模式 FlinkYARN模式申请资源、提交任务
大数据-111 Flink 安装部署 YARN部署模式 FlinkYARN模式申请资源、提交任务
91 0
|
3月前
|
资源调度 Oracle Java
实时计算 Flink版产品使用问题之在YARN集群上运行时,如何查看每个并行度的详细处理数据情况
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
2月前
|
运维 数据处理 数据安全/隐私保护
阿里云实时计算Flink版测评报告
该测评报告详细介绍了阿里云实时计算Flink版在用户行为分析与标签画像中的应用实践,展示了其毫秒级的数据处理能力和高效的开发流程。报告还全面评测了该服务在稳定性、性能、开发运维及安全性方面的卓越表现,并对比自建Flink集群的优势。最后,报告评估了其成本效益,强调了其灵活扩展性和高投资回报率,适合各类实时数据处理需求。
|
4月前
|
存储 监控 大数据
阿里云实时计算Flink在多行业的应用和实践
本文整理自 Flink Forward Asia 2023 中闭门会的分享。主要分享实时计算在各行业的应用实践,对回归实时计算的重点场景进行介绍以及企业如何使用实时计算技术,并且提供一些在技术架构上的参考建议。
821 7
阿里云实时计算Flink在多行业的应用和实践
|
18天前
|
存储 分布式计算 流计算
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
本文介绍了阿里云开源大数据团队在实时计算领域的最新成果——向量化流计算引擎Flash。文章主要内容包括:Apache Flink 成为业界流计算标准、Flash 核心技术解读、性能测试数据以及在阿里巴巴集团的落地效果。Flash 是一款完全兼容 Apache Flink 的新一代流计算引擎,通过向量化技术和 C++ 实现,大幅提升了性能和成本效益。
700 10
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
|
3月前
|
SQL 消息中间件 Kafka
实时计算 Flink版产品使用问题之如何在EMR-Flink的Flink SOL中针对source表单独设置并行度
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
14天前
|
SQL 运维 数据可视化
阿里云实时计算Flink版产品体验测评
阿里云实时计算Flink基于Apache Flink构建,提供一站式实时大数据分析平台,支持端到端亚秒级实时数据分析,适用于实时大屏、实时报表、实时ETL和风控监测等场景,具备高性价比、开发效率、运维管理和企业安全等优势。
zdl
|
6天前
|
消息中间件 运维 大数据
大数据实时计算产品的对比测评:实时计算Flink版 VS 自建Flink集群
本文介绍了实时计算Flink版与自建Flink集群的对比,涵盖部署成本、性能表现、易用性和企业级能力等方面。实时计算Flink版作为全托管服务,显著降低了运维成本,提供了强大的集成能力和弹性扩展,特别适合中小型团队和业务波动大的场景。文中还提出了改进建议,并探讨了与其他产品的联动可能性。总结指出,实时计算Flink版在简化运维、降低成本和提升易用性方面表现出色,是大数据实时计算的优选方案。
zdl
25 0
|
1月前
|
运维 搜索推荐 数据安全/隐私保护
阿里云实时计算Flink版测评报告
阿里云实时计算Flink版在用户行为分析与标签画像场景中表现出色,通过实时处理电商平台用户行为数据,生成用户兴趣偏好和标签,提升推荐系统效率。该服务具备高稳定性、低延迟、高吞吐量,支持按需计费,显著降低运维成本,提高开发效率。
66 1

相关产品

  • 实时计算 Flink版