elasticsearch job执行流程
2016-05-27 10:32:24 0 举报
Elasticsearch Job执行流程主要包括以下几个步骤:首先,用户通过API提交一个Job请求,该请求包含了任务的相关信息,如任务类型、数据源等。接着,Job Scheduler接收到请求后,会根据任务的类型和数据源将任务分配给相应的节点。然后,节点上的节点管理器(Node Manager)会负责执行任务,包括数据的读取、处理和写入等操作。在执行过程中,如果遇到错误或异常,节点管理器会将错误信息上报给集群管理器(Cluster Manager),由其进行故障处理和恢复。最后,当任务完成后,节点管理器会将结果返回给用户,同时更新集群的状态信息。
作者其他创作
大纲/内容
是
等待分片结束
已开启misfire且存在misfire的分片且未stoped且不需重分片?
否
是否监控作业执行时状态?
remove或产生多的execution/item;remove leader/execution/necessary
分片项set为本job server失效转移的分片序列集合
分片项为空?
remove leader/execution/cleaning
启用监控且存在execution/item/running?
remove leader/failover/items/item
分片置execution/item/misfire
executeJob
是否leader?
开始获取当前Job服务器运行时分片上下文
获取到本job server的失效转移序列号execution/item/failover且ip同节点值?
开始清理作业上次运行时信息
写servers/ip/status为RUNNING
是leader节点?
开始executeJobInternal
replace servers/ip/sharding;remove leader/sharding/necessary;remove leader/sharding/processing
是否检查时间误差?
结束
立即启动作业
注册job启动信息
remove execution/item/failover
写临时节点leader/sharding/processing
在主节点执行判断,取到leader/failover/items get(0)
获取当前Job服务器运行时分片上下文结束
executeJobInternal
结束executeJobInternal
写execution/item/completed;remove execution/item/running;写execution/item/lastCompleteTime
是否需要重分片?
分片列表为空?
取分片策略,产生分片策略选项,分片
写servers/ip/status为READY
分片结束
清除所有Job服务器上的分片列表servers/ip/sharding
开始
存在leader/failover/items且子节点不为空且server状态为READY(不是stop也不是disable)?
写临时节点execution/item/running;写execution/item/lastBeginTime和nextFireTime
本机与注册中心时间误差是否在允许范围?
是否开启job监控?
等待正在执行的Job结束
开始分片
remove execution/item/misfire
排除正在执行的分片execution/item/running
等待leader/execution/cleaning被remove
写临时节点leader/execution/cleaning;remove execution/item/completed
抛异常
写临时节点execution/item/failover为本机IP
存在execution节点?
开启failover且未stoped?
清理作业上次运行时信息结束
是否开启失效转移?
remove all 本机上被失效转移序列号
设置分片选项和offset/item
存在leader/execution/necessary?
0 条评论
下一页