Apache Spark - 大規模データ分析のための統合エンジン

Apache Sparkは、大規模データ処理のための統合分析エンジンです。Java、Scala、Python、Rで高レベルAPIを提供し、一般的な実行グラフをサポートする最適化されたエンジンを備えています。また、SQLおよび構造化データ処理のためのSpark SQL、pandasワークロードのためのSpark上のpandas API、機械学習のためのMLlib、グラフ処理のためのGraphX、増分計算およびストリーム処理のためのStructured Streamingなど、豊富な高レベルツールもサポートしています。

ダウンロード

Sparkは、プロジェクトサイトのダウンロードページから入手できます。このドキュメントはSparkバージョン4.0.0用です。SparkはHDFSとYARNのためにHadoopのクライアントライブラリを使用します。ダウンロードは、いくつかの一般的なHadoopバージョン用に事前パッケージ化されています。ユーザーは、「Hadoopフリー」バイナリをダウンロードし、Sparkのクラスパスを拡張することによって、任意のHadoopバージョンでSparkを実行することもできます。ScalaおよびJavaユーザーは、Maven座標を使用してSparkをプロジェクトに含めることができ、PythonユーザーはPyPIからSparkをインストールできます。

ソースからSparkをビルドしたい場合は、Sparkのビルドを参照してください。

SparkはWindowsおよびUNIXライクなシステム(Linux、Mac OSなど)の両方で実行でき、サポートされているJavaバージョンが実行されている任意のプラットフォームで実行できるはずです。これには、x86_64およびARM64のJVMが含まれるはずです。ローカルマシンで簡単に実行できます。必要なのは、システムのPATHjavaがインストールされているか、JAVA_HOME環境変数がJavaのインストールを指していることです。

SparkはJava 17/21、Scala 2.13、Python 3.9+、R 3.5+(非推奨)で実行されます。Scala APIを使用する場合、アプリケーションはSparkがコンパイルされたのと同じScalaバージョンを使用する必要があります。Spark 4.0.0以降、Scalaは2.13です。

サンプルとシェルを実行する

Sparkにはいくつかのサンプルプログラムが付属しています。Python、Scala、Java、Rのサンプルは、examples/src/mainディレクトリにあります。

PythonインタプリタでSparkをインタラクティブに実行するには、bin/pysparkを使用します。

./bin/pyspark --master "local[2]"

サンプルアプリケーションはPythonで提供されています。例:

./bin/spark-submit examples/src/main/python/pi.py 10

ScalaまたはJavaのサンプルプログラムのいずれかを実行するには、トップレベルのSparkディレクトリでbin/run-example <class> [params]を使用します。(内部的には、これはアプリケーションを起動するためのより一般的なspark-submitスクリプトを呼び出します)。例:

./bin/run-example SparkPi 10

Scalaシェルの変更バージョンを通じて、Sparkをインタラクティブに実行することもできます。これはフレームワークを学習するのに適した方法です。

./bin/spark-shell --master "local[2]"

--masterオプションは、分散クラスタのマスターURL、またはローカルで1スレッドで実行するためのlocal、またはNスレッドでローカルで実行するためのlocal[N]を指定します。テストにはlocalから始めるべきです。オプションの完全なリストについては、--helpオプションでSparkシェルを実行してください。

バージョン1.4以降、SparkはR APIを提供しています(DataFrame APIのみが含まれています)。RインタプリタでSparkをインタラクティブに実行するには、bin/sparkRを使用します。

./bin/sparkR --master "local[2]"

Rでもサンプルアプリケーションが提供されています。例:

./bin/spark-submit examples/src/main/r/dataframe.R

Spark ConnectでどこからでもSparkクライアントアプリケーションを実行する

Spark Connectは、Spark 3.4で導入された新しいクライアントサーバーアーキテクチャであり、Sparkクライアントアプリケーションを分離し、Sparkクラスタへのリモート接続を可能にします。クライアントとサーバーの分離により、Sparkとそのオープンエコシステムをどこからでも、あらゆるアプリケーションに組み込んで利用できます。Spark 3.4では、Spark ConnectはPySparkのDataFrame APIカバレッジと、ScalaでのDataFrame/Dataset APIサポートを提供します。

Spark Connectとその使用方法の詳細については、Spark Connectの概要を参照してください。

クラスタ上での起動

Sparkのクラスタモードの概要では、クラスタ上での実行における主要な概念を説明しています。Sparkは、単独で実行することも、いくつかの既存のクラスタマネージャー上で実行することもできます。現在、デプロイメントのオプションがいくつか用意されています。

次へ進む

プログラミングガイド

APIドキュメント

デプロイガイド

その他のドキュメント

外部リソース