BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Cascading -- Hadoop MapReduce向けデータ処理系API

Cascading -- Hadoop MapReduce向けデータ処理系API

Cascading(リンク)はHadoop(リンク)クラスタ上でデータ処理する新しい処理系API であり、Hadoop MapReduceアルゴリズムを直接実装するのとは対照的に、表現豊かなAPIを使って複雑な処理ワークフローの構築をサポートする。

この処理系APIにより、開発者はMapReduce(リンク)で「考える」必要なしに、複雑な分散プロセスを素早く組み立てられます。また、依存性やその他の利用可能なメタデータに基づいて、効率的にスケジュールできます。

Cascadingの概念の中核にあるのは、パイプとフローである。パイプは、これから行われるデータ処理を定義する一連の処理ステップ(パース、ループ、フィルタなど)であり、フローはパイプ(もしくはパイプ一式)をデータソースやデータシンクと関連づけるものである。換言すれば、フローはデータが通っている状態のパイプである。さらに一歩進めると、カスケードとは複数のフローをつなげ、分岐し、グループ化することである。

このAPIが提供する重要機能は多数ある。

  • 依存性ベースの「トポロジー型スケジューラー」とMapReduceの計画立案 --  Cascadingの2つの重要コンポーネントが、依存性に基づいてフローの呼び出しをスケジュールする能力を発揮します。実行順序は構築順序から独立しているため、フローやカスケードの部分的な同時呼び出しが可能なことが多々あります。さらに、様々なフローのステップをhadoopクラスタと対比して、インテリジェントにmap-reduceの呼び出しに変換します。
  • イベント通知 -- フローの様々なステップは、コールバックを介して通知を実行できるため、ホストアプリケーションはデータ処理の進行状況をレポートし、反応できます。
  • スクリプト可能 -- Cascadingは、JythonやGroovy、JRuby用のスクリプト可能なインタフェースを備えているので、人気の高い動的JVM言語で容易にアクセス可能です。

Cascadingの概念や実装を学べる文書が多数存在する。ウォークスルーでCascadingの中心概念(リンク)を紹介するハイレベルの概説プレゼンテーションがPDF版で手に入る。また、単純なApacheログパーサーの作成をウォークスルーする「やさしい入門」例もある(リンク)。最後になるが、Cascadingに関するJavadocの完全版もある(リンク)

 

原文はこちらです:http://www.infoq.com/news/2008/10/cascading

この記事に星をつける

おすすめ度
スタイル

BT