Oozie MR发射器有什么意义?

Pra*_*ati 7 hadoop mapreduce oozie

我用Sqoop,Hive和Pig动作创建了一个简单的Oozie工作流程.对于每一个动作,Oozie发射一个MR发射器,然后发射动作(Sqoop/Hive/Pig).因此,工作流程中的3个操作总共有6个MR作业.

为什么Oozie启动MR启动器来启动操作而不是直接启动操作?

Pra*_*ati 4

我在 Apache Flume 论坛上发布了相同的内容,以下是回复。

这也是为了防止 Oozie 服务器陷入困境或变得不稳定。例如,如果您有一堆运行 Pig 作业的工作流程,那么您将让 Oozie 服务器直接运行 Pig 客户端(这是一个相对“重”的程序)的多个副本。通过将所有用户代码和外部客户端移动到启动器作业中的映射任务,Oozie 服务器仍然更加轻量级并且不易出错。这种方式还可以提高可扩展性,因为启动器作业将作业启动/监控分发到集群中的其他机器;否则,当 Oozie 服务器完成所有工作时,我们必须根据 Oozie 服务器的机器规格(RAM、CPU 等)限制并发工作流程的数量。最后,从架构的角度来看,Oozie 服务器本身是无状态的;也就是说,所有内容都存储在数据库中,并且 Oozie 服务器可以随时关闭而不会丢失任何内容。如果我们直接从 Oozie 服务器启动作业,那么我们现在就会有一些状态(例如 Pig 客户端无法重新启动和恢复)。