ビッグデータアプリケーションを実装するにあたり、企業はApache MapReduce、Apache Tez 、Apache Spark あるいは Apache Storm など、数々のフレームワークを選ぶことができる。 これらのフレームワークには一長一短があり、どれが最適かはアプリケーション次第である。全てのフレームワークを一つの Apache YARN クラスタで実行することは可能であるが、各フレームワークには少しづつ違ったプログラミングモデルがあり、互換性のない API を使わなければならず、アプリケーションをフレームワークからフレームワークへと移植するのは容易ではない。
Concurrent の主要製品であり、新製品でもある Cascading 3.0 はこれらの問題の多くを解決する。Cascading は人気のある Java ドメイン固有言語 (DSL) の一つであり、MapReduce API を使用した大規模データワークフローのための関数プログラミングを定義し、実装するためのDSLとして2007年後半に登場した。 Cascading は “配管” のイメージで、データのパイプラインを構築する: 構成要素はデータの流れを分配したり、合流したり、取り付けることができ、さらには演算処理を一連の流れとして実行することができる。
このためユーザは Cascading アプリケーションを閉路を持たない有向グラフ (DAG) として表すことができる。 これは Cascading の planner によって、元はMapReduceである基礎的なフレームワークに変換されたものである。
Cascading 3.0 は MapReduce 以上のものを提供する。企業の開発者はデータ処理をするアプリケーションを一度開発し、それを業務目的に最も適したフレームワーク上で実行することができる。 Cascading 3.0 がまずサポートするのは: ローカルのインメモリ、 Apache MapReduce ( Hadoop 1 と 2 どちらもサポートされる)、 そして Apache Tez である。 まもなくコミュニティの支援を用いて、 Apache Spark™、 Apache Storm その他のフレームワークが、プラグイン可能でカスタマイズできる新しい planner を通じてサポートされる予定である。
Cascading 3.0 から導入される新しい planner は、実行時にローカルトポロジに基づいたメタデータを用いてグラフの正確性を確認したり、グラフのノードをアノテートすることができる。 この planner はグラフを変換してノードを平衡化、挿入、削除及び並び替えをすることができる。 さらにはグラフを分割して、再帰的により小さい計算単位(例えば Map や Reduce ノード、あるいは Tez プロセス)に対応する部分グラフを探す。
一旦適切な計算単位が定義されると、Cascading は実行時の設定を構築する。これにはフレームワークの全てのAPI群を切り分ける jar (と Maven POM) が用いられる。これらの jar と POM は Cascading が提供する。
Cascading 3.0 が実装するオープンでプラグイン可能な構造により、製品は容易にサポートするフレームワークを追加できるようになる。 これを行うには指定されたフレームワークとそのフレームワークに必要な jar や POM のための新しいルールセットを実装する。
Cascading 3.0 をオープンソースにしたのに加えて、Concurrent は最近商用製品 Driven を発表した。 これはリアルタイム監視や、運用のためのコントロール、そして Cascading アプリケーションのパフォーマンス管理機能を提供する。 Driven には次の機能をサポートするためにいくつかの画面がある:
- Understand – 実行中のデータ・アプリケーションをリアルタイムに可視化し、各処理をさらに視覚的に掘り下げる。
- Diagnose – 失敗した処理(とその理由)や、パフォーマンスの悪いアプリケーションを素早く確認する。
- Optimize – 視覚的にアプリケーションの処理状況を分析し、パフォーマンスの問題や異常を発見する。
- Track – アプリケーションのリアルタイムなパフォーマンスを視覚化や、過去のデータとの比較をする。
Concurrent の新しい製品によって、アプリケーションは Apache Tez 等の優れた新しいフレームワークへ移行しやすくなる。これによって企業はビジネスの要求に合う一つのAPIで標準化を行い、様々な業務上の問題に対処することができる。また、より新しく、より問題に適したビッグデータフレームワークを大量の書き直しをすることなく導入できる。Driven は新規及び既存のビッグデータアプリケーション運用状況を、開発から本番環境に至るまで可視化する。