Apache Sparkは、オープンソースのフレームワークであり、汎用のクラスターコンピューティングシステムです。 Sparkは、一般的な実行グラフをサポートするJava、Scala、Python、Rの高レベルAPIを提供します。ストリーミング、SQL、機械学習、グラフ処理に使用される組み込みモジュールが付属しています。大量のデータを分析してクラスター全体に分散し、データを並列処理することができます。
このチュートリアルでは、Ubuntu 20.04にApache Sparkクラスターコンピューティングスタックをインストールする方法を説明します。
前提条件
- Ubuntu 20.04サーバーを実行しているサーバー。
- rootパスワードがサーバーに構成されます。
入門
まず、システムパッケージを最新バージョンに更新する必要があります。次のコマンドでそれらすべてを更新できます。
apt-get update -y
すべてのパッケージが更新されたら、次のステップに進むことができます。
Javaをインストールする
Apache SparkはJavaベースのアプリケーションです。したがって、Javaがシステムにインストールされている必要があります。次のコマンドでインストールできます。
apt-get install default-jdk -y
Javaがインストールされたら、次のコマンドを使用して、インストールされているJavaのバージョンを確認します。
java --version
次の出力が表示されます。
openjdk 11.0.8 2020-07-14 OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu120.04) OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)
Scalaをインストールする
Apache SparkはScalaを使用して開発されています。したがって、システムにScalaをインストールする必要があります。次のコマンドでインストールできます。
apt-get install scala -y
Scalaをインストールした後。次のコマンドを使用して、Scalaのバージョンを確認できます。
scala -version
次の出力が表示されます。
Scala code runner version 2.11.12 -- Copyright 2002-2017, LAMP/EPFL
次のコマンドでScalaインターフェースに接続します。
scala
次の出力が表示されます。
Welcome to Scala 2.11.12 (OpenJDK 64-Bit Server VM, Java 11.0.8). Type in expressions for evaluation. Or try :help.
次のコマンドでScalaをテストします。
scala> println("Hitesh Jethva")
次の出力が表示されます。
Hitesh Jethva
Apache Sparkをインストールする
まず、公式ウェブサイトから最新バージョンのApache Sparkをダウンロードする必要があります。このチュートリアルを書いている時点では、Apache Sparkの最新バージョンは2.4.6です。次のコマンドで/ optディレクトリにダウンロードできます。
cd /opt
wget https://archive.apache.org/dist/spark/spark-2.4.6/spark-2.4.6-bin-hadoop2.7.tgz
ダウンロードしたら、次のコマンドでダウンロードしたファイルを抽出します。
tar -xvzf spark-2.4.6-bin-hadoop2.7.tgz
次に、以下に示すように、抽出したディレクトリの名前をsparkに変更します。
mv spark-2.4.6-bin-hadoop2.7 spark
次に、Sparkコマンドを簡単に実行できるように、Spark環境を構成する必要があります。 .bashrcファイルを編集して設定できます。
nano ~/.bashrc
ファイルの最後に次の行を追加します。
export SPARK_HOME=/opt/spark export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
ファイルを保存して閉じ、次のコマンドで環境をアクティブにします。
source ~/.bashrc
Spark Master Serverを起動します
この時点で、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-ubuntu2004.out
デフォルトでは、Sparkはポート8080でリッスンしています。次のコマンドを使用して確認できます。
ss -tpln | grep 8080
次の出力が表示されます。
LISTEN 0 1 *:8080 *:* users:(("java",pid=4930,fd=249))
次に、Webブラウザーを開き、URL http:// your-server-ip:8080を使用してSpark Webインターフェイスにアクセスします 。次の画面が表示されます。 広告
Sparkワーカープロセスの開始
ご覧のように、Sparkマスターサービスはspark:// your-server-ip:7077で実行されています。したがって、このアドレスを使用して、次のコマンドでSparkワーカープロセスを開始できます。
start-slave.sh spark://your-server-ip:7077
次の出力が表示されます。
starting org.apache.spark.deploy.worker.Worker, logging to /opt/spark/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-ubuntu2004.out
次に、Sparkダッシュボードに移動して画面を更新します。次の画面にSparkワーカープロセスが表示されます。
Spark Shellの操作
コマンドラインを使用してSparkサーバーに接続することもできます。以下に示すように、spark-shellコマンドを使用して接続できます。
spark-shell
接続すると、次の出力が表示されます。
WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.apache.spark.unsafe.Platform (file:/opt/spark/jars/spark-unsafe_2.11-2.4.6.jar) to method java.nio.Bits.unaligned() WARNING: Please consider reporting this to the maintainers of org.apache.spark.unsafe.Platform WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release 20/08/29 14:35:07 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties Setting default log level to "WARN". To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). Spark context Web UI available at http://ubuntu2004:4040 Spark context available as 'sc' (master = local[*], app id = local-1598711719335). Spark session available as 'spark'. Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /___/ .__/\_,_/_/ /_/\_\ version 2.4.6 /_/ Using Scala version 2.11.12 (OpenJDK 64-Bit Server VM, Java 11.0.8) 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
接続すると、次の出力が表示されます。
Python 2.7.18rc1 (default, Apr 7 2020, 12:05:55) [GCC 9.3.0] on linux2 Type "help", "copyright", "credits" or "license" for more information. WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.apache.spark.unsafe.Platform (file:/opt/spark/jars/spark-unsafe_2.11-2.4.6.jar) to method java.nio.Bits.unaligned() WARNING: Please consider reporting this to the maintainers of org.apache.spark.unsafe.Platform WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release 20/08/29 14:36:40 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties Setting default log level to "WARN". To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /__ / .__/\_,_/_/ /_/\_\ version 2.4.6 /_/ Using Python version 2.7.18rc1 (default, Apr 7 2020 12:05:55) SparkSession available as 'spark'. >>>
マスターサーバーとスレーブサーバーを停止する場合。次のコマンドで実行できます。
stop-slave.sh
stop-master.sh
結論
おめでとう! Ubuntu 20.04サーバーにApache Sparkが正常にインストールされました。これで、Sparkクラスターの構成を開始する前に、基本的なテストを実行できるはずです。ご不明な点がございましたら、お気軽にお問い合わせください。