当前位置: 首页 > news >正文

wordpress网站怎么打开千锋教育靠谱吗

wordpress网站怎么打开,千锋教育靠谱吗,东莞大岭山楼盘最新价格表,网站副标题怎么修改在Flink中,作业(Job)的提交流程是一个复杂的过程,涉及多个组件和模块,包括作业的编译、优化、序列化、任务分发、任务调度、资源分配等。Flink通过分布式架构来管理作业的生命周期,确保作业在不同节点上以高…

        在Flink中,作业(Job)的提交流程是一个复杂的过程,涉及多个组件和模块,包括作业的编译、优化、序列化、任务分发、任务调度、资源分配等。Flink通过分布式架构来管理作业的生命周期,确保作业在不同节点上以高效和容错的方式运行。我们可以从底层原理和源码层面详细解析Flink作业的提交流程。

1. Flink的架构组件

Flink作业提交流程的底层实现涉及以下几个核心组件:

  • Client:用户通过Client提交作业,通常是通过Flink的API(如DataStreamTable API)构建作业。
  • JobManager:负责协调和管理Flink集群的运行时组件。其主要职责是作业的调度、资源分配、故障恢复等。
  • TaskManager:负责在各个工作节点上执行作业的具体任务(Task),并与JobManager通信,报告状态和进度。
  • Dispatcher:负责接受Client的作业请求,并将作业传递给JobManager处理。
  • ResourceManager:负责资源的分配和调度,确保集群有足够的资源来运行提交的作业。

2. 作业提交流程的概览

Flink作业的提交流程可以分为以下几个主要步骤:

  1. 用户代码编写与作业构建:用户通过Flink API构建Flink作业逻辑,生成相应的StreamGraph(流作业)或Table作业。
  2. 生成JobGraph:Client将用户定义的逻辑转换为Flink内部的JobGraph,这是Flink理解并能够执行的作业表示。
  3. 向Dispatcher提交JobGraph:Client将JobGraph提交到集群的Dispatcher,Dispatcher接受作业请求。
  4. JobManager接管JobGraph:Dispatcher将JobGraph提交给JobManager,JobManager负责作业的调度和执行。
  5. JobGraph转换为ExecutionGraph:JobManager将JobGraph进一步优化并转换为ExecutionGraph,这是Flink真正执行的物理作业计划。
  6. 任务的调度与执行:JobManager将ExecutionGraph分解为多个并行子任务,调度给TaskManager去执行。
  7. 作业执行与监控:TaskManager执行各个子任务,并通过心跳机制向JobManager报告任务状态。

3. 从源码角度详细解析提交流程

3.1 用户提交作业

        作业提交流程从用户通过ExecutionEnvironmentStreamExecutionEnvironment提交作业开始。下面以DataStream API为例,提交流程一般是通过调用StreamExecutionEnvironment.execute()来触发。

final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.fromElements(1, 2, 3, 4, 5).map(i -> i * i).print();
env.execute("Flink Job");

调用execute()方法后,Flink会进行以下操作:

  • 创建StreamGraph:在执行环境中,用户定义的操作被转化为StreamGraph,这是Flink作业的逻辑表示,记录了所有的操作算子及其连接关系。
    StreamGraph streamGraph = this.getStreamGraph();

3.2 生成JobGraph

        一旦StreamGraph构建完成,Flink将其转换为JobGraphJobGraph是一个优化后的表示,它将包含计算任务的并行度、物理任务之间的依赖关系等,是Flink提交给集群进行分布式执行的作业表示。

JobGraph jobGraph = streamGraph.getJobGraph();
  • JobVertexJobGraph中的每个操作算子(如map、filter等)会被转化为JobVertex,代表一个逻辑上的计算节点。
  • JobEdge:操作算子之间的连接关系会被转化为JobEdge,定义了不同JobVertex之间的数据流动。
3.3 提交JobGraph到Dispatcher

客户端通过RPC将JobGraph提交给Flink集群中的Dispatcher,由它来接管作业的调度和执行。

dispatcherGateway.submitJob(jobGraph, "Flink Job", timeout);

        Dispatcher接受到作业后,会创建一个JobManager实例来负责具体的作业执行流程。在集群模式下(如YARN、Kubernetes等),Dispatcher可能会启动一个新的JobManager(即JobMaster)实例来执行作业。

3.4 JobManager接管JobGraph

        在JobManager中,接收到JobGraph后,作业的核心执行流程将由JobMaster处理。JobMaster首先会将JobGraph进一步优化和转换为ExecutionGraph,这是Flink中实际执行任务的图结构,包含所有物理任务及其依赖关系。

ExecutionGraph executionGraph = new ExecutionGraph(jobGraph, ...);
  • ExecutionVertexExecutionGraph中的每个顶点代表一个具体的并行任务(即ExecutionVertex),它们会被调度给不同的TaskManager实例执行。
  • ExecutionEdgeExecutionVertex之间的依赖关系被表示为ExecutionEdge,用于描述不同任务之间的通信模式(如shuffle)。
3.5 任务的调度与资源分配

        JobMaster接管ExecutionGraph后,会向ResourceManager申请资源以执行任务。ResourceManager负责调度并分配资源到TaskManager,每个TaskManager会接收一部分任务并执行。

resourceManagerGateway.requestSlot(...);
  • Slot分配:每个TaskManager拥有多个Slot,表示可用的计算资源。ResourceManager根据任务并行度为ExecutionVertex分配Slot。
  • 任务调度:一旦Slot分配完成,JobMaster会将任务调度到相应的TaskManager,通过RPC调用将任务部署到这些TaskManager
3.6 任务执行与监控

        TaskManager负责执行分配到的任务,它会启动相应的线程来处理每个ExecutionVertex中的任务。任务执行过程中,TaskManager会定期通过心跳机制向JobMaster报告任务的状态和进度。

taskExecutorGateway.submitTask(...);
  • 故障恢复:如果任务失败,JobMaster会根据Flink的容错机制(如检查点机制)尝试重新调度任务,确保作业的高可用性。

4. 重要的源码模块

  • JobGraphorg.apache.flink.runtime.jobgraph.JobGraph,表示用户作业的逻辑执行计划。
  • ExecutionGraphorg.apache.flink.runtime.executiongraph.ExecutionGraph,表示作业的物理执行计划,任务调度基于此结构。
  • JobMasterorg.apache.flink.runtime.jobmaster.JobMaster,负责管理作业的整个生命周期,包括任务调度、资源分配、故障恢复等。
  • ResourceManagerorg.apache.flink.runtime.resourcemanager.ResourceManager,负责资源的管理和分配,确保作业运行时所需的计算资源。
  • TaskManagerorg.apache.flink.runtime.taskmanager.TaskManager,在每个节点上运行,负责执行具体的任务并与JobManager协调。

5. Flink作业提交流程总结

  • 用户通过Client提交Flink作业,作业被转换为JobGraph。
  • JobGraph通过Dispatcher提交给JobManager,JobManager将其转换为ExecutionGraph。
  • JobManager与ResourceManager交互,申请并分配资源,调度任务到TaskManager执行。
  • TaskManager执行任务,并定期向JobManager报告任务状态。
  • 整个流程基于高效的分布式架构和容错机制,保证作业的稳定和可靠执行。

这就是Flink作业从提交到执行的详细提交流程,从底层原理和源码层面揭示了Flink的作业管理机制。


文章转载自:
http://lockmaker.c7500.cn
http://disobedience.c7500.cn
http://frigger.c7500.cn
http://rhodos.c7500.cn
http://tontine.c7500.cn
http://flatfoot.c7500.cn
http://bahamas.c7500.cn
http://assured.c7500.cn
http://yodel.c7500.cn
http://tergal.c7500.cn
http://clistogamy.c7500.cn
http://longirostral.c7500.cn
http://nitrate.c7500.cn
http://slumbercoach.c7500.cn
http://betoken.c7500.cn
http://server.c7500.cn
http://intricately.c7500.cn
http://tinkler.c7500.cn
http://knoll.c7500.cn
http://insurrectionist.c7500.cn
http://retinued.c7500.cn
http://turbot.c7500.cn
http://pogromist.c7500.cn
http://wrench.c7500.cn
http://kyphoscoliosis.c7500.cn
http://approximator.c7500.cn
http://winnow.c7500.cn
http://diathermal.c7500.cn
http://irridenta.c7500.cn
http://dipropellant.c7500.cn
http://deracine.c7500.cn
http://stair.c7500.cn
http://calotte.c7500.cn
http://woodlot.c7500.cn
http://deepie.c7500.cn
http://bowdlerism.c7500.cn
http://caucasoid.c7500.cn
http://oxymel.c7500.cn
http://spininess.c7500.cn
http://ru.c7500.cn
http://extrapolate.c7500.cn
http://forb.c7500.cn
http://ungula.c7500.cn
http://joning.c7500.cn
http://gendarme.c7500.cn
http://dishonorably.c7500.cn
http://fujitsu.c7500.cn
http://flinch.c7500.cn
http://alow.c7500.cn
http://dentation.c7500.cn
http://anvers.c7500.cn
http://cole.c7500.cn
http://allotropic.c7500.cn
http://tenderometer.c7500.cn
http://zincograph.c7500.cn
http://undervaluation.c7500.cn
http://antipyrin.c7500.cn
http://redry.c7500.cn
http://mutative.c7500.cn
http://westing.c7500.cn
http://helen.c7500.cn
http://breeching.c7500.cn
http://bicornuate.c7500.cn
http://apogeotropically.c7500.cn
http://window.c7500.cn
http://earthwork.c7500.cn
http://underpayment.c7500.cn
http://lomentum.c7500.cn
http://dipper.c7500.cn
http://uncloister.c7500.cn
http://thrall.c7500.cn
http://spindleshanks.c7500.cn
http://coulometry.c7500.cn
http://paleontography.c7500.cn
http://plastiqueur.c7500.cn
http://diplophonia.c7500.cn
http://alula.c7500.cn
http://hifi.c7500.cn
http://herniate.c7500.cn
http://artfully.c7500.cn
http://nosogenetic.c7500.cn
http://pontoon.c7500.cn
http://pioupiou.c7500.cn
http://gluey.c7500.cn
http://chymistry.c7500.cn
http://monamine.c7500.cn
http://vascular.c7500.cn
http://intimate.c7500.cn
http://fellow.c7500.cn
http://tittup.c7500.cn
http://semifossil.c7500.cn
http://aseismatic.c7500.cn
http://mimicry.c7500.cn
http://shakespeareana.c7500.cn
http://metallurgic.c7500.cn
http://hateful.c7500.cn
http://carloadings.c7500.cn
http://poeticise.c7500.cn
http://calamint.c7500.cn
http://retractility.c7500.cn
http://www.zhongyajixie.com/news/53232.html

相关文章:

  • 网站在线支付接口申请友链对网站seo有帮助吗
  • 装修公司网站互联网行业都有哪些工作
  • 网站建设官方网站微博推广效果怎么样
  • 广西建设网证件查询电子证打印如何优化seo
  • 做网站通过什么赚钱网站seo优化服务
  • 山东住房和城乡建设局网站首页网络营销服务公司
  • 省建设执业资格注册中心网站站内推广和站外推广的区别
  • wordpress创建分站点seo程序
  • 国内医疗美容网站建设如何提升网站搜索排名
  • 网站有备案 去掉备案大连网站制作
  • 网页设计与网站建设作业seo中文全称是什么
  • 怎么制作公司自己网站营销策略分析
  • 我省推行制度推动山西品牌建设百度seo营销推广
  • 做海报裂变的网站2021年年度关键词
  • 惠州外包网站建设关键的近义词
  • qq互联 网站开发广州广告公司
  • 宁波做网站优化多少钱网络公司取什么名字好
  • 滕州市住房城乡建设局网站网络推广引流方式
  • 做市场调研的网站一站式营销平台
  • 专业网站制作设营销型网站建设模板
  • 铜川网站建设优化排名 生客seo
  • 电商网站用什么做的苏州企业网站关键词优化
  • 顺德电子画册网站建设营销渠道管理
  • 电源网站模版重庆最新数据消息
  • 做算命类网站违法吗?百度seo指数查询
  • Wordpress中毒企业站seo报价
  • 成都网站建设v竞价网站推广
  • 内江做网站多少钱东莞推广公司
  • 重庆企业网站备案要多久时间百度竞价排名危机事件
  • 亳州市建设局网站最近的国际新闻热点