什么是用于Hadoop的Java/Scala数据分析管道构建的最成熟的库?

18
3个回答

14

作为Scoobi的开发者,不要期望我会给出客观的答案。

首先,FlumeJava是Google内部的一个项目,它在MapReduce之上提供了一个(非常高效的)抽象层(尽管不是Hadoop)。他们发布了一篇论文,这就是像Scoobi和Crunch这样的项目的基础。

如果您唯一的标准是成熟度--我想Cascading是您最好的选择。

然而,如果您正在寻找(在我看来更优越的)FlumeJava风格的抽象层,那么您需要在(S)crunch和Scoobi之间进行选择。

最大的区别,尽管表面上看起来很小,是crunch用Java编写,具有Scala绑定(Scrunch)。而Scoobi是用Scala编写的,具有Java绑定(scoobij)。它们都是非常可靠的选择,不管你选择哪个,你都不会错。我相信Crunch也有相似的故事,但Scoobi正在真实的项目中使用,并且在持续发展中。我们非常积极地修复错误并实现功能。

总之,它们都是伟大的项目,背后有伟大的人物,并且它们都在数天之内发布。它们提供了相同的抽象层(具有类似的API),因此在两者之间切换不会成为问题。我的建议是尝试使用它们,看看哪个适合您。这两个项目都没有锁定,因此您无需承诺。

如果您对任何一个项目有任何反馈,请务必提供。


5

我自己是一个大的Scoobi粉丝并且在生产中使用过它。我喜欢它允许你以非常习惯的Scala方式编写类型安全的Hadoop程序的方式。如果这不是你的菜,而你喜欢Cascading模型但是因为要写大量样板代码而感到害怕,Twitter最近开源了自己的Scala抽象层,即Scalding,建立在Cascading之上。

我认为现在这完全是一种品味问题,因为在功能方面,大多数框架都非常接近。


2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接