Flink代码阅读之部署方式

Flink on YARN的第三种部署模式:Application Mode 前言 短文状态继续。 长久以来,在YARN集群中部署Flink作业有两种模式,即Session Mode和Per-Job Mode,而在Flink 1.11版本中,又引入了第三种全新的模式:Application Mode。本文先回顾两种传统模式的做法与存在的问题,再简要介绍Application Mode。 传统部署模式 Session模式 Session模式是预分配资源的,也就是提前根据指定的... 阅读详情

![在这里插入图片描述](https://img-blog.csdnimg.cn/202102082012468.png

客户端提交任务的方式主要有以下几种

  • 命令行
  • REST接口
  • SQL
  • python
  • scala

JobManager有三种提交任务的模式

  • Application Mode: runs the cluster exclusively for one application. The job’s main method (or client) gets executed on the JobManager. Calling execute/executeAsync multiple times in an application is supported.
    1.11版本以后才会有的。本文暂不涉及。
  • Per-Job Mode: runs the cluster exclusively for one job. The job’s main method (or client) runs only prior to the cluster creation.
    每一个任务都会启动一个集群。
  • Session Mode: one JobManager instance manages multiple jobs sharing the same cluster of TaskManagers
    集群只有一个JobManager。各个job共享TaskManager
    在这里插入图片描述

部署方式

无论如何部署,都是大概这四种进程。注意图片最下面master/yarn只是代表部署在yarn的AM节点。
在这里插入图片描述
+

对于JM,有三个组成部分

The JobManager has a number of responsibilities related to coordinating the distributed execution of Flink Applications: it decides when to schedule the next task (or set of tasks), reacts to finished tasks or execution failures, coordinates checkpoints, and coordinates recovery on failures, among others. This process consists of three different components:

ResourceManager 注意这个RM和yarn的rm两件事情。

The ResourceManager is responsible for resource de-/allocation and provisioning in a Flink cluster — it manages task slots, which are the unit of resource scheduling in a Flink cluster (see TaskManagers). Flink implements multiple ResourceManagers for different environments and resource providers such as YARN, Mesos, Kubernetes and standalone deployments. In a standalone setup, the ResourceManager can only distribute the slots of available TaskManagers and cannot start new TaskManagers on its own.

Dispatcher

The Dispatcher provides a REST interface to submit Flink applications for execution and starts a new JobMaster for each submitted job. It also runs the Flink WebUI to provide information about job executions.

JobMaster

A JobMaster is responsible for managing the execution of a single JobGraph. Multiple jobs can run simultaneously in a Flink cluster, each having its own JobMaster.

Resorce Provider的不同,部署方式有如下四种
Standalone:最基本模式。
Kubernetes
YARN
Mesos

Flink Standalone

在这里插入图片描述

Kubernetes

https://zhuanlan.zhihu.com/p/108302052?utm_source=wechat_timeline

YARN

在这里插入图片描述
或者是这张超级牛逼的图
在这里插入图片描述

Mesos

外部依赖

高可用服务

主要是避免JobManager崩溃。会有多个备用JobManager在主崩溃后借助高可用服务迅速恢复。主要提供是

  • Zookeeper
  • Kubernetes HA
持久化服务

主要是依赖各种本地或者远程的文件系统

资源提供服务

取决于部署方式。

Metrics Storage
Application-level data sources and sinks

外部输入输出。比如kafka,elasticSearch,Cassandra

flink standalone 部署模式且不能使用 hdfs 场景下的各种问题及其应对方案 点击上方蓝色“明哥的IT随笔”,关注并选择“设为星标”,keep striving! 欢迎关注知乎同名专栏!一。背景笔者所在公司某系统在某证券公司现场部署时,客户出于自己集群使用规划的考量... 阅读详情

相关推荐

Flink在k8s生产环境高可用部署

Flink在k8s生产环境高可用部署 flink: 1.10.1 kubernetes: 1.18.8 1 前言 目前参与的项目基本开发完成,打算开发的微服务和Flink任务统一部署到k8s上。之前几个项目都是跑在YARN上,Flink on YARN的部署模式是在生产中比较常见,YARN的稳定性和资源调度能力也是有目共睹的,依托Hadoop生态Flink高可用也很容易实现。关于On YARN 还是On K8S之前文章都有介绍,《Flink Cluster On YARN部署》和《Flink Clust

shirukai 8868

【学会了学会了】Flink官网翻译——Standalone以及YARN部署

flink官网翻译

十二 1184

Flink开发环境部署和配置

Flink是一个以Java及Scala作为开发语言的开源大数据项目,代码开源在github上,并使用maven来编译和构建项目。对于大部分开发或使用Flink的同学来说,Java、Maven和Git这三个工具是必不可少的,因此我们会首先介绍一下这三个工具的安装和配置。另外,一个强大的IDE有助于我们更快的阅读代码、开发新功能以及修复bug,因此这里也会简单介绍IDE的相关配置。 根据我们之前的调...

muyingmiao的专栏 3573

flink运行standlone报错

csdnfan_的博客 225

Flink架构,源码及debug

工作中用Flink做批量和流式处理有段时间了,感觉只看Flink文档是对Flink ProgramRuntime的细节描述不是很多, 程序员还是看代码最简单和有效。所以想写点东西,记录一下,如果能对别人有所帮助,善莫大焉。 说一下我的工作,在一个项目里我们在Flink-SQL基础上构建了一个SQL Engine, 使懂SQL非技术人员能够使用SQL代替程序员直接实现Application, 然后在此基础上在加上一些拖拽的界面,使不懂SQL非技术人员利用拖拽实现批量或流式数据处理的Appl...

u013939918的博客 2130

Flink Standalone集群部署和任务提交

讲解flink standalone的部署和任务提交

chanyue123的博客 5970

Flink源码阅读(1.7.2)

目录 Client提交任务 flink的图结构 StreamGraph OptimizedPlan JobGraph ExecutionGraph flink部署与执行模型 Single Job JobManager...

weixin_30355437的博客 379

Docker部署 SRS rtmp/flv流媒体服务器

SRS(Simple Realtime Server)是一款开源的流媒体服务器,具有高性能、高可靠性、高灵活性的特点,能够支持直播、点播、转码等多种流媒体应用场景。SRS 不仅提供了流媒体服务器,还提供了适用于多种平台的客户端 SDK 和在线转码等辅助服务,是一款十分强大的流媒体解决方案。

m0_56659620的博客 4869

Flink部署指南:从单机到集群的完整配置方案

Flink作为一个开源的流处理框架,在大数据处理领域有着广泛的应用。本指南的目的是帮助开发者和数据工程师全面了解如何从单机环境逐步过渡到集群环境来部署Flink,涵盖了从基础配置到高级优化的各个方面。范围包括Flink的核心概念、部署步骤、实际应用场景以及相关工具和资源的推荐。本文将按照以下结构进行组织:首先介绍Flink的核心概念和架构,为后续的部署操作打下基础;接着详细阐述单机和集群环境下的部署步骤,包括核心算法原理和具体操作流程;然后给出相关的数学模型和公式,加深读者对Flink内部机制的理解;

2502_91592937的博客 1010

2、通过mos管构成的逻辑门电路

一、总结 mos管 是构成 逻辑门电路 的最基本单元。 各个逻辑门电路的真值表如下: 二、各种门 1、非门 NOT 2、与门 AND 3、与非门 把上面与门电路 右边的 非门电路 去掉 NAND 4、或门 OR 5、或非门 NOR 把或门右边的非门电路去掉 6、异或门 XOR 两个输入相异为1,相同为0。 7、同或门 XNOR 两个输入相同为1,相异为0。 ...

engineer0的博客 4万+

ChatBI告别“NL2SQL依赖症”!从准确率50%到90%,3大技术路线+4个企业案例拆解核心玩法

摘要: ChatBI通过自然语言交互实现数据民主化,其核心是“语义理解+数据执行+知识沉淀”的全链路能力,而非单一的NL2SQL技术。行业采用三大技术路线提升准确率:专有知识库(提升30%)、指标标签语义层(准确率85%)、JSON中间层(多轮对话提升25%)。数据执行方案包括NL2SQL、NL2API等,需结合场景选择。企业落地需解决四大痛点:跨表查询准确率低(引入拓扑图)、模糊查询(用户干预机制)、响应慢(预计算缓存)、多轮对话(上下文池)。Spring AI Alibaba提供轻量级集成方案,助力企业

weixin_52610848的博客 1656

Java提交Flink程序(Session)

我不用命令调用,我直接拿java起不就行了吗,因为flink也是java写的啊,我们只要模仿着flink怎么提交的,我们来做一番不就可以了吗,那么我们就看看flink怎么做的吧。

百看不如一RUN 2347

传感器采集信息的频率(采样频率)

较高的采集频率通常能提供更详细的信息,但也会增加数据处理和存储的负担。在某些应用中,较高的采样频率可能是必要的,而在其他情况下,则可能会选择适当的低采样频率以降低功耗和数据处理压力。传感器采集信息的频率(采样频率)是指传感器在一定时间内对输入信号进行采样的次数。对于一些需要快速检测和响应的应用,如运动传感器、声音传感器等,高采样频率是至关重要的。高采样频率通常需要更多的功耗和更大的存储容量,因为产生的数据量更大。例如,对于快速运动的对象,较低的采样频率可能无法捕捉到运动的真实轨迹。

chen的博客 5345

Flink部署-standalone模式

Flink部署-standalone模式 2018年11月30日 00:07:41Xlucas阅读数:74 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/paicMis/article/details/84642263 安装环境信息 flink-1.6.2-bin-hadoop27-sca...

weixin_30886233的博客 174

【GameFramework框架内置模块】6、实体(Entity)

实体Entity就是一个实体的基本单元,类似于Unity的GameObject对象本体,然后这个本体上面附加其他各种各样组件,才能实现各种各样的功能。一般需要在游戏运行时动态加载的游戏对象,比如怪物、武器、子弹、特效,都需要给这个物体挂载一个实体Entity,这样的话就可以方便的对实例出来的对象进行管理。下面就来看一下如何使用吧。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 3137

华为OD机试真题2025双机位C卷 Java&Go 实现【统计员工影响力分数】

华为OD机试真题2025双机位C卷 C语言 实现【统计员工影响力分数】假设你是大型科技公司的数据分析师,负责分析公司内部员工的社交网络。你需要编写一个函数来计算每个员工的影响力分数。影响力分数定义为该员工直接和间接影响的员工数量。 输入描述

MISAYAONE的博客 281

Flink 开发环境部署和配置

一、Flink 开发环境部署和配置 Flink 是一个以 Java 及 Scala 作为开发语言的开源大数据项目,代码开源在 GitHub 上,并使用 Maven 来编译和构建项目。对于大部分使用 Flink 的同学来说,Java、Maven 和 Git 这三个工具是必不可少的,另外一个强大的 IDE 有助于我们更快的阅读代码、开发新功能以及修复 Bug。因为篇幅所限,我们不会详述每个工具的安装细节,但会给出必要的安装建议。 关于开发测试环境,Mac OS、Linux 系统或者 Windows 都可以。如果

xiaoshian的博客 2546

【数据集】全球预报系统GFS概述:数据下载及处理

【数据集】全球预报系统GFS概述:数据下载及处理

WW、forever的博客 5751

Apache Flink 零基础入门(二):开发环境搭建和应用的配置、部署及运行

作者:沙晟阳本文是根据 Apache Flink 系列直播课程整理而成,由阿里巴巴高级开发工程师沙晟阳分享,主要面向于初次接触 Flink、或者对 Flink 有了解但是没有实际操作过的同学。希望帮助大家更顺利地上手使用 Flink,并着手相关开发调试工作。主要内容:Flink 开发环境的部署和配置运行 Flink 应用单机 Standalone 模式多机 Standalone 模式Yarn 集群模式。

gangyikeji的博客 1114

【WRFDA教程第四期】雷达数据同化(Radar Data Assimilation)

雷达数据同化(Radar Data Assimilation)

WW、forever的博客 1759

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Flink源码阅读:如何生成StreamGraph

Flink程序的执行流程通过四种图结构实现转换:StreamGraph、JobGraph、ExecutionGraph和Physical Graph。其中StreamGraph是根据用户代码生成的初始拓扑结构。代码分析从StreamExecutionEnvironment开始,重点研究了DataStream转换过程。

K_Ohaha的博客 1478

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

从源码编译Apache Flink快速部署和测试(包含指定Hadoop及Cloudera Hadoop、Flink on YARN、Blink)

如果是Standalone Cluster模式运行可以不依赖于Hadoop,直接下载对应版本即可。如果有时需要基于YARN来提交运行,则需要选择对应Hadoop版本的Flink安装部署。访问官网的下载页面Flink Downloads,可以看到如果是Flink 1.8版本与捆绑的Hadoop版本有Hadoop 2.4.1、Hadoop 2.6.5、Hadoop 2.7.5、Hadoop 2.8.3...

Yore - Home 5937

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Flink 1.10源代码编译,基于Flink release-1.10分支

Flink源代码编译部署 以release-1.10版本为例 以 Flink官方文档 为参考 构建准备: Ubuntu 18 安装 Linux衍生系统 Python 2.*.*系列版本 Flink-release10专门用到的基础环境,和flink-runtime-web模块构建相关 Java 1.8+ 版本安装 Java环境 Maven 3.3+ 版本安装 编译构...

AIzone的博客 2809

Flink Standalone 部署完全指南:从单机 Session 到多 JobManager 高可用集群

本指南以 Flink Standalone(独立部署)模式为主题,系统讲解如何在静态(但可异构)集群上以完全分布式方式运行 Flink:从环境准备、`config.yaml` 与 `workers`/`masters` 文件的配置,到 `start-cluster.sh` 等管理脚本的用法,再到基于 ZooKeeper 的多 JobManager 高可用搭建与用户 JAR 的 Classpath

gitblog_02391的博客 659

Flink 重启变双开:一次部署引发的两个 CDC 任务并发消费

Flink CDC(MySQL→ClickHouse)发版重启后,Dashboard 上两个同名任务并行 RUNNING、双写数据。Jenkins 明明有 stop 旧任务步骤却没停掉,翻代码挖出 4 个并发陷阱:状态过滤只匹配 RUNNING 漏掉 CANCELLING 等过渡态、break 只停第一个、flink stop 是异步命令返回≠任务真停、sleep 5 是侥幸。修复:覆盖 7 个非终态+循环停所有+poll 等真正终态+启动前二次校验。核心教训:异步系统的"等"要等状态,不要等时间。

fengquan8866的博客 529

flink源码阅读第一篇—入口

前序 由于最近接触了flink相关项目,封装flink-table模块,这部分模块应该在flink官方1.9x版本进行发布,截止目前还是beta版本,等待最终的release版本发布。在开发期间,出于工作和兴趣的需求,就阅读了部分源码,阅读源码期间也是阅读了很多博客文章,发下文章写错的也比比皆是呀,哎有时也会误导人。先叙述第一篇总体轮廓篇。该篇总体思路是从flink任务提交开始,从本地提交代码逻辑,到服务端如果接收任务,最后运行的不同分支逻辑。了解这部分逻辑,需要一些基础知识,包括yarn, netty最

ludongguoa的博客 693
上一篇: Flink代码阅读之代码架构
下一篇: Flink代码阅读之API
define_us
博客等级 码龄14年 157粉丝 531原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值