`
rcfalcon
  • 浏览: 221461 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个简单的集群任务调度框架

 
阅读更多

说到服务器集群后台的任务调度,这可能是很多网站或者计算集中型方案经常使用到的。

本文不讨论map/reduce级别的任务拆分和调度,本文设计的调度框架只满足以下几点特性:


1)轻量级,代码框架及实现原理非常简单,容易部署

2)集群可扩展,理论上集群机器数量,以及每台机器上的执行任务数都可扩展

3)业务单元化,业务定义的下发任务是具体的、可颗粒化的,本框架不辅助做任务或工作流的拆分,只接受最细颗粒化的任务


实现原理:

1)所有计算节点(这里指一个程序实例)均地位平等

2)任务以一个文件的形式存在,计算节点通过共享文件系统去“抢”任务。

3)所有的计算节点均永久存在,不断的扫描任务文件

4)业务系统下发任务,即直接生成一个文件


我们将计算节点定义为worker,那么worker的主逻辑如下


While(true){

If(find(以前未完成的任务文件)||find(任务文件)){

将该文件增加扩展名+本机ip.实例号

处理任务

将任务文件迁移到finish目录

}

}


以下为python的实现,供参考。



用到的filelocker跨平台文件锁




workerbase使用样例



分享到:
评论

相关推荐

    分布式任务调度框架 集合

    LTS是一个轻量级分布式任务调度框架。有三种角色, JobClient, JobTracker, TaskTracker。 4. uncode-schedule 基于zookeeper+spring task的分布式任务调度组件,非常小巧,无需任何修改就可以使spring task具备...

    大数据“分布式调度框架”大集合.docx

    一个合适的任务调度框架对于项目的整体性能来说显得尤为重要。 2、常见的任务调度框架有哪些? 我们在实际的开发工作中,或多或少的都会用到任务调度这个功能。常见的分布式任务调度框架有:cronsun、Elastic-job、...

    基于python模拟多集群调度的任务调度器源码+项目说明(含随机算法、贪心算法、预测算法、蚁群算法).zip

    基本框架框架已搭建完全(初始化、任务创建、任务调度(from进程池to集群结点)、完成队列(资源释放)、监控单元) 基于文件实现的文件锁(windows无fcntl等库) 待做: 1. 集群资源动态可视化未做,评估调度...

    earth-frost任务调度框架-其他

    earth-frost是一个轻量级分布式任务调度框架。 介绍: 调度模块和执行模块分离 使用redis作为数据库 基于订阅模式实现服务注册和发现 环境: Angular: v1.x JDK: 1.8+ Maven: 3+ Redis: 2.8+ Spring boot: 2.x ...

    quartz动态控制定时任务

    Quartz是一个开源的任务调度框架,可以用来实现定时任务的调度,如定时发送邮件、定时备份数据等。Quartz具有很高的可靠性和灵活性,支持集群部署和分布式调度,并且提供了丰富的API和插件,可以轻松实现复杂的调度...

    Java开源的分布式任务调度平台 xxl-job.zip

    XXL-JOB是一个轻量级分布式任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 1.2 特性 1、简单:支持通过Web页面对任务进行CRUD操作,...

    Quartz集群配置.doc

    Quartz 在开源任务调度框架中的翘首,它提供了强大任务调度机制,难能可贵的是它同时保持了使用的简单性。Quartz 允许开发人员灵活地定义触发器的调度时间表,并可以对触发器和任务进行关联映射。此外,Quartz提供了...

    java简易版开心农场源码-Westworld:分布式调度框架

    这是一个分布式延时调度框架,目前是第一个demo版本。 业务中很多地方都需要延时任务调度。 有的任务是周期性执行,比如每隔半小时更新本地缓存数据 有的任务是延迟执行一次,比如订单15分钟未付款提醒,优惠券到期...

    forest:分布式任务调度平台,分布式,任务调度,schedule,scheduler

    此分布式的定时任务调度平台,它非常轻量小巧,使用简单,后端以中心服务器为调度核心,负责集群中各种任务的动态分配和调度执行。 在平台前端支持Web界面可视化管理,我们可以创建、暂停/启动任务、删除未执行的...

    xxl-job:xxl-job二次开发 定时任务,增加API接口添加任务、删除任务等操作

    XXL-JOB是一个轻量级分布式任务调度框架,其核心设计目标是开发Swift、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 Documentation 二次开发内容 1、数据库连接池修改为druid 2、...

    Fourinone分布式并行计算四合一框架

    “包工头”负责承包一个复杂项目的一部分,可以理解为一个分配任务和调度程序,它由开发者自己实现,开发者可以自由控制调度过程,比如按照“农民工”的数量将源数据切分成多少份,然后远程分配给“农民工”节点进行...

    Quartz.net定时器

    Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的...

    QuartzAPI以及例子

    Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的...

    Hadoop集群_WordCount运行详解--MapReduce编程模型

    MapReduce采用"分而治之"的思想,把对大规模数据集的...一个Hadoop集群中只有一台JobTracker。 在分布式计算中,MapReduce框架负责处理了并行编程中分布式存储、工作调度、负载均衡、容错均衡、容错处理以及网络通信

    hadoop 1.2.1 api 最新chm 伪中文版

    Hadoop Map/Reduce是一个使用简易的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错的方式并行处理上T级别的数据集。 一个Map/Reduce 作业(job) 通常会把输入的...

    Fourinone分布式计算框架

    “包工头”负责承包一个复杂项目的一部分,可以理解为一个分配任务和调度程序,它由开发者自己实现,开发者可以自由控制调度过程,比如按照“农民工”的数量将源数据切分成多少份,然后远程分配给“农民工”节点进行...

    hydra:后端一站式微服务框架,提供API、web、websocket,RPC、任务调度、消息消费服务器

    基于golang的后端一站式服务框架hydra致力于为后端软件开发者提供简单的、统一的、完善的服务框架,减少在集群管理、配置管理、服务注册与发现、系统监控、日志归集、链路追踪、安全访问、常用组件等的心智消耗。...

    quartz-2.1.7_API CHM格式

    Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵 活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,...

    PowerJob-其他

    高性能:调度服务器经过精心设计,一改其他调度框架基于数据库锁的策略,实现了无锁化调度。部署多个调度服务器可以同时实现高可用和性能的提升(支持无限的水平扩展)。 故障转移与恢复:任务执行失败后,可根据...

    大数据开源框架集锦.pdf

    可视化的UI界⾯中⽅便地管理 配置和监控Hadoop以及其它所有相关组件 简单来说将⼗⼏个hadoop开源项⽬集成在⼀起 HDP 基于hadoop⽣态系统开源组件构建的⼤数据分析平台 2 集群管理与监控 Cloudera Manager ⽤于部署和...

Global site tag (gtag.js) - Google Analytics