ビッグデータ処理基盤に利用されるオープンソースソフトウェアの一つ。
Sparkが開発されたのは2009年で、MapReduceより使いやすいAPIと優れたメモリ管理を実現することが目標だった。
RDD(Resilient Distributed Dataset)と呼ばれるデータ集合に対して変換を行う。
簡単に長所を挙げると、
早い。
安いマシンでも使える。
スケール調整が出来る。
[Sparkのjobの流れ]
Spark job ⇒ job ⇒ stage ⇒ task
[RDDのメソッド]
map…各要素に同じ処理を適用する。
flatMap…各要素に同じ処理を適用し、複数の要素を生成する。
[Executor]
タスクと呼ばれる、ジョブ(RDDに対するオペレーション)の最小単位を実行していく計算リソースで、タスクマネージャによってDriver Programからの要求に基づいて起動される。
[Hadoopとの違い]
HadoopのMapReduceではデータ処理をするたびにデータをディスクに書き出し次の処理では再度取得する必要があるため、データを再利用する場合に処理のオーバーヘッドで性能が出なかったが、Sparkは展開したデータを再利用して複数の処理を連続して実行できるようにしたことで処理速度が上がった。
[Prestoとの違い]
Prestoは主にインタラクティブなクエリ処理やデータ分析に特化している一方、Sparkは幅広いデータ処理タスク(バッチ処理、ストリーム処理、機械学習など)に対応する汎用的なエンジン。