任何人都可以建议哪个是最适合Hadoop的调度程序。如果是oozie。 oozie与cron的工作有什么不同。
答案 0 :(得分:1)
Oozie是最好的选择。
Oozie Coordinator允许在文件到达HDFS时触发操作。在其他地方实施这将是一项挑战。
Oozie从MapReduce作业获得回调,因此它知道它们何时完成以及它们是否在没有昂贵的轮询的情况下挂起。没有其他工作流程管理员可以做到这一点。
与crontab相比,有一些好处,指向一些链接
答案 1 :(得分:0)
Oozie能够在数据可用性方面开始工作,这不是免费的,因为有人必须说明数据何时可用。 Oozie允许您使用鼠标构建复杂的工作流程。 Oozie允许您使用协调器安排工作流程执行。 Oozie允许您捆绑一个或多个协调员。
在hadoop上使用cron是一个坏主意,但它仍然快速,可靠,众所周知。如果你要使用cron,大多数oozie上免费的工作都必须编码。
使用没有Java的oozie意味着(在当前日期)满足一长串的依赖性问题。 如果您是Java程序员,那么oozie是必须的。
当您处于测试/验证阶段时,Cron仍然是一个不错的选择。
答案 2 :(得分:0)
Oozie分别将工作流和计划的规范分为工作流规范和协调规范。协调器规范是可选的,仅在您希望按计划重复运行作业时才需要。按照惯例,您通常会在名为workflow.xml的文件中看到工作流规范,在名为coordinator.xml的文件中看到协调器规范。新的类cron调度会影响这些协调器规范。让我们来看一个协调器规范,该规范将导致工作流在每个工作日凌晨2点运行。
[xml]
<coordinator-app name="weekdays-at-two-am"
frequency="0 2 * * 2-6"
start="${start}" end="${end}" timezone="UTC"
xmlns="uri:oozie:coordinator:0.2">
<action>
<workflow>
<app-path>${workflowAppUri}</app-path>
<configuration>
<property>
<name>jobTracker</name>
<value>${jobTracker}</value>
</property>
<property>
<name>nameNode</name>
<value>${nameNode}</value>
</property>
<property>
<name>queueName</name>
<value>${queueName}</value>
</property>
</configuration>
</workflow>
</action>
</coordinator-app>
[/xml]
这里的关键是coordinator-app元素中的频率属性,这里我们看到一个类似cron的规范,它指示Oozie何时运行工作流。值for在另一个属性文件中指定。规范是“类似cron”的,您可能会注意到一个重要的区别,一周的日期编号为1-7(1表示星期日),而不是标准cron中使用的0-6编号。
有关信息,请访问:http://hortonworks.com/blog/new-in-hdp-2-more-powerful-scheduling-options-in-oozie/
答案 3 :(得分:0)
Apache oozie用于处理yarn和hdfs。
oozie提供了许多功能,如数据依赖,协调器,工作流操作。 Oozie documentation
我认为oozie是最好的选择
当然可以使用cron。但是你必须付出很多努力才能使用hadoop。