我对Hadoop很陌生,目前我已经在
上分配了一个项目“实施高级作业控制框架,以帮助链接多个Map-Reduce作业,即调查/改进现有的org.apache.hadoop.mapred.jobcontrol包。”
此项目在http://wiki.apache.org/hadoop/ProjectSuggestions#research_projects
上的随机创意下的项目建议页面上列出我的困惑是,我是否需要构建Oozie的高级版本(我认为这是一个链接多个工作的工作控制框架)或类似的东西,或者这意味着完全不同的其他东西。
我错过了什么?
答案 0 :(得分:5)
您所指的项目可能与this Jira ticket有关。
现在JobControl class非常简陋,缺少一些可以让用户的生活更轻松的功能。例如:
JobControl.run
就可以了,但实际上,如果我的工作发生变化,我会收到通知,这可能会很有趣。ControlledJob
类中具有最大重试次数参数,然后再重试该点发送失败的通知。最后我认为你不需要重新发明一个全新的框架,JobControl
类已经提供了一个很好的起点。尝试从用户的角度思考,您可以做些什么来使提交和管理工作变得更容易和更短。这里和票中的想法只是一个例子,你可以自由地提出自己的想法。
就 Oozie 而言,它为控制作业流提供了更高的抽象,但设置也更复杂,应保留用于更复杂的作业。我知道有些人对使用Oozie犹豫不决,因为它增加了应用程序的开销。另一个很大的区别是 Oozie 是服务器而JobControl
只是在客户端计算机上运行,这是额外的开销。虽然上面提到的一些功能以一种方式存在于 Oozie 中,但能够保持简单并在客户端计算机上运行,而无需像 Oozie 这样的额外工作在我看来是你项目的关键。