Hadoop 实施高级作业控制框架以帮助链接多个Map REDUCT作业意味着什么?

Hadoop 实施高级作业控制框架以帮助链接多个Map REDUCT作业意味着什么?,hadoop,mapreduce,oozie,Hadoop,Mapreduce,Oozie,我是Hadoop的新手,目前我被分配了一个关于Hadoop的项目 “实施一个高级作业控制框架,帮助链接多个Map Reduce作业,即调查/改进现有的org.apache.hadoop.mapred.jobcontrol包。” 该项目列在项目建议页面的“随机想法”下 我的困惑是,我是否必须构建Oozie的高级版本(我认为这是一个链接多个作业的作业控制框架)或类似的东西,或者这意味着完全不同的其他东西 我遗漏了什么?看起来您所指的项目可能与此相关 目前,该软件非常简单,并且缺少了一些可以让用户生活

我是Hadoop的新手,目前我被分配了一个关于Hadoop的项目

“实施一个高级作业控制框架,帮助链接多个Map Reduce作业,即调查/改进现有的org.apache.hadoop.mapred.jobcontrol包。”

该项目列在项目建议页面的“随机想法”下

我的困惑是,我是否必须构建Oozie的高级版本(我认为这是一个链接多个作业的作业控制框架)或类似的东西,或者这意味着完全不同的其他东西


我遗漏了什么?

看起来您所指的项目可能与此相关

目前,该软件非常简单,并且缺少了一些可以让用户生活更轻松的功能。例如:

  • 当作业状态发生变化时获取通知的能力:现在您只需调用
    JobControl.run
    ,就可以了,但实际上,如果在作业发生变化时能够得到通知,那可能会很有趣
  • 重新提交失败的作业:您可以实现一种功能,在作业失败时/如果作业失败时重新提交作业,例如,您可以在
    ControlledJob
    类中有一个max number of retries参数,并在发送失败通知之前重试到该点
  • 很多工作都是定期进行的,每周、每天、每小时。。。这通常是通过crontab完成的,因此在Hadoop中嵌入此功能可能会很有趣,例如,用户可以通过指定一个周期来设置定期作业,而JobControl将以这些定期间隔运行它
  • 可能有一个UI来可视化您的作业流和每个作业的依赖关系,哪些步骤已经完成,哪些步骤还没有完成
  • 它不仅可以启动Map/Reduce作业,还可以启动Hive,例如Pig,这样您就可以为用户提供一个通用的界面来提交任何类型的作业并无缝地监视它们
最后,我认为您不需要重新创建一个全新的框架,
JobControl
类已经提供了一个很好的起点。试着从用户的角度思考,您可以做些什么来简化提交和管理作业的过程。这里和票上的想法只是一个例子,你可以自由地提出自己的想法


Oozie而言,它为控制作业流提供了更高的抽象,但它的设置也更复杂,应该保留给更复杂的作业。我知道一个事实,有些人对使用Oozie犹豫不决,因为它会增加应用程序的开销。最大的区别还在于,Oozie是一个服务器,而
JobControl
只是在客户机上运行,这是额外的开销。虽然上面提到的一些功能以某种方式出现在Oozie中,但在我看来,让它保持简单并在客户端机器上运行而不需要像Oozie这样的额外工作的能力是您项目的关键。

我不确定。然后看看迭代地图,平流层和中尺度。谢谢你的回复查尔斯,我同意你的观点,但我唯一的疑问是,它和奥齐有什么不同。我想你提到的所有要点都已经出现在Oozie框架中了?@bril我添加了更多细节,简言之,是的,Oozie中存在一些功能,但Oozie是一种不同的动物,它更复杂,可以作为服务器工作,例如,我不使用Oozie,因为它增加了太多的开销,所以我有实用程序来帮助我在我的客户机上管理这些东西-这是我认为作为项目的一部分,您应该尝试通过扩展现有的类来做的事情。在这种情况下,Hamake是一个更好的选择,它作为实用程序和遵循数据流模型,完成几乎所有需要的工作。这再次让我对如何继续我的工作感到困惑。@bril Hamake是一个命令行实用程序如果我没有弄错的话,你不能通过像
JobControl
这样的Java API直接控制你的作业流,这应该是你项目的全部要点。另外,Hamake不支持通知、重试或作业调度等功能。