flink任务提交、内存、并行度设置

Flink的多种提交方式 Flink的多种提交/运行方式 Flink具有多种提交方式,比如:常用的local模式,stantalone模式,yarn模式,k8s等。 这里主要对比local,stantalone,yarn三种提交方式。 一、本地(local)模式,仅开发使用 1.1 纯粹的local模式运行 这就是直接运行项目中的代码的方式提交: public class TestLocal { public st... 阅读详情

flink任务运行方式

flink任务提交方式有3种 session、per-job、application三种
flink任务运行底座也有三种,Standalone、yarn、k8s

原则上一个flink任务运行的方式由3*3=9种,但是有些是没法搭配的

yarn:包括yarn-session 、yarn-per-job 、yarn-application
standalone:包括 standalone-session standalone-application,不支持per-job
k8s: 包括 k8s-session、k8s-per-job 、k8s-application
!!!!但是 per-job被官网废弃了,用application替代per-job!!!!

在这里插入图片描述
当前主流就是yarn-application

flink历史服务器

flink任务失败或停止之后,flink webui 就看不到了,因此日志就只能到yarn上去看或者taskmanager所在的服务器去看,这样很不方便,因此flink提供了历史服务器,能够看已经退出的flink任务,而且flink不管是standalone还是yarn都支持。

1)创建存储目录
hadoop fs -mkdir -p /logs/flink-job
2)在 flink-config.yaml中添加如下配置
jobmanager.archive.fs.dir: hdfs://hadoop102:8020/logs/flink-job
historyserver.web.address: hadoop102
historyserver.web.port: 8082
historyserver.archive.fs.dir: hdfs://hadoop102:8020/logs/flink-job
historyserver.archive.fs.refresh-interval: 5000
3)启动历史服务器
bin/historyserver.sh start
4)停止历史服务器
bin/historyserver.sh stop
5)在浏览器地址栏输入:http://hadoop102:8082  查看已经停止的 job 的统计信息

flink任务并行度、slot(槽位)、taskmanger数量

假如完成同一件事需要8个人,那么这个任务的并行度就是8,再假如一个人完成这件事需要使用一个工具台,也就是需要8个slot,再假如一个一个车间(taskmanager)只有6个工具台,那这个任务就有问题(有两人闲着)。
并行度:一个任务的并行量
slot(槽位):能够提供完成任务的环境的数量

再接着假如,一个车间(taskmanager)能够提供10个slot(槽位),请问并行度多少为最佳?
答案:当然是10个,每个人都不闲着。

上述任务是发生在一个车间(taskmanager),如果有n个车间(taskmanager),效率又会有n倍(约)提升

那么问题来了,在standalone和k8s底座上起多少个taskmanager是我们手动确定的,在yarn底座上运行的时候,我们没有事先启动好taskmanager,是任务启动之后自己分配的taskmanager,yarn的资源有很多,不可能都用来运行taskmanager,是怎么确定运行taskmanager数量的呢?
答:在1.5版本之后,taskmanager的数量是动态计算,根据slot和并行度进行计算
在这里插入图片描述

翻译::::::::::::::
更新返工作业部署的配置
Flink重做的集群和作业部署组件改善了与资源管理器的集成,实现了动态资源分配。这些更改的一个结果是,在向YARN和Mesos提交应用程序时,您不再需要指定容器的数量。Flink会根据应用程序的并行性自动确定容器的数量。

尽管部署逻辑已完全重新设计,但我们的目标是避免不必要地更改以前的行为以实现平稳过渡。尽管如此,您应该在conf/flink-conf.yaml中更新或了解一些选项。

尚未完全支持分配具有多个插槽的taskmanager。因此,我们建议使用单个插槽配置taskmanager,即设置taskmanager.numberOfTaskSlots: 1
如果发现新部署模式存在任何问题,则始终可以通过配置mode: legacy切换回pre-1.5行为。
请通过发布到邮件列表或打开JIRA问题,向Flink社区报告您注意到的任何问题或可能的改进。

注意: 我们计划在下一版本中删除传统模式。

taskmanager数量计算方式:
TaskManager 数 = Job 的最大并行度 / 每个TaskManager 分配的任务槽数slot,结果向上取整

上述公式告诉了我们一个问题,如果slot小,并行度很大,最后导致的taskmanager就会很多,最终导致yarn的资源不足以运行所有的taskmanager,最终导致任务失败
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
默认一个taskmanager 只有一个slot,那我们把slot槽数设置多一点不就行了么,-Dtaskmanager.numberOfTaskSlots=5 我们设置为5个槽

flink run -t yarn-per-job -c  cn.chinaunicom.sdsi.flink.security.test -p 10 \
/home/manager/portal-flink-1.0-jar-with-dependencies.jar

又异常了

Caused by: org.apache.flink.configuration.IllegalConfigurationException: The number of requested virtual cores per node 5 exceeds 
the maximum number of virtual cores 4 available in the Yarn Cluster. Please note that the number of virtual cores is set to the number of task slots by
default unless configured in the Flink config with 'yarn.containers.vcores.'

因为我的yarn核数设置为了4(见上方yarn资源图),这里slot设置5,不够用了,因此报错,也就是说slot数,不能高于yarn设置的vcores

调小一点

flink run -t yarn-per-job -c  cn.chinaunicom.sdsi.flink.security.test -p 10 \
-Dtaskmanager.numberOfTaskSlots=2 \
/home/manager/portal-flink-1.0-jar-with-dependencies.jar

这样就可以运行了

Flink的内存管理

Taskmanager

我们使用1个并行度,每个容器提供1个slot槽,启动任务

flink run -t yarn-per-job -c  cn.chinaunicom.sdsi.flink.security.test -p 1 \
-Dtaskmanager.numberOfTaskSlots=1 \
/home/manager/portal-flink-1.0-jar-with-dependencies.jar

在这里插入图片描述
结果发现,启动了2个容器,很明显,一个是taskManager容器,一个是jobManager容器。
一共占用4G内存,两个容器各占2G,内存设置默认都是none,那么这个2G是哪来的?
看一下你的flink/conf/flink-conf.yaml
这两个参数是没有默认值的, 如果你把这两个参数注释掉,你就会发现你的任务无法启动,需要你明确提供这两个参数。

# The total process memory size for the JobManager.
#
# Note this accounts for all memory usage within the JobManager process, including JVM metaspace and other overhead.

jobmanager.memory.process.size: 1600m


# The total process memory size for the TaskManager.
#
# Note this accounts for all memory usage within the TaskManager process, including JVM metaspace and other overhead.

taskmanager.memory.process.size: 1728m

两个参数,虽然不是2G,但是由于yarn容器,内存分配的原因,以1G为单位,向上取整,因此得到了2G
yarn-site.xml
yarn.scheduler.minimum-allocation-mb: 1024mb # 最小内存单元
在这里插入图片描述

我们1G内存启动看看效果!

flink run -t yarn-per-job -c  cn.chinaunicom.sdsi.flink.security.test -p 1 \
-Dtaskmanager.numberOfTaskSlots=1 \
-Dtaskmanager.memory.process.size=1G \
/home/manager/portal-flink-1.0-jar-with-dependencies.jar

启动之后,打开taskManager,我们能看到这个内存管理图
在这里插入图片描述
这个图非常的重要!!

如上图所示,这1G内存使用起来就相当费劲了,不是想象中大家一起用那么简单,这1G内存被分成了好多个内存单元:

内存参数解释默认值
JVM MetaspaceJVM元空间:JVM 用来存储类元数据的地方,这些元数据包括类的相关信息,比如类的名称、字段、方法等。taskmanager.memory.jvm-metaspace.size 默认 256mb
JVM OverheadJVM执行开销:JVM自身运行也是需要内存的,编译、解释、堆内存、堆外内存taskmanager.memory.jvm-overhead.fraction,默认 0.1
taskmanager.memory.jvm-overhead.min,默认 192mb
taskmanager.memory.jvm-overhead.max,默认 1gb
总进程内存*fraction,如果小于配置的 min(或大于配置的 max)大小,则使用 min/max大小
Network网络内存:网络数据交换所使用的堆外内存大小,如网络数据交换缓冲区taskmanager.memory.network.fraction,默认 0.1
taskmanager.memory.network.min,默认 64mb
taskmanager.memory.network.max,默认 1gb
Flink 内存*fraction,如果小于配置的 min(或大于配置的 max)大小,则使用 min/max大小
Task HeapTask 堆内存:Task任务真正的任务使用的内存,用于存储任务的数据结构、对象实例等堆内:taskmanager.memory.task.heap.size,默认 none,由 Flink 内存扣除掉其他部分的内存得到。
Task Off-HeapTask 堆外内存:Task任务堆外内存taskmanager.memory.task.off-heap.size,默认 0,表示不使用堆外内存
Managed Memory托管内存:用于 RocksDB State Backend 的本地内存和批的排序、哈希表、缓存中间结果,如果你不用RocksDB做状态后端,也没有很大的攒批情况,可以把这个内存调小(它默认占40%)taskmanager.memory.managed.fraction,默认 0.4
taskmanager.memory.managed.size,默认 none
如果 size 没指定,则等于 Flink 内存*fraction
Framework Heap/Framework Off-HeapFLINK框架堆内存/堆外内存:TaskManager自身占用的内存,他和task Heap是可以混用的堆内:taskmanager.memory.framework.heap.size,默认 128MB
堆外:taskmanager.memory.framework.off-heap.size,默认 128MB

计算方式:
基于Yarn模式,一般参数指定的是总进程内存,taskmanager.memory.process.size,

比如指定为1G
总进程内存 = Flink内存+JVM内存(JVM Metaspace + Overhead)
JVM Metaspace => 256mb
JVM Overhead = 1G * 0.1 < 192mb => 192mb
Flink内存 = 1G - 256mb - 192mb =>  576mb 
Network = 576mb*0.1 < 64mb=>64mb
Managed Memory = 576mb* 0.4 =>230.4mb
Framework Heap/Framework Off-Heap = 128+128 =>256mb
Task Heap = 576mb-256mb-64mb-230.4mb =>25.6mb

可以和上边那个内存图进行对比,计算逻辑是正确的。
Task Heap 1G内存只被分到了25MB(虽然25MB,但是可以使用框架内存Framework Heap,他两个是一块用的),因此一个taskmanager至少分配2G内存,才比较可靠。

比如指定为2G
总进程内存 = Flink内存+JVM内存(JVM Metaspace + Overhead)
JVM Metaspace => 256mb
JVM Overhead = 2G * 0.1 > 192mb => 204.8mb
Flink内存 = 2G - 256mb - 204.8mb =>  1587.2mb 
Network = 1587.2mb*0.1 > 64mb=>158.7mb
Managed Memory = 1587.2mb* 0.4 =>634.88mb
Framework Heap/Framework Off-Heap = 128+128 =>256mb
Task Heap = 1587.2mb-256mb-158.7mb-634.88mb =>537.62mb

可以自己启动一个flink任务,验证一下,flink自带的example,nc -lk 2222测试一下,这个任务默认是1个并行
flink run -d -t yarn-per-job SocketWindowWordCount.jar --hostname hdp01 --port 2222

这个地方介绍了常见的内存错误。
https://nightlies.apache.org/flink/flink-docs-release-1.14/zh/docs/deployment/memory/mem_trouble/

资源配置方案

调整yarn的资源分配器

资源分配器,我们改成 DominantResourceCalculator 基于CPU+内存,默认的只基于内存,每个容器只分配1个cpu

vi ${HADOOP_HOME}/etc/hadoop/capacity-scheduler.xml 

<property>
  <name>yarn.scheduler.capacity.resource-calculator</name>
  <!-- <value>org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator</value>-->
  <value>org.apache.hadoop.yarn.util.resource.DominantResourceCalculator</value>
  <description>
    The ResourceCalculator implementation to be used to compare 
    Resources in the scheduler.
    The default i.e. DefaultResourceCalculator only uses Memory while
    DominantResourceCalculator uses dominant-resource to compare 
    multi-dimensional resources such as Memory, CPU etc.
  </description>
</property>

在这里插入图片描述

调整yarn关于容器的相关配置

打开yarn的dashboard,关注以下红框的属性值
尤其要注意Minimum Allocation和 Maximum Allocation

  • Minimum Allocation:为每个容器分配的最小资源([memory-mb (unit=Mi), vcores]),第一个值是内存mb,第二个值是cpu数
  • Maximum Allocation:为每个容器分配的最大资源([memory-mb (unit=Mi), vcores]),第一个值是内存mb,第二个值是cpu数

也就是说,不管你的yarn集群有多大,如果这两个值你不调整好,创建出来的容器是受限的。我们修改资源分配器也是为了能使创建出来的容器足够强大

在这里插入图片描述

vi ${HADOOP_HOME}/etc/hadoop/yarn-site.xml 

<configuration>
    <property>
    	<!-- 单个容器可申请的最小内存量(以 MB 为单位),默认1G-->
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>1024</value>
    </property>
    <property>
        <!-- 单个容器可申请的最大内存量(以 MB 为单位),默认8G-->
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>8192</value>
    </property>
    <property>
        <!-- 单个容器可申请的最小 CPU 核心数 ,默认1个-->
        <name>yarn.scheduler.minimum-allocation-vcores</name>
        <value>1</value>
    </property>
    <property>
         <!-- 单个容器可申请的最大 CPU 核心数 ,默认4个 -->
        <name>yarn.scheduler.maximum-allocation-vcores</name>
        <value>4</value>
    </property>
</configuration>

任务提交设置

要基于最大并行度进行设置,假设我最大10个并行度

  • jobManager内存 2-4G 足够,并行度大就4G
  • slot数最好能被并行度整除,保证所有container的slot数均衡,否则就有的container资源浪费。
  • 如果我设置2个slot,那就会产生5个taskmanager,一个taskmanager2个核。(设置了DominantResourceCalculator后,slot:vcores 自动就是1:1了,也可以手动指定 -Dyarn.containers.vcores=2,如果不配DominantResourceCalculator,手动指定也不生效 )
  • taskManager内存与slot的比例可以设置为 2G:1,一个slot分配2G内存,但是总的ts内存不要特别大,最好不要超过8G(yarn默认的最大容器内存),一定要注意核数多了一定要分配足够的内存(如果太少,每个核心分配到的内存太少,多核发挥不出优势),这两个条件相互制约也是我们设置资源的依据
  • 比如上述方案如果我设置slot为5,那么就会产生2个taskmanager,每个taskmanager的核心为5,那匹配的内存就得是10G,这样超过了yarn的限制,最好不要,如果非要这样用需要修改yarn的资源配置参数 yarn.scheduler.maximum-allocation-mb
  • 如果我设置为3,那么需要启动4个taskmanager,每个为3核,那么会导致cpu资源不足

TaskManager 数 = Job 的最大并行度 / 每个TaskManager 分配的任务槽数slot,结果向上取整

# 自动设置taskmanager核数,与slot 1:1
flink run -t yarn-per-job -c  cn.chinaunicom.sdsi.flink.security.test -p 10 \
-Djobmanager.memory.process.size=2G \
-Dtaskmanager.memory.process.size=4G \
-Dtaskmanager.numberOfTaskSlots=2 \
/home/manager/portal-flink-1.0-jar-with-dependencies.jar


# 手动指定taskmanager核数
flink run -t yarn-per-job -c  cn.chinaunicom.sdsi.flink.security.test -p 10 \
-Djobmanager.memory.process.size=2G \
-Dtaskmanager.memory.process.size=4G \
-Dtaskmanager.numberOfTaskSlots=2 \
-Dyarn.containers.vcores=1\ 
/home/manager/portal-flink-1.0-jar-with-dependencies.jar

在这里插入图片描述

flink的常见的任务提交方式 flink执行任务的三种方式,flinksql、flinkjar和flink Rest API 阅读详情

相关推荐

Flink运行架构之对Flink中的Slot概念的理解

在讲Slot之前建议先看上文https://blog.youkuaiyun.com/weixin_44080445/article/details/120008414 翻译官网可以得到如下内容 1.Flink中每一个worker(TaskManager)都是一个JVM进程,它可能会在独立的线程上执行一个Task。为了控制一个worker能接收多少个task(这里的task可以理解为上文里面经过合并后subtask的数量),worker通过Task Slot来进行控制(一个worker至少有一个Task Slot)。

mo 1907

Flink三种提交方式

第一种方式:YARN session 操作步骤 说明 1 yarn-session.sh(开辟资源)+flink run(提交任务) 这种模式下会启动yarn session,并且会启动Flink的两个必要服务:JobManager和Task-managers,然后你可以向集群提交作业。同一个Session中可以提交多个Flink作业。需要注意的是,这种模式下Hadoop的版本至少是2.

GavinKai 8413

Flink集群环境搭建(Standalone模式)

前置准备 CentOS7、jdk1.8、flink-1.10.1、hadoop-2.7.7 想要完成本期视频中所有操作,需要以下准备: Linux下jdk的安装 Scala环境搭建-视频教程 大数据常用shell脚本之分发脚本编写-视频教程 大数据常用shell脚本之ha-hadoop脚本编写-视频教程 大数据常用shell脚本之zk脚本编写-视频教程 Hadoop单机伪分布式-视频教程 Hadoop完全分布式集群环境搭建-视频教程 HA(高可用)-Hadoop集群环境搭建视频+图文教程 一、集群规划

广彐水厂 812

Flink学习笔记之提交任务

提交任务的形式有多种 一、Web页面提交方式 在集群启动之后, 在localhost:8081 可以很清楚的查看到 集群的运行状态, TaskManager、JobManager等等。 打包处理的时候还会涉及并行度的问题,我们可以根据情况自行设置。并行度问题:env 可以设置环境的并行度,每一步操作都可以设置 setParallelism 并行度。并行度优先级: 代码 -》全局 -》提交JobWeb-》集群配置文件默认并行度。 show plan 查看执行的 ...

weixin_45524021的博客 1373

flink on yarn搭建配置

1 配置HADOOP_CONF_DIR 2 提交jar命令 Flink 1.11中加入的新模式,公共Jar包提前放置到HDFS,然后Client将运行作业需要的依赖都通过Yarn Local Resource传递到JM。 最重要的一点是JobGraph的生成以及Job的提交不再会在Client执行,而是转移到 JM 执行(也就是说Application的main()方法从Client转到JM执行),客户端不需要上传Jar了而只需要负责Job提交和管理,这样网络下载上传的负载也会分 ...

勇往直前 1195

flink 并行度 任务链 task分配

Flink 中每一个 TaskManager 都是一个JVM进程,它可能会在独立的线程上执行一个或多个 subtask 为了控制一个 TaskManager 能接收多少个 task, TaskManager 通过 task slot 来进行控制(一个 TaskManager 至少有一个 slot) slot 主要隔离内存,cpu 是slot之间共享的。也就是说4核的机器 ,内存足够,可以把s...

qq_34897849的博客 4780

flink学习(scala版)--第三章:Flink的部署模式之(快速启动一个flink集群并且向集群提交任务)

Flink的部署模式之(快速启动一个flink集群并且向集群提交任务)

simple_code 1450

flink提交任务参数

网上参数众说纷纭不切实际 提交yarn任务参数设置: 参数 建议值 描述 -n (taskmanager) 节点数*(4-8) 1.10已废弃 该参数为Flink的taskmanager数目,Flink引擎运行需要由一个jobmanager以及若干个taskmanager构成。每个taskmanager都是独立的一部分,当有Flink应用需要运行时,会被随机分配到一个taskmana

GavinKai 4327

Flink 命令行提交参数

Flink 命令行提交参数: 1 参数必选 : -n,--container <arg> 分配多少个yarn容器 (=taskmanager的数量) 2 参数可选 : -D <arg> 动态属性 -d,--detached 独立运行 -jm,--jobManagerMemory <arg> JobManager的内存 [i

yang灬仔 1万+

Flink多种模式任务提交

目录 界面方式 命令方式 测试代码如下: package wordcount import org.apache.flink.api.java.utils.ParameterTool import org.apache.flink.streaming.api.scala._ /** * Created by leboop on 2020/5/19. */ object StreamWordCount { def main(args: Array[String]): Unit = {

L 2137

Flink面试篇-基础/源码

面试题 1:请介绍一下 Flink 这道题是一道很简单的入门题,考察我们队 Flink 整体的掌握情况,我们应该从以下几个基本的概念入手。 Flink 是大数据领域的分布式实时和离线计算引擎,其程序的基础构建模块是流(Streams)和转换(Transformations),每一个数据流起始于一个或多个Source,并终止于一个或多个Sink。数据流类似于有向无环图(DAG)。 Flink 提供了诸多高抽象层的 API 以便用户编写分布式任务: ...

someInNeed的博客 314

flink

提交任务到flink运行模式

qq_53291901的博客 1051

PX4|Gazebo模型加载失败排查指南:从环境变量到资源路径的全面解析

本文针对PX4与Gazebo联合仿真中常见的'Unable to get model name'错误,提供了从环境变量配置、资源路径排查到网络访问问题的全面解决方案。详细解析了GZ_SIM_RESOURCE_PATH等关键变量的作用与设置方法,并给出了离线模型库部署等一劳永逸的修复指南,帮助开发者彻底解决无人机模型加载失败问题。

weixin_29243063的博客 1230

Flink流式计算从入门到实战 二

文章目录三、Flink运行架构1、JobManager和TaskManager2、并发度与Slots3、开发环境搭建4、提交到集群执行5、并行度分析6、Flink整体运行流程 Flink流式计算实战专题二 ==楼兰 三、Flink运行架构 这一章重点是分析清楚运行架构以及并行度与slot的分配 1、JobManager和TaskManager ​ 从之前的环境搭建过程中,也能够看到, Flink中的节点可以分为JobManager和TaskManager。 ​ JobManager处理器也称为Maste

roykingw的专栏 899

Groq LPU架构解析:确定性线性处理器如何重塑AI推理

语言模型推理正从‘通用算力堆叠’转向‘确定性硬件定制’。LPU(Language Processing Unit)作为一种面向大模型推理的领域专用处理器,摒弃传统GPU的并行调度、多级缓存与动态执行范式,转而采用空间计算、静态编译与单线程线性流水线设计,实现纳秒级延迟可控性和92%+的HBM带宽利用率。其核心价值在于将模型结构、内存访问、时序路径全部在编译期固化,从而消除运行时抖动——这正是当前MLOps工程师应对A100显存碎片、vLLM调度开销与P99延迟不稳等痛点的关键技术路径。Groq 3 LPU与

weixin_30599521的博客 327

保姆级教程:用Qlib和LightGBM从零搭建你的第一个AI量化选股策略(附完整代码)

本文提供了一份详细的教程,教你如何使用Qlib和LightGBM从零搭建AI量化选股策略。教程涵盖了环境配置、数据获取、特征工程、模型训练和策略回测等关键步骤,并附有完整代码和常见问题解决方案,适合量化投资初学者快速上手。

weixin_29191081的博客 446

Flink面试系列-02

Flink源码中有一个独立的connector模块,所有的其他connector都依赖于此模块,Flink 在1.9版本发布的全新kafka连接器,摒弃了之前连接不同版本的kafka集群需要依赖不同版本的connector这种做法,只需要依赖一个connector即可。此外,Flink大量的使用了堆外内存。在一个Flink Job中,数据需要在不同的task中进行交换,整个数据交换是有TaskManager负责的,TaskManager的网络组件首先从缓冲buffer中收集records,然后再发送。

baidu_36611723的博客 670

从零到一构建一个智能爬虫 Agent 完整教程

本文将打造一个具备自主决策、动态解析、反反爬、持久化能力的智能爬虫 Agent

数据知道的博客 4798

数仓开发flink相关概念

【代码】数仓开发(1)-flink。

weixin_55207444的博客 99

Anaconda数据报错:Fatal error in launcher: Unable to create process using ‘“E:\Anaconda\python.exe“ “D:\

里面的pip.exe程序出现了问题,我这里直接删除,重新安装解决,上面已经手动删除pip.exe删除pip.exe,重新安装pip.exe用下面命令: 测试是否成功成功解决

Deng872347348的博客 1270

【ComfyUI 基础教程】ComfyUI 局部重绘工作流教程

本篇指南将带你了解 ComfyUI 中的局部重绘工作流,并带你完成一个局部重绘的示例,以及遮罩编辑器的使用等。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 303

【Flink-1.17-教程】-【三】Flink 运行架构、Flink 核心概念【并行度、算子链、任务槽】、Flink 作业提交流程

1、提交 job,执行运行程序的脚本(flink run)后,会生启动一个客户端进程。 2、客户端进程中会解析一些参数,如:-c(全类名) 3、生成逻辑流图(StreamGraph),通过 Operator Chain 对算子优化后,生成作业流图(JobGraph) 4、对解析完成的参数进行封装,然后通过内部的 Actor 通信系统(基于 RPC)提交、或取消(flink cancel)、或更新,将任务发送给 JobManager。 5、JobManager 自身也会有一个 Actor 通信系统

weixin_53543905的博客 2027

【软件系统架构】系列四:嵌入式软件-NPU(神经网络处理器)系统及模板

NPU(Neural Processing Unit) 是专门用于人工神经网络推理与训练的处理器,具备高并行、低功耗、低延迟等特点。它是边缘 AI、自动驾驶、智能摄像头、语音识别等场景中的关键硬件。

moton2017的博客 2253

Flink提交任务

Flink提交任务的方式有两种,第一种是自带的UI页面,但是这种提交方式很少有团队正式使用,因为这种方式的资源分配是按照task节点为单位运行并度的,一个并行度就要占用一个task节点,国内九成九的都是普通公司,不是大厂,根本用不起,这也是flink很少在国内使用的原因。第二种提交方式就是命令行模式,这种方式下就和UI提交是同源的,也可以提交给yarn。说白了就是国内使用flink时,也只是提交给了yarn,很少有公司有那个经济实力,直接把任务交给flink自身的jobmanager。

别人笑我太疯癫,我笑他人看不穿。 5816

基于python CNN卷积神经网络模型实现6类别垃圾分类 毕业设计 附完整代码数据

基于python CNN卷积神经网络模型实现6类别垃圾分类 毕业设计 附完整代码数据

1665

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

flink sql设置并行度_flink的slot 和parallelism

Flink架构1.flink是一个主从结构的分布式程序,它由client和cluster两部分组成。2.cluster由主节点JobManager(JM)和从节点TaskManager组成(TM)。 a.JM负责协调分布式执行:调度Task、协调检查点、协调失效恢复等工作。 JM至少要有一个,也可有多个。多个JM可基于zookeeper做HA,一个active,其余standby。...

weixin_39755824的博客 4394

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: doris 数据导入、数据权限、资源管理
下一篇: Flink 流转表,表转流,watermark设置
JNWsong
博客等级 码龄9年 287粉丝 204原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值