リアルタイム分析を実現する強力なツールシリーズ~Spark~その2

Pocket

こんにちは!HALです。

以前、『リアルタイム分析を実現する強力なツールシリーズ~Spark~』という記事をご紹介いたしましたが、今回はその続編となります。

■Sparkとは

ビッグデータ関連のOSS(オープンソースソフトウェア)で、Hadoopに比べ、インメモリー処理を主体とするため、より高速な処理ができるものになっています。

■Sparkのメリット

Hadoopの標準的な処理方式であるMapReduceは、「繰り返し処理」、「多段処理」という複雑な処理を苦手としています。
理由としては、MapReduce は、Map処理とReduce処理の一対を単位とするため、処理の度に沢山の中間データが発生してしまうからになります。

Sparkは、この「繰り返し処理」と「多段処理」はこの処理が得意なため、機械学習に代表されるような処理に非常に向いています。

■Sparkの目標はビッグデータの標準的なライブラリになること

Sparkはオープンソースですが、運営元は非常に活発に活動されており、これまでビッグデータを処理する仕組みを開発するために、個別にアルゴリズムを実装する必要がありました。
しかし、SparkではSQLクエリー処理や機械学習処理、グラフ処理などを実行するためのライブラリが標準で提供されているため、これまでの開発工数が大幅に削減できるメリットがあります。
現在ライブラリを提供している言語は、「Python」「Scala」「Java」になります。

いかがでしたでしょうか。

前回の記事でも紹介させていただきましたが、AWSのブログでもSparkに最適なインスタンスは、i2.8xlargeインスタンスタイプと紹介されております。
http://aws.typepad.com/aws_japan/2014/04/new-instance-types-for-amazon-elastic-mapreduce.html

次回もお楽しみに!!