web-dev-qa-db-ja.com

scalaのhadoopのオプションは何ですか?

ビッグデータベースの分析プロジェクトを開始しており、scala(タイプセーフスタック)の採用を検討しています。さまざまなscala API's /を知りたいです。 Hadoop、MapReduceプログラムを実行できるプロジェクト。

24
prassee

間違いなくチェックアウト Scalding 。ユーザーとして、そして時折寄稿者として話すと、私はそれが非常に便利なツールであることに気づきました。 Scalding APIは、標準のScalaコレクションAPIとの互換性も非常に高いことを意味します。通常のコレクションでflatMap、map、またはgroupByを呼び出すことができるのと同様に、Scaldingパイプでも同じことができます。タプルの分散リストとして想像できます。より強力な型安全性の保証を提供するAPIの型付きバージョンもあります。私はScoobiを使用していませんが、APIはそれらが持っているものと似ているようです。

さらに、他にもいくつかの利点があります。

  • Scaldingは、Twitterでの本番環境で頻繁に使用されており、Twitter規模のデータセットでバトルテストが行​​われています。
  • Twitterの内外を問わず、すばらしい貢献をしている積極的な貢献者が何人かいます。
  • これは、既存のカスケードジョブと相互運用可能です。
  • Typed APIに加えて、Rおよびデータフレームフレームワークのユーザーにとってより馴染みのあるFieldsAPIがあります。
  • 堅牢な マトリックスライブラリ を提供します。
20
arkajit

Scoobi で成功しました。使用するのは簡単で、強く型付けされ、Hadoopの混乱のほとんどを隠し(オブジェクトを自動的にシリアル化するなどのことを行うことで)、完全にScalaです。そのAPIについて私が気に入っていることの1つは、デザイナーがScoobiコレクションを標準のScalaコレクションと同じように感じさせたいということです。したがって、操作が実行されることを除いて、実際にはほとんど同じように使用します。ローカルではなくHadoop。これにより、開発およびテスト中にScoobiコレクションとScalaコレクションを簡単に切り替えることができます。

また、JavaベースのCrunchの上に構築された Scrunch も使用しました。しばらく使用していませんが、現在はApacheの一部です。

8
dhg

Twitterは、さまざまな機械学習タスクに使用できるNice Matrixライブラリなど、Scaldingに多大な努力を注いでいます。私もScoobiを試してみる必要があります。

完全を期すために、MapReduceに慣れていない場合は、 Spark プロジェクトをご覧ください。適切に Shark と呼ばれるHive to Sparkのポートを含め、多くのシナリオではるかに優れたパフォーマンスを発揮します。頻繁にHiveを使用しているので、私はそのことに興奮しています。

4
Dean Wampler

別のオプションは Stratosphere です。これは、Scala型をStratosphereの内部データ型に変換する Scala API を提供します。

APIはScaldingと非常に似ていますが、Stratosphereは高度なデータフローをネイティブにサポートしています(したがって、MapReduceジョブをチェーンする必要はありません)。 Stratosphereの方が、Scaldingよりもはるかに優れたパフォーマンスを発揮します。

StratosphereはHadoopMapReduceでは実行されませんが、 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))
1
Robert Metzger

私が調査する可能性が高い最初の2つは、 ScaldingCascading の上に構築されます)と Scoobi です。私も使用したことはありませんが、特にScaldingは本当に素晴らしいAPIを提供しているように見えます。

1
Thomas Lockney