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で処理し、数分でユーザーごとの購買傾向を集計するといった活用が代表的です。
この用語をシェア
最終更新: