在没有Oozie的情况下定期运行MapReduce作业



我有一个mapree作业作为'jar',应该每天运行。另外,我需要从远程 java 应用程序运行此 jar。我该如何安排它:即,我只想每天从我的远程 java 应用程序运行作业。

我读过关于Oozie的文章,但我认为它在这里不合适。

看看石英。它使您能够运行独立的Java程序或在Web或应用程序容器(如JBoss或Apache Tomcat)中运行。特别是与弹簧和弹簧批次的良好集成。

Quartz可以在java代码之外进行配置-在XML中,语法与crontab完全相同。所以,我发现它非常方便。

ä一些例子可以在这里和这里找到。

我不清楚你的要求。您可以在程序中使用 ssh 命令执行库。适用于 Java 的 SSH 库如果你在 linux 环境本身运行你的程序,你可以设置一些 crontab 来定期执行。

如果你的 jar 的触发器是你的 java 程序,那么你应该每小时调度一次你的 java 程序,而不是 jar。如果这是分开的,那么您可以在 Oozie 工作流中安排您的 jar,您可以在 oozie 工作流的第一步中执行 java 代码,在第二步中执行 jar。

在oozie中,您也可以将参数从一个级别传递到另一个级别。希望这有帮助。

-迪皮卡·哈瓦尼

最新更新