我们正在启动一个基于大数据的分析项目,我们正在考虑采用scala(typeafe stack)。I would like to know the various scala API'sprojects which are available to do hadoop , map reduce programs.
一定要检查出来 烫金. 作为一个用户和偶尔的贡献者,我发现它是一个非常有用的工具。Scalding API也是为了与标准的Scala集合API非常兼容。就像你可以在普通集合上调用flatMap、map或者groupBy一样,你也可以在烫金Pipes上做同样的事情,你可以把它想象成一个分布式的List of tuples。还有一个类型化版本的API,它提供了更强的类型安全保证。我没有用过Scoobi,但API似乎和他们的类似。
此外,还有一些其他的好处。
另一个选择是 平流层它提供了一个 Scala API 将Scala类型转换为Stratosphere的内部数据类型。
该API与Scalding十分相似,但Stratosphere原生支持高级数据流(因此你不必链上MapReduce Jobs)。你使用Stratosphere会比使用Scalding有更好的性能。
Stratosphere 并非运行在 Hadoop MapReduce 上,而是运行在 Hadoop YARN所以,你可以 使用您现有的YARN集群.
这是Stratosphere中的字数实例(使用Scala API)。
val input = TextFile(textInput)
val words = input.flatMap { line => line.split(" ") }
val counts = words
.groupBy { word => word }
.count()
val output = counts.write(wordsOutput, CsvOutputFormat())
val plan = new ScalaPlan(Seq(output))