Apache Spark installeren op Debian 11

Apache Spark is een gratis, open-source, general-purpose en gedistribueerd rekenraamwerk dat gemaakt is om snellere rekenresultaten te geven. Het ondersteunt verschillende API’s voor streaming, grafiekverwerking waaronder, Java, Python, Scala, en R. Over het algemeen kan Apache Spark gebruikt worden in Hadoop clusters, maar je kunt het ook in stand-alone modus installeren.

In deze handleiding laten we je zien hoe je het Apache Spark raamwerk op Debian 11 kunt installeren.

Vereisten

  • Een server waarop Debian 11 draait.
  • Een root wachtwoord is op de server ingesteld.

Installeer Java

Apache Spark is geschreven in Java. Dus moet Java in je systeem geïnstalleerd zijn. Als het niet geïnstalleerd is, kun je het installeren met het volgende commando:

apt-get install default-jdk curl -y

Als Java geïnstalleerd is, controleer dan de Java versie met het volgende commando:

java --version

Je zou de volgende uitvoer moeten krijgen:

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)

Installeer Apache Spark

Op het moment van schrijven van deze handleiding is de nieuwste versie van Apache Spark 3.1.2. Je kunt het downloaden met het volgende commando:

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

Als de download voltooid is, pak je het gedownloade bestand uit met het volgende commando:

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

Verplaats vervolgens de uitgepakte map naar de /opt met het volgende commando:

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

Bewerk vervolgens het ~/.bashrc bestand en voeg de Spark pad variabele toe:

nano ~/.bashrc

Voeg de volgende regels toe:

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

Sla het bestand op en sluit het af, activeer dan de Spark omgevingsvariabele met het volgende commando:

source ~/.bashrc

Start Apache Spark

Je kunt nu het volgende commando uitvoeren om de Spark master service te starten:

start-master.sh

Je zou de volgende uitvoer moeten krijgen:

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

Standaard luistert Apache Spark op poort 8080. Je kunt dit verifiëren met het volgende commando:

ss -tunelp | grep 8080

Je krijgt de volgende uitvoer:

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 <->                                                                                                                                                                                                                                                                    

Start vervolgens het Apache Spark worker proces met het volgende commando:

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

Open de Apache Spark Web UI

Je kunt nu de Apache Spark webinterface openen met de URL http://your-server-ip:8080. Je zou de Apache Spark master en slave dienst op het volgende scherm moeten zien:

Apache Spark Dashboard

Klik op de Worker id. Je zou de gedetailleerde informatie van je Worker op het volgende scherm moeten zien:

Vonkenarbeider

Verbind Apache Spark via de opdrachtregel

Als je verbinding wilt maken met Spark via zijn commandoshell, voer dan de onderstaande commando’s uit:

spark-shell

Zodra je verbonden bent, krijg je de volgende interface:

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> 

Als je Python in Spark wilt gebruiken. Je kunt het pyspark command-line hulpprogramma gebruiken.

Installeer eerst de Python versie 2 met het volgende commando:

apt-get install python -y

Eenmaal geïnstalleerd, kun je de Spark verbinden met het volgende commando:

pyspark

Eenmaal verbonden zou je de volgende uitvoer moeten krijgen:

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 Master en Slave

Stop eerst het slave proces met het volgende commando:

stop-slave.sh

Je krijgt de volgende uitvoer:

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

Stop vervolgens het master proces met het volgende commando:

stop-master.sh

Je krijgt de volgende uitvoer:

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

Conclusie

Gefeliciteerd! Je hebt met succes Apache Spark geïnstalleerd op Debian 11. Je kunt nu Apache Spark in je organisatie gebruiken om grote gegevenssets te verwerken