我最近发现了许多选项,并且通过成熟度和稳定性进行比较很有趣。
答案 0 :(得分:14)
由于我是Scoobi的开发者,不要指望做出公正的回答。
首先,FlumeJava是一个内部谷歌项目,它提供了一个(非常高效的)抽象的MapReduce(虽然不是hadoop)。他们发布了一篇关于它的论文,这就是像Scoobi和Crunch这样的项目所基于的。
如果你的唯一标准是成熟 - 我想Cascading是你最好的选择。
然而,如果你正在寻找(imho superior)FlumeJava风格的抽象,你需要在(S)crunch和Scoobi之间选择。
最大的区别是,表面上看起来很简单,就是使用Scala绑定(Scrunch)用Java编写的。 Scoobi是用Scala编写的Java绑定(scoobij)。他们都是非常可靠的选择,你选择的不会出错。我确信与Crunch有相似的故事,但Scoobi正在用于实际项目并且正在不断发展。我们非常积极地修复错误和实现功能。
无论如何,他们都是伟大的项目,背后有伟大的人,并且彼此之间都被释放了。它们提供相同的抽象(具有类似的api),因此在两者之间切换不会是最轻微的问题。我的建议是尝试一下,看看哪些适合你。两个项目都没有锁定,所以你不需要提交:)
如果您对这两个项目有任何反馈,请务必提供:)
答案 1 :(得分:5)
我自己是一个很棒的 Scoobi 粉丝,我在制作中使用过它。我喜欢它允许你以非常惯用的Scala方式编写类型安全的Hadoop程序的方式。如果这不一定是你的事情而且你喜欢 Cascading 模型但是被你必须编写的大量样板代码所吓倒,那么Twitter最近开源了它自己的Scala抽象层。 Cascading 名为烫伤。
我认为这一点都是品味问题,因为功能方面大多数框架彼此非常接近。
答案 2 :(得分:2)
Scalding还具有构建在其上的重要开源项目的优势,例如Matrix API和Algebird。
以下是一些例子: http://sujitpal.blogspot.com/2012/08/scalding-for-impatient.html
Cascalog在Scalding发布前差不多两年发布,可以说有更强大的功能来构建强大的工作流程: https://github.com/nathanmarz/cascalog/wiki