Concurrency 运行Oozie工作流中的并发性:数量和控制方式

Concurrency 运行Oozie工作流中的并发性:数量和控制方式,concurrency,oozie,throttling,Concurrency,Oozie,Throttling,假设我们有一个Oozie工作流,它有一个复制操作节点,然后是一个Shell操作节点。我可以启动这样一个OOzie工作流的多个实例并并行运行它们吗?那么并发数可能达到数千和/甚至数百万的水平呢。这是可能的,或者甚至Oozie支持这种高级并发性 如果不是,那么我们将不得不考虑节流并强制执行多个并发OoZUI工作流实例。我们更愿意在服务器/Oozie端(基本上具有任何开箱即用的Oozie软件功能)而不是在客户端/被调用方端限制这一点。例如,我们有一个巨大的启动脚本,上面有这样的行。我们希望在一次尝试中

假设我们有一个Oozie工作流,它有一个复制操作节点,然后是一个Shell操作节点。我可以启动这样一个OOzie工作流的多个实例并并行运行它们吗?那么并发数可能达到数千和/甚至数百万的水平呢。这是可能的,或者甚至Oozie支持这种高级并发性

如果不是,那么我们将不得不考虑节流并强制执行多个并发OoZUI工作流实例。我们更愿意在服务器/Oozie端(基本上具有任何开箱即用的Oozie软件功能)而不是在客户端/被调用方端限制这一点。例如,我们有一个巨大的启动脚本,上面有这样的行。我们希望在一次尝试中运行它,然后让Oozie找出如何在自身上限制所有这些实例。我们不想把它分成多个较小的块,然后一次启动一个块

oozie job -oozie http://myhost.com:11000/oozie -config job1.properties -run
oozie job -oozie http://myhost.com:11000/oozie -config job2.properties -run
......
oozie job -oozie http://myhost.com:11000/oozie -config job1000000.properties -run

您的Oozie工作流并发性将无法高于集群上的映射槽数,因为Shell操作由一个映射器作业运行

如果您有许多工作流实例需要完成,那么最好的机制是使用Oozie协调器。这将跟踪每个实例的完成情况,并轻松管理并发性。Oozie coordinator有一个
标记,用于控制有多少工作流实例将并行执行,还有一个
标记,用于控制有多少实例在开始自由并发之前进入等待状态

见:


请注意,Oozie协调器的默认行为是在是否应创建新实例的每次轮询之间等待5分钟。如果您的工作流在5分钟内运行,则流程将在此时间间隔内出现瓶颈。您可以使用
oozie site.xml
文件中的
oozie.service.coordMaterializeRetriggerService.lookup.interval
属性(以秒为单位)更改此设置。

干得好Jeremy!谢谢!我还发现这两种配置,节流和并发,以及实验讲述了同样的故事。最后一个问题,您确定可以在秒级配置协调器吗?从这个链接,1分钟是我们能达到的最快频率?分钟是最小的。。。我试过了,但运气不好。