|
この記事では、現在使用されているオープンソースのリアルタイム ストリーム処理システムの概要をいくつか紹介し、将来の技術研究の参考として役立ちます。 S4 S4(Simple Scalable Streaming System)は、Yahooが新たにリリースしたオープンソースのストリームコンピューティングプラットフォームです。汎用性、分散性、高いスケーラビリティ、パーティション耐性、プラグインサポートを備えた分散ストリームコンピューティングプラットフォームです。このプラットフォーム上で、プログラマーは無制限かつ中断のないストリーミングデータを処理するアプリケーションを容易に開発できます。開発言語はJavaです。 プロジェクト リンク: http://incubator.apache.org/s4/ (注: S4 0.5.0 は TCP 接続や状態回復などの機能をサポートしています) 嵐 Stormは、Twitterが開発したオープンソースの分散リアルタイムコンピューティングシステムです。シンプルなAPIを通じて、開発者は無制限の連続ストリーミングデータを確実に処理し、リアルタイムコンピューティングを実現できます。ClojureとJavaで開発されており、JVM以外の言語でもJSONプロトコルを使用してstdin/stdout経由でStormと通信できます。Stormは、リアルタイム分析、オンライン機械学習、継続的コンピューティング、分散RPC、ETL処理など、幅広い用途に利用できます。 プロジェクトリンク: http://storm-project.net ストリームベース StreamBaseは、複合イベント処理(CEP)およびイベントストリーム処理のためのプラットフォームです。商用アプリケーションですが、Javaで開発された開発者版も利用可能です。 プロジェクトリンク: http://www.streambase.com Hストリーミング HStreamingはHadoop上に構築されており、Hadoopとそのエコシステムと緊密に統合することで、リアルタイムのストリームコンピューティングサービスを提供します。これにより、HStreamingユーザーは同じエコシステム内でビッグデータを分析・処理できます。HStreamingはJavaで開発されています。 プロジェクトリンク: http://www.hstreaming.com エスパーとネスパー Esperは、複合イベント処理(CEP)向けに特別に設計されたストリーム処理プラットフォームです。Java版はEsper、.NET版はNEsperと呼ばれています。EsperとNEsperを利用することで、開発者は、履歴データからリアルタイムデータまで、大量のメッセージやイベントを処理するアプリケーションシステムを迅速に開発・導入できます。 プロジェクトリンク: http://esper.codehaus.org カフカ Kafka は、2010 年 12 月に LinkedIn によってオープンソース化された、高スループットの Pub-Sub ベースの分散メッセージング システムです。主にアクティブ ストリーミング データを処理するために使用され、Scala で開発されています。 プロジェクトリンク: http://incubator.apache.org/kafka 筆記者 ScribeはFacebookが開発したオープンソースのログ収集システムです。C言語で開発され、Thriftによって様々な一般的なクライアント言語でサポートされています。Facebook社内で広く採用されています。様々なソースからログを収集し、NFSや分散ファイルシステムなどの中央ストレージシステムに保存することで、集中的な統計分析を実現します。ログの「分散収集と統合処理」を実現する、スケーラブルで耐障害性の高いソリューションを提供します。Scribeは通常、Hadoopと組み合わせて使用されます。ScribeがログをHDFSにプッシュし、HadoopがMapReduceジョブを通じて定期的に処理します。 プロジェクトリンク: http://github.com/facebook/scribe フルーム Clouderaが提供するFlumeは、分散型で信頼性が高く、可用性の高いログ収集システムであり、大量のログデータを収集、集約、移動するために使用されています。Javaで開発されています。Flumeは、ログシステム内の様々なデータ送信元をカスタマイズしてデータ収集を行う機能に加え、シンプルなデータ処理を実行し、様々なカスタマイズ可能なデータ受信元に書き込む機能も備えています。 プロジェクトリンク: http://incubator.apache.org/flume |