Apache Spark

用語集トップに戻る

Apache Sparkとは

Apache Sparkは、ビッグデータのワークロードに使用するオープンソースの分析エンジンです。リアルタイム分析とデータ処理のワークロードに加えて、両方のバッチ処理が可能です。Apache Sparkは2009年にカリフォルニア大学バークレー校の研究プロジェクトとして開発されました。それまで研究者は、Hadoopシステムでのジョブ処理を高速化する方法を模索していました。Apache SparkはHadoop MapReduceをベースとして、MapReduceモデルを拡張し、対話型クエリやストリーム処理など、より多くのタイプの計算に効率的に使用できるようになっています。プログラミング言語のJava、Scala、Python、Rでバインディングをネイティブ機能として実装しています。さらに、機械学習(MLlib)、ストリーム処理(Spark Streaming)、グラフ処理(GraphX)用のアプリケーション構築を支援するライブラリもいくつか備えています。Apache SparkはSpark Coreと一連のライブラリから構成され、Spark CoreはApache Sparkの中核をなし、タスクの分散伝送、スケジューリング、I/O機能を提供する役割を果たしています。また、Spark Coreのエンジンは基本的なデータタイプであるResilient Distributed Dataset(RDD)の概念を使用し、そのRDDは計算複雑性の大部分をユーザーから見えないように設計されています。Sparkはデータ処理の方法に優れています。データとパーティションはサーバークラスタ全体で集約され、次に計算が行われて別のデータストアへ移動するか、分析モデルを使用して実行します。ファイルを保存・取得するために必要なファイルや計算リソースの保存先の指定は不要です。 レジリエントな分散データセット

Apache Sparkを使用するメリット

Apache Sparkを使用するメリット

スピード

Sparkでは、複数の並列処理中にメモリにデータをキャッシュするため、動作が非常に高速です。Sparkの主な特徴は、処理速度を高めるインメモリエンジンです。インメモリ処理での大規模なデータ処理に関しては、MapReduceと比較して最大100倍、ディスクでは10倍高速になります。Sparkは、ディスク操作への読み取り/書き込み回数を減らすことによってこれを可能にします。

リアルタイムのストリーム処理

Apache Sparkは、他のフレームワークの統合に加えて、リアルタイムのストリーミング処理を実行できます、Sparkはミニバッチ単位でデータを取り込み、そのミニバッチのデータに対してRDD変換を行います。

複数のワークロードをサポート

Apache Sparkは、対話型クエリ、リアルタイム分析、機械学習、グラフ処理など複数のワークロードを実行できます。複数のワークロードは、単一のアプリケーションにシームレスに統合可能です。

操作性の向上

複数のプログラミング言語をサポートする機能により、操作が動的になります。Java、Scala、Python、Rでアプリケーションを迅速に記述することができ、アプリケーション構築のための多様な言語を提供します。

高度なアナリティクス

SparkはSQLクエリ、機械学習、ストリーム処理、グラフ処理をサポートしています。

関連リソース


用語集トップに戻る