Hadoop前向调度
Posted
技术标签:
【中文标题】Hadoop前向调度【英文标题】:Hadoop forward scheduling 【发布时间】:2012-08-10 06:24:08 【问题描述】:在一篇关于实现用于分析大数据的决策树的谷歌论文中,他们提到了一些关于前向调度 map reduce 作业的内容。
他们说如果他们目前有 2 个作业要运行,他们会运行第一个作业,然后第二个作业开始设置。他们有一个线程来查看第一个作业何时完成以及何时完成,他们将输入提供给第二个作业并启动它。这为他们节省了大量时间,因为他们提到的算法具有迭代作业。
我想知道如何在 hadoop 上做到这一点。这是论文的引用。前向调度在第 6.1 段中
Planet
【问题讨论】:
【参考方案1】:如果您不想为此使用 Oozie,您可以直接在 Java 代码中执行此操作。
我写过如何在 Hadoop 中实现迭代作业:
http://codingwiththomas.blogspot.de/2011/04/controlling-hadoop-job-recursion.html
但请注意,这不是很有效,对于迭代繁重的算法,您最好使用Apache Hama。
【讨论】:
谢谢 thomas。在我第一次开始构建这个框架之前,我已经看过你的工作,我发现了一些有用的东西。问题是我现在已经完成它并且它工作得很好,我只寻找一些优化。我发现我自己认为 hadoop 不是很迭代,我看到了你关于 hama 的建议,但我不想搞砸新事物,因为我时间紧迫。 google 构建的东西肯定不是最有效的,但他们设法通过在 hadoop 级别的大量工作来高效地完成它。如果 hama 和 oozie 是唯一可以提供帮助的东西,那么我会及时看看它们跨度> 没问题,希望这个迭代工作流程适用于您的 mapreduce 作业。【参考方案2】:Oozie 是您正在寻找的。随着技术的发展,它有点不成熟,但我相信它会处理你描述的工作流程功能。您可以构建依赖关系图并触发事件执行。
【讨论】:
谢谢,我会看看它,但我的时间很短,我想我至少现在无法使用它。我已经完成了这个框架,我现在试着让它更有效率。谷歌做了同样的事情,他们首先完成了它,然后开始了很多优化,主要是在 hadoop 级别,而不是在算法本身。毕竟它的谷歌,我认为他们可以做这些事情:P以上是关于Hadoop前向调度的主要内容,如果未能解决你的问题,请参考以下文章