本文へスキップ

Apache Sparkとは?

あぱっちすぱーく

Apache Sparkとは、大規模なデータを高速に分散処理するためのオープンソースのデータ処理エンジンで、機械学習やリアルタイム分析にも広く使われるプラットフォームのことです。

Apache Spark(アパッチ スパーク)とは、大量データ複数のコンピュータ(クラスター)に分散させて並列処理するオープンソースのデータ処理エンジンです。2009年にカリフォルニア大学バークレー校のAMPLabで開発が始まり、Apache Software Foundationのトップレベルプロジェクトとして2014年から管理されています。

Sparkの最大の特徴は、処理中のデータをできる限りメモリ上(RAM)に保持して処理を行う点です。これにより、ディスク読み書きを多用するHadoop MapReduceと比べて最大100倍の速度を発揮するとされています。主なコンポーネントは以下の通りです。

  • Spark Core:基盤となる分散処理エンジン(RDDという分散データ構造を管理)
  • Spark SQL:構造化データをSQLで処理するモジュール
  • Spark Streaming / Structured Streaming:リアルタイムストリームデータの処理
  • MLlib:分散機械学習ライブラリ
  • GraphX:グラフデータ処理エンジン

Python(PySpark)・Scala・Java・Rなど複数の言語から利用でき、Amazon EMR・Azure HDInsight・Databricksといったクラウドマネージドサービスでも広く採用されています。データエンジニアリングやデータサイエンスの現場ではデファクトスタンダードに近い地位を確立しています。

一方、クラスターの設定・チューニングには専門知識が必要で、小規模なデータ処理には過剰なツールとなる場合もあります。

使い方・例文

ECサイトのログデータ数十億件を複数台のサーバーに分散させてApache Sparkで処理し、数分でユーザーごとの購買傾向を集計するといった活用が代表的です。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語