Twitterは,Summingbirdと呼ぶ自社のMapReduceストリーミングフレームワークをオープンソースにした。Apache 2ライセンスで公開されるSummingbirdは,コードをバッチモード(Hadoop/MapReduceをベースとする)でもストリームモード(Stormをベースとする)でも,あるいはハイブリッドモードと呼ばれる2つの組み合わせでも同じように実行することができる,大規模データ処理システムだ。
Twitterが5億を越えるツィートを今後も処理し続けるためには,MapReduce(Pig/Scalding)とストリームベース(Storm)のコードを手動で統合する必要のある既存のスタックに代わるものを見つけなければならない。Summingbirdを開発した最大の動機は,Twitterのエンジニア達が言及しているように,Storm上で完全なリアルタイムシステムを動作させることが,次のような理由から困難である,という認識からだ。
- 過去数ヶ月分の履歴ログを再計算するには,Hadoopによるコーディネートか,あるいは特別なログローディング機能を使用したStormを通じてストリーミングする必要がある。
- メッセージパッシング重視であるStormでは,ランダム書き込みを行うデータベースのメンテナンスが難しい。
このような洞察がSummingbirdという,既存のアプローチにおいて技術者たちが抱える実践的問題に対処する,柔軟で汎用性のあるソリューションへと結び付いたのだ。
- 2つの異なるシステム間では,2組のアグリゲーションロジックを同期しなければならない
- キーと値は,各システムおよびクライアントの間で一貫性を持ってシリアライズする必要がある
- 両方のデータストアからデータを読み取り,最終的な集計を実行し,組み合わせた結果を提供するのはクライアントの役割である
Summingbirdは,オープンソース公開されたラムダアーキテクチャ(Lambda Architecture)準拠のシステムとして最初のもののひとつでもある。同様のプロジェクトとしてはYahooのStorm-YARNの他,スペインの新興企業が公開予定のLambdoopという,ラムダアーキテクチャ準拠の方法でビッグデータアプリケーションを開発するためのフレームワークなどがある。ラムダアーキテクチャの特徴 – 不変のマスタデータセット,バッチ・サービス・スピードの各レイヤ – により,バッチとストリーム処理のどちらも処理可能で,ソーシャルメディアプラットフォーム(TwitterやLinkedInなどのような)からモノのインターネット(スマートシティやウェラブル,製造業など),さらには金融セクタ(不正検出やリコメンデーション)までをユースケースとして備えた,堅牢な大規模データ処理システムの構築が現実のものになる。
Summingbirdの中心的開発者たち – Oscar Boykin氏,Sam Ritchie氏(コンピュータ科学のレジェンドであるDennis Ritchie氏の甥), Ashutosh Singhal氏 – はさらに,Summingbirdのロードマップを公開している。
- Apache Sparkと列指向データストレージフォーマットParquetのサポート
- SummingbirdのProducerプリミティブ上での高度数学ライブラリや機械学習コードの開発
- AlgebirdやStorehausなど,関連するオープンソースプロジェク との統合性向上