我已经使用Apache Oozie和Airflow在Hadoop集群中自动化工作流,这很容易用于指定分支逻辑。
我现在发现自己需要一个相同的框架来在Linux机器上本地自动化一个简单的管道。该管道由Bash脚本,Python脚本以及分支和并行化逻辑组成(它们根据前一个的输出来决定下一步执行多少个作业)。输出应写入本地文件系统。
我正在尝试使用在本地运行的Oozie来自动执行此操作。但是我觉得这可能是过大了-是吗?人们是否真的将Oozie用于简单的自动化任务?还是有我想要做的更好的工具/框架?
答案 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。