「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
Hadoop MapReduce?と同様に
- 複数の計算機を用いてデータ処理を行う並列データ処理系
- クラスタ・コンピューティングのOSSフレームワーク
背景 †
Hadoop MapReduce?が適合しない以下のケースをサポートする。
- 複雑なデータ処理を行うために,複数のジョブを連ねて実行する場合
- 同じデータを複数のジョブから利用する場合
利点 †
汎用的な並列データ処理系として利用できる。
- RDDに対する数十種類のオペレータを利用可能。
- 多様な並列データ処理をシンプルに記述できる。
- オペレータを組み合わせれば、ジョブを組み合わせる必要がない。
- 複数のオペレータは1つのタスクとしてRDDのパーテョションごとにコピーされる。
- パーティション並列性を活用でき、中間データI/Oを削減できる。
詳細 †
コンポーネント †
Resilient Distributed Dataset (RDD) †
- 分散共有メモリを提供する分散プログラムのワーキングセット。
- 永続化先として、主に、計算機のメモリ(キャッシュ)と二次記憶を利用できる。
- メモリと二次記憶を組み合わせることも可能
- メモリに保持しきれないパーティションを一時的に二次記憶に退避
- 当該パーティションを利用する際に再び二次記憶から読み出す。
Spark Core †
- API(Java、Python、Scala、R)を介して公開
- 分散タスクディスパッチ
- スケジューリング
- および基本I/O機能
Spark SQL †
- 提供
- DataFrames?というデータ抽象化
- テーブルのようなデータ構造をもった分散処理用データセット
- テーブル構造なのでSQLライクにデータを操作できる。
- RDDではなくDataFrame?が主流になって行く。
- ドメイン固有言語(DSL) > SQL言語
- CLI、JDBC / ODBCサポートを実装している。
- Scala、Java、PythonからDataFrames?を操作できる。
その他、用途向けのライブラリ †
- 機械学習
MLlib Machine Learning Library
参考 †
gihyo.jp … 技術評論社 †
Hadoopはどのように動くのか
─並列・分散システム技術から読み解くHadoop処理系の設計と実装