使用分支逻辑在本地自动化工作流程

时间:2019-05-21 07:07:39

标签: automation workflow scheduler airflow oozie

我已经使用Apache Oozie和Airflow在Hadoop集群中自动化工作流,这很容易用于指定分支逻辑。

我现在发现自己需要一个相同的框架来在Linux机器上本地自动化一个简单的管道。该管道由Bash脚本,Python脚本以及分支和并行化逻辑组成(它们根据前一个的输出来决定下一步执行多少个作业)。输出应写入本地文件系统。

我正在尝试使用在本地运行的Oozie来自动执行此操作。但是我觉得这可能是过大了-是吗?人们是否真的将Oozie用于简单的自动化任务?还是有我想要做的更好的工具/框架?

2 个答案:

答案 0 :(得分:2)

尝试Sparrow6-语言不可知的自动化框架,该框架可运行任务-用多种语言(Perl,Python,Bash,Ruby,Powershell)编写的插件。高级DSL是Perl6,例如:

#!perl6

directory "foo/bar"; # create directory, this is a core plugin

bash "uptime"; # execute Bash scripts, this is a core plugin

task-run "custom task", "cool-task" # execute custom plugin, created by user

现在,当create a plugin时,您可以从中返回state并在DSL代码中处理此状态:

my %state = task-run "get balance", "ATM", %( action => "get_balance" );

if %state<balance> > 0 {

  task-run "withdraw cash", "ATM", %(
    amount => %state<balance>
  )
}

这里是关于如何通过插件和状态实现管道/分支的想法。

答案 1 :(得分:0)

气流被认为是更好的选择。气流对用户更加友好,并且拥有更大的用户社区。 Airflow具有更直观的Web UI,功能更丰富。

气流也被认为具有更有效的分支。

如果您仍然不确定,可以check this out进行进一步阅读。这里也有一些code examples