Scala から利用できる、優れた堅牢な MapReduce フレームワークを見つけたいと思います。
8 に答える
個人的には、Sparkの大ファンになりました
インメモリクラスターコンピューティングを実行する機能があり、ディスクを大量に消費するmapreduce操作で発生するオーバーヘッドを大幅に削減します。
http://hadoop.apache.org/は言語に依存しません。
少し前に、私はまさにこの問題に遭遇し、Scala から Hadoop を簡単に使用できるようにするための小さなインフラストラクチャーを作成することになりました。しばらくは自力で使っていましたが、やっとWeb上に載せることができました。それは (非常に元々) ScalaHadoopという名前です。
Hadoop 上の scala API については、 Scoobi を確認してください。まだ大規模な開発が行われていますが、多くの可能性が示されています。Scala インキュベーターの Hadoop 上に分散コレクションを実装する試みもありますが、その努力はまだ使用できません。
Scaldingと呼ばれる、Twitter からカスケードするための新しい scala ラッパーもあります。Scalding のドキュメントを簡単に調べたところ、カスケードとの統合はよりスムーズになりましたが、カスケードの主な問題である型の安全性はまだ解決されていないようです。カスケードのすべての操作は、カスケードのタプル (基本的に、個別のスキーマの有無にかかわらずフィールド値のリスト) で動作します。これは、型エラーを意味します。つまり、キーを String として結合し、キーを Long として結合すると、実行時エラーが発生します。
CouchDBを使用するための Scala インターフェイスであるscouchdbに興味があるかもしれません。
別のアイデアはGridGainを使用することです。 ScalaDudesには、Scala で GridGain を使用する例があります。そして、これが別の例です。
さらにjshenのポイントに:
Hadoop ストリーミングは単にソケットを使用します。UNIXストリームを使用する場合、コード(任意の言語)は、標準入力から読み取り、タブ区切りストリームを出力できる必要があります。マッパーを実装し、必要に応じてリデューサーを実装します(関連する場合は、それをコンバイナーとして構成します)。