工作流

Azkaban工作流调度

瘦欲@ 提交于 2019-12-15 07:17:39
二、工作流 1.工作流产生背景 工作流(Workflow),指“业务过程的部分或整体在计算机应用环境下的自动化”。 工作流解决的主要问题是:为了实现某个业务目标,利用计算机软件在多个参与者之间按某种预定规则自动传递文档、信息或者任务。 一个完整的数据分析系统通常都是由多个前后依赖的模块组合构成的:数据采集、数据预处理、数据分析、数据展示等。各个模块单元之间存在时间先后依赖关系,且存在着周期性重复。 2.工作流调度实现方式 简单的任务调度:直接使用linux的crontab来定义,但是缺点也是比较明显,无法设置依赖。 复杂的任务调度:自主开发调度平台,使用开源调度系统,比如azkaban、Apache Oozie、Cascading、Hamake等。 3.工作流调度工具之间对比 下面的表格对四种hadoop工作流调度器的关键特性进行了比较,尽管这些工作流调度器能够解决的需求场景基本一致,但在设计理念,目标用户,应用场景等方面还是存在显著的区别,在做技术选型的时候,可以提供参考。 三、Azkaban调度器 1.Azkaban介绍 Azkaban是由linkedin(领英)公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。

Azkaban工作流调度

拥有回忆 提交于 2019-12-13 08:33:10
1. 工作流产生背景 工作流(Workflow),指“业务过程的部分或整体在计算机应用环境下的自动化”。是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。工作流解决的主要问题是:为了实现某个业务目标,利用计算机软件在多个参与者之间按某种预定规则自动传递文档、信息或者任务。 一个完整的数据分析系统通常都是由多个前后依赖的模块组合构成的:数据采集、数据预处理、数据分析、数据展示等。各个模块单元之间存在时间先后依赖关系,且存在着周期性重复。 为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行。 2. 工作流调度实现方式 简单的任务调度:直接使用linux的crontab来定义,但是缺点也是比较明显,无法设置依赖。 复杂的任务调度:自主开发调度平台,使用开源调度系统,比如azkaban、Apache Oozie、Cascading、Hamake等。 其中知名度比较高的是Apache Oozie,但是其配置工作流的过程是编写大量的XML配置,而且代码复杂度比较高,不易于二次开发。 Azkaban调度器 Azkaban介绍 Azkaban是由linkedin(领英)公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。

工作流引擎选择(为何使用activiti)

*爱你&永不变心* 提交于 2019-12-12 18:14:48
之前在选择工作流引擎时曾经在activiti和jbpm之间有过比较,当时做出的决定是使用jbpm,但实际开发过程中发现这个选择是不合适的。目前我们改为选择Activiti作为工作流模块的引擎,理由如下: 1,Activiti拥有更简洁健壮的接口 JBPM自从版本五后,便重启炉灶,完全抛弃了JBMP4的代码基础,重新基于drools进行了实现。JBPM5,JBPM6似乎缺少一个合格的系统架构师,其接口设计匪夷所思,基本上是按照drools的接口再提供了一套JBPM接口,同名的接口,实现类不断重复出现,代码体系十分混乱。 一个典型的例子,同样是查询待办事项,在JBPM中接口如下: List<TaskSummary> getTasksAssignedAsBusinessAdministrator(String userId, String language); List<TaskSummary> getTasksAssignedAsExcludedOwner(String userId, String language); List<TaskSummary> getTasksAssignedAsPotentialOwner(String userId, String language); @Deprecated List<TaskSummary>

JEECG 3.6.5版本发布,企业级JAVA快速开发平台

独自空忆成欢 提交于 2019-12-12 12:21:35
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> JEECG 3.6.5版发布,企业级 Java 快速开发平台 JEECG 是一款基于代码生成器的J2EE快速开发平台,开源界“小普元”超越传统商业企业级开发平台。引领新的开发模式(Online Coding模式(自定义表单)->代码生成器模式->手工MERGE智能开发), 可以帮助解决Java项目60%的重复工作,让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省人力成本,同时又不失灵活性。她可以用于所有的Web应用程序,如:MIS,CRM,OA,ERP,CMS,网站后台, 微信 管家,等等,当然,您也可以对她进行深度定制,以做出更强系统。 ☆ J EECG 具有以下特点: 采用主流J2EE框架(SpringMVC+Hibernate+Minidao+Easyui),容易上手; 强大的代码生成器,一键生成 提供5套不同风格首页 开发效率很高,节省80%重复工作 使用最流行的的扁平化设计 在线开发能力,通过在线配置实现功能,零代码 在线报表配置能力,一次配置七种报表风格,支持移动报表 移动平台支持,采用Bootstrap技术,移动报表 强 大数据 权限,访问级,按钮级、数据行级,列级,字段级 国际化能力,支持多语言 多数据源,跨数据源操作,便捷集成第三方系统 简易Excel、Word 导入导出

ORALCE体系结构---实例的工作流程

淺唱寂寞╮ 提交于 2019-12-12 10:45:30
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 实例的管理: 一.启动和关闭 1.sqlplus: startup //启动 shutdown immediate //关闭 selert open_mode v$database 2. grid---database: srvctl startup database -d sidname(实例名) //打开实例 srvctl status database -d sidname //查看实例状态 srvtcl stop database -d sidname //关闭实例 查看帮助 [oracle@up12 ~]$ srvctl [oracle@up12 ~]$ srvctl start -h [oracle@up12 ~]$ vim /home/oracle/.db [oracle@up12 ~]$ srvctl status database -d maxdb 3. grid---grid srvctl startup database -d sidname(实例名) //打开实例 srvctl status database -d sidname //查看实例状态 srvtcl stop database -d sidname //关闭实例 crs_start ora.maxdb.db //打开实例

Azkaban调度器 概念

对着背影说爱祢 提交于 2019-12-09 22:47:10
Azkaban调度器 概念 Azkaban是由linkedin(领英)公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。 Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。 Azkaban特点: 功能清晰,简单易用的Web UI界面 提供job配置文件快速建立任务和任务之间的依赖关系 提供模块化和可插拔的插件机制,原生支持command、Java、Hive、Pig、Hadoop 基于Java开发,代码结构清晰,易于二次开发 Azkaban原理架构 mysql服务器 : 存储元数据,如项目名称、项目描述、项目权限、任务状态、SLA规则等 AzkabanWebServer :对外提供web服务,使用户可以通过web页面管理。职责包括项目管理、权限授权、任务调度、监控executor。 AzkabanExecutorServer :负责具体的工作流的提交、执行。 Azkaban三种部署模式 solo server mode 该模式中webServer和executorServer运行在同一个进程中,进程名是AzkabanSingleServer。使用自带的H2数据库。这种模式包含Azkaban的所有特性,但一般用来学习和测试。 two-server mode 该模式使用MySQL数据库,

应用Django构建工作流管理模块(一)

喜你入骨 提交于 2019-12-09 16:38:35
目前基于Django平台的CMS系统很多,Django自带的权限模块可实现简单功能的审批操作,对与复杂流程的审批则无法实现,由于Python语言的强大基因,遂自造轮子,构建了一个工作流管理模块。第一篇先上图,查看效果图。 图1-1 工作流模型定义 图1-2-1 工作流节点定义-基本信息 图1-2-2 工作流节点定义-扩展信息 图1-3 审批历史 图1-4 待办任务 图1-5 审批界面 图1-6 提交确认界面 图1-7 审批成功界面 ok,第一篇先介绍到这里,后面会陆续介绍实现原理。 来源: oschina 链接: https://my.oschina.net/u/937347/blog/476794

git工作流和最基础的命令

馋奶兔 提交于 2019-12-09 15:00:37
git的工作流 git的本地仓库一般有三颗“树”组成,也可以当做有三个区域,第一个是你的工作目录(working directory)它存有一个文件夹(windows)下的实际文件。第二个是暂存区(index)它像一个缓存区,只是暂时保存你的文件,第三个可以理解成仓库区(HEAD)它是你用来存放你所提交的代码的区域,当然上面三个区域不是在你的磁盘中真实存在的,它是虚拟的git的工作流。 git的生命周期 一般在git版本控制下的文件莫过于有两种状态:已跟踪状态和未跟踪状态,在跟踪状态下一个文件可能在暂存区,也可能被提交到了仓库中。(以下的git都是基于本人的本地情况) 使用git时文件的生命周期如下 其中没有被git跟踪的文件处于Untracked的状态,一般处于Untracked的状态的文件是新添加到当前文件夹下的文件,如果文件被跟踪之后便进入暂存区,文件变成Staged状态,如果暂存区的文件被提交了(commit)之后文件便进入仓库区,处于Unmodified的状态,如果文件再一次被修改之后便处于modified的状态,这时需要将该文件放入暂存区(git add),然后再一次提交到仓库(git commit),处于Unmodified状态一定是被跟踪的文件。 基本的git命令 检查当前文件状态 $ git status On branch master Your branch

工作流-Activiti核心API介绍

不问归期 提交于 2019-12-07 16:33:12
一、ProcessEngine。 谈到activiti核心的API那肯定是ProcessEngine类,其他所有的类都是由他而来。 如何创建:ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); 查看getDefaultProcessEngine()就可以发现activiti会默认加载classpath路径下activiti.cfg.xml文件。 activiti.cfg.xlm文件配置如下: 如上图可见此配置是jdbc配置信息,操作activiti的23张表。 查看org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration类可见activity默认支持h2数据库。 1、RepositoryService:管理流程部署及定义。 1)该类是activiti的仓库服务类,仓库及指流程定义文档的两个文件:.bpmn、.png 2)如何创建:RespositoryService respositoryService = processEngine.getRepositoryService(); 3)该类可以创建出一个DeploymentBuilder对象,用于部署流程。Deployment deployment =

WorkFlow设计篇Step.6—InvokeMethod调用对象或类型方法-WF4.0

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-07 04:16:58
开篇 上篇我们主要是讲述了《 WorkFlow设计篇Step.5—用户自定义工作流活动-WF4.0 》如何使用用户自定义活动来完成工作流的设计与开发,本篇我们将要开始讲述 设计篇的最后一章的内容,主要是讲述如何使用InvokeMethod的用法。 摘要 本篇我们是设计篇的最后一篇,本篇主要是讲述InvokeMethod的用法,一般来说有二种形式,一种是调用对象实例内的方法,一种是调用类型内部的方法,关于 具体的调用,我想大家也就基本了解了。 关于InvokeMethod的用法,我们本篇就会结合二种形式来说明。 关于InvokeMethod的二种不同的用法我们后面细细来说。 大纲 1、开篇 2、摘要 3、大纲 4、InvokeMethod活动的用法 InvokeMethod的用法 1、类型方法[静态方法] 1、新建一个控制台项目: 2、在现有项目上,添加一个静态类“TestMethod” class文件: 3、我们下载《 药店系统 》中的源码,使用其中的程序集: 4、修改静态类TestMethod内部的方法,代码如下: 5、修改项目中的配置文件的信息如下: 6、设计器视图内的工作流设计: 7、定义变量sequence上: 8、设置InvokeMethod活动上的属性: 9、下面我们就来设置相关的内容,我们来看看具体的其他的设置吧: a、选择targetType类型为静态类 b