北京高端网站制作,贵州做网站公司,wordpress 管理后台,怎么做网站后期推广Flink运行时架构 JobManager#xff1a;协调#xff0c;决定何时调度下一个task#xff0c;对失败任务做恢复。 ResourceManager: 负责Flink集群中的资源提供、回收、分配#xff0c;它负责管理task slot。standalone模式下#xff0c;不能自行启动新的taskmanagerDispatc…Flink运行时架构 JobManager协调决定何时调度下一个task对失败任务做恢复。 ResourceManager: 负责Flink集群中的资源提供、回收、分配它负责管理task slot。standalone模式下不能自行启动新的taskmanagerDispatcher 提供一个REST接口用来提交Flink应用程序执行为每个提交的作业启动一个新的jobMaster -运行Flink Web UI JobMaster: 负责管理单个JobGraph的执行我们的代码Flink并不能直接执行需要翻译为JobGraph才能执行。 TaskManger: 必须有一个 taskManaer和taskManager之间有数据交流 核心概念
并行度 并发多个任务资源只有一份需要竞争执行 并行多个任务资源有多份可以同时执行 并行度一个作业并行执行的程序数量 设置并行度 1.代码中设置全局并行度 env.setParallelism(1);2.在idea中执行如果没有明确设置并行默认为CPU核数3.在代码中设置算子并行度map().setParallelism()4.不建议在代码中设置并行度一般在提交作业到集群时指定并行度 bin/flink -p 并行度5.提交作业到集群如果没有设置和代码中都没有设置使用集群配置的并行度一般为1 优先级算子并行 全局并行度 shell命令 配置文件 算子链 上下游算子数据分发规则数据分区规则ChannelSelector RebalancePartitioner: 轮循方式,上下游并行度不一致时默认是rebalanceRescalePartitioiiner: 相对负载均衡按照轮循的方式将数据发送到下游组内Task的每个并行度中ShufflePartitioner: 洗牌按照随机的方式发送到下游Task的每个并行度中BroadcastPartioner: 广播根据下游并行度个数每个发一份GlobalPartitioner: 全局所有的数据之后发送到下游task的第一个并行度中强制并行度为1KeyGroupStreamPartioner: keyBy的效果按照key的hash值决定发往下游的哪个并行度中ForwardPartitioner: 直连上下游并行度一致。上游的并行度对应下游的并行度进行发送如果上下游并行度一致默认就是forward 算子链 将上下游的多个Task合并成一个大的Task形成的链条就是算子链合并算子链 1.上下游并行度必须一样2.数据的分发规则是forward 合并算子链的作用减少线程间的切换缓冲的开销并且减少延迟的同时增加整体吞吐量能不能不合并能 1.全局禁用算子链合并 env.disableOperatorChaining()2.针对算子设置startNewChain(): 开启新的算子链从当前算子开始与后面的进行合并disableNewChain():前面和后面不参与算子链合并