S-JIS[2010-04-05/2011-12-25] 変更履歴

Cascading

Cascadingは、HadoopのMap/Reduceを隠蔽(抽象化)するライブラリー。
これはApacheのプロジェクトではない。


Cascadingの概要

Cascadingは、HadoopのMapタスクやReduceタスクに相当するタスクをPipeという単位で記述し、Pipeをつなげて処理を作る。

Hadoopの基本であるMap/Reduceでは、ひとつのジョブは、Mapperの次にReducerを処理して、それで終了する。
複数種類のMapperを実行する事は出来ないし、Reducerの結果を次のMapperに渡す事も出来ない。
Cascadingでは、任意のPipe同士をつなげて一連の処理とする事が出来る。
(Reducerに相当するPipeの処理結果を、Mapperに相当する次のPipeに渡す事が出来る)
特に、複数のPipeを1つのPipeに結合することが出来るのは便利。

また、MapperやReducerは(キーと)値を一種類しか指定できないが、Cascadingでは項目名を付けることが出来るので、複数の値を指定することが出来る。

Cascadingは、表面上(コーディング上)、Map/Reduceは出てこない。
実行時にPipeの内容に応じて内部的にMapReduceを生成して実行する。


Cascading用語集

Cacadingで使われる用語。[2010-04-14]

用語 読み? 説明 関連
Cascading カスケーディング
カスケイディング
ライブラリー名(固有名詞)。
Googleで「Cascading」だけ入れて検索すると、CSS(Cascading Style Sheet)の方がいっぱい出てくる(苦笑)
Hadoopの様に、他に例を見ない名前の方が良かったのにねぇ。
 
flow フロー 一連のパイプをつないでひとまとまりにした実行単位をフローと呼ぶ。
どの入力ファイルを読み込んで どのファイルへ出力するのかは、フローで指定する。
複数のフローを実行すると、並列で実行されるらしい。
Flowクラス
pipe パイプ ひとつひとつの処理。
Map/ReduceのMapper・Reducerに相当する。
タプルストリーム内のタプルを加工し、新しいタプルストリームを作り出す。
Pipeクラス
tuple stream タプルストリーム 処理対象となるタプル群。 TupleEntryIterator
TupleEntryCollector
tuple タプル 1レコードに相当するデータ。いわば、“要素数が固定”のリスト。 Tupleクラス
field フィールド タプル内の個々のデータ、あるいはその項目名。 Fieldsクラス
tap タップ 入出力ファイル(あるいはDB)。
入力元はsource、出力先はsinkと呼ぶ。
Tapクラス
source ソース 入力元のTap Tapクラス
sink スィンク(シンク) 出力先のTap Tapクラス
incoming インカミング パイプへ入ってくること。あるいはそのデータ(タプルフィールド名)。  
outgoing アウトゴーイング パイプから出力されること。あるいはそのデータ(タプルフィールド名)。  

Hadoopへ戻る / Java目次へ行く / 技術メモへ戻る
メールの送信先:ひしだま