ウェブサイト検索

Debian 11にApache Sparkをインストールする方法


Debian 11にApache Sparkをインストールする方法

このチュートリアルはこれらのOSバージョンのために存在します

  • Debian 11 (Bullseye)
  • Debian 10 (バスター)

このページで

  1. 前提条件
  2. Javaをインストールする
  3. Apache Sparkをインストールする
  4. Apache Sparkを起動する
  5. Apache SparkのWeb UIにアクセスする
  6. コマンドライン経由でApache Sparkに接続する
  7. マスターとスレーブを止めてください
  8. 結論

Apache Sparkは、より迅速な計算結果を提供するために作成された、無料でオープンソースの汎用分散計算フレームワークです。ストリーミング、グラフ処理のための複数のAPI(Java、Python、Scala、Rなど)をサポートしています。一般に、Apache SparkはHadoopクラスタで使用できますが、スタンドアロンモードでもインストールできます。

このチュートリアルでは、Debian 11 に Apache Spark フレームワークをインストールする方法を示します。

前提条件

  • Debian 11を実行しているサーバー。
  • サーバーにはルートパスワードが設定されています。

Javaをインストールする

Apache SparkはJavaで書かれています。そのため、システムにJavaがインストールされている必要があります。インストールされていない場合は、次のコマンドを使用してインストールできます:

apt-get install default-jdk curl -y

Javaがインストールされたら、以下のコマンドを使用してJavaのバージョンを確認します:

java --version

次の出力を得るべきです:

openjdk 11.0.12 2021-07-20
OpenJDK Runtime Environment (build 11.0.12+7-post-Debian-2)
OpenJDK 64-Bit Server VM (build 11.0.12+7-post-Debian-2, mixed mode, sharing)

Apache Sparkをインストールする

このチュートリアルを書いている時点で、Apache Sparkの最新バージョンは3.1.2です。次のコマンドを使用してダウンロードできます:

wget https://dlcdn.apache.org/spark/spark-3.1.2/spark-3.1.2-bin-hadoop3.2.tgz

ダウンロードが完了したら、以下のコマンドでダウンロードしたファイルを展開します:

tar -xvzf spark-3.1.2-bin-hadoop3.2.tgz

次に、以下のコマンドを使って抽出したディレクトリを /opt に移動します:

mv spark-3.1.2-bin-hadoop3.2/ /opt/spark

次に、~/.bashrcファイルを編集し、Sparkのパス変数を追加します。

nano ~/.bashrc

次の行を追加してください:

export SPARK_HOME=/opt/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

ファイルを保存して閉じたら、次のコマンドを使用してSpark環境変数をアクティブにします:

source ~/.bashrc

Apache Sparkを開始する

次のコマンドを実行して、Sparkマスターサービスを開始できます:

start-master.sh

次の出力を得るべきです:

starting org.apache.spark.deploy.master.Master, logging to /opt/spark/logs/spark-root-org.apache.spark.deploy.master.Master-1-debian11.out

デフォルトでは、Apache Sparkはポート8080でリッスンしています。次のコマンドを使用して確認できます:

ss -tunelp | grep 8080

次の出力が得られます:

tcp   LISTEN 0      1                                    *:8080             *:*    users:(("java",pid=24356,fd=296)) ino:47523 sk:b cgroup:/user.slice/user-0.slice/session-1.scope v6only:0 <->                                                                                                                                                                                                                                                                    

次に、以下のコマンドを使用してApache Sparkワーカープロセスを開始します:

start-slave.sh spark://your-server-ip:7077

Apache SparkのWeb UIにアクセスする

今、URL http://your-server-ip:8080 を使用してApache Sparkのウェブインターフェースにアクセスできるようになりました。次の画面にApache Sparkのマスターおよびスレーブサービスが表示されるはずです:

ワーカー IDをクリックしてください。次の画面でワーカーの詳細情報が表示されるはずです:

コマンドライン経由でApache Sparkに接続する

Sparkのコマンドシェルを介して接続したい場合は、以下のコマンドを実行してください:

spark-shell

接続されると、以下のインターフェイスが表示されます:

Spark session available as 'spark'.
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 3.1.2
      /_/
         
Using Scala version 2.12.10 (OpenJDK 64-Bit Server VM, Java 11.0.12)
Type in expressions to have them evaluated.
Type :help for more information.

scala> 

SparkでPythonを使用したい場合は、pysparkコマンドラインユーティリティを使用できます。

まず、次のコマンドを使用してPythonバージョン2をインストールしてください:

apt-get install python -y

インストールが完了したら、次のコマンドでSparkに接続できます:

pyspark

接続されると、次の出力が得られるはずです:

To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /__ / .__/\_,_/_/ /_/\_\   version 3.1.2
      /_/

Using Python version 3.9.2 (default, Feb 28 2021 17:03:44)
Spark context Web UI available at http://debian11:4040
Spark context available as 'sc' (master = local[*], app id = local-1633769632964).
SparkSession available as 'spark'.
>>> 

マスターとスレーブを止めてください

まず、次のコマンドを使用してスレーブプロセスを停止してください:

stop-slave.sh

次の出力が得られます:

stopping org.apache.spark.deploy.worker.Worker

次に、以下のコマンドを使用してマスタープロセスを停止します:

stop-master.sh

次の出力が得られます:

stopping org.apache.spark.deploy.master.Master

結論

おめでとうございます! Debian 11にApache Sparkを正常にインストールしました。これで、組織内で大規模なデータセットを処理するためにApache Sparkを使用できます。

関連記事: