Apache Spark te installeren op Ubuntu 20.04

Apache Spark is een open-source raamwerk en een general-purpose cluster computing systeem. Spark biedt high-level API’s in Java, Scala, Python en R die algemene uitvoeringsgrafieken ondersteunen. Het komt met ingebouwde modules die gebruikt worden voor streaming, SQL, machinaal leren en grafiekverwerking. Het is in staat om een grote hoeveelheid gegevens te analyseren en over het cluster te verdelen en de gegevens parallel te verwerken.

In deze zelfstudie leggen we uit hoe je Apache Spark cluster computing stack installeert op Ubuntu 20.04.

Vereisten

  • Een server waarop Ubuntu 20.04 draait.
  • Een root wachtwoord is de server geconfigureerd.

Aan de slag

Eerst moet je je systeempakketten bijwerken naar de nieuwste versie. Je kunt ze allemaal bijwerken met het volgende commando:

apt-get update -y

Als alle pakketten zijn bijgewerkt, kun je verder gaan met de volgende stap.

Installeer Java

Apache Spark is een op Java gebaseerde toepassing. Dus moet Java in je systeem geïnstalleerd zijn. Je kunt het installeren met het volgende commando:

apt-get install default-jdk -y

Als Java geïnstalleerd is, controleer je de geïnstalleerde versie van Java met het volgende commando:

java --version

Je zou de volgende uitvoer moeten zien:

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)

Installeer Scala

Apache Spark is ontwikkeld met behulp van het programma Scala. Je zult dus Scala in je systeem moeten installeren. Je kunt het installeren met het volgende commando:

apt-get install scala -y

Na de installatie van Scala. Je kunt de Scala versie verifiëren met het volgende commando:

scala -version

Je zou de volgende uitvoer moeten zien:

Scala code runner version 2.11.12 -- Copyright 2002-2017, LAMP/EPFL

Maak nu verbinding met de Scala interface met het volgende commando:

scala

Je zou de volgende uitvoer moeten krijgen:

Welcome to Scala 2.11.12 (OpenJDK 64-Bit Server VM, Java 11.0.8).
Type in expressions for evaluation. Or try :help.

Test nu de Scala met het volgende commando:

scala> println("Hitesh Jethva")

Je zou de volgende uitvoer moeten krijgen:

Hitesh Jethva

Installeer Apache Spark

Eerst moet je de nieuwste versie van Apache Spark downloaden van zijn officiële website. Op het moment van schrijven van deze handleiding is de nieuwste versie van Apache Spark 2.4.6. Je kunt het downloaden naar de /opt directory met het volgende commando:

cd /opt
wget https://archive.apache.org/dist/spark/spark-2.4.6/spark-2.4.6-bin-hadoop2.7.tgz

Eenmaal gedownload pak je het gedownloade bestand uit met het volgende commando:

tar -xvzf spark-2.4.6-bin-hadoop2.7.tgz

Hernoem vervolgens de uitgepakte directory tot spark zoals hieronder:

mv spark-2.4.6-bin-hadoop2.7 spark

Vervolgens moet je de Spark omgeving configureren zodat je gemakkelijk Spark commando’s kunt uitvoeren. Je kunt die configureren door het .bashrc bestand te bewerken:

nano ~/.bashrc

Voeg de volgende regels toe aan het eind van het bestand:

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

Bewaar en sluit het bestand en activeer dan de omgeving met het volgende commando:

source ~/.bashrc

Start Spark Master Server

Op dit punt is Apache Spark geïnstalleerd en geconfigureerd. Start nu de Spark master server met het volgende commando:

start-master.sh

Je zou de volgende uitvoer moeten zien:

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

Standaard luistert Spark op poort 8080. Je kunt het controleren met het volgende commando:

ss -tpln | grep 8080

Je zou de volgende uitvoer moeten zien:

LISTEN   0        1                               *:8080                *:*      users:(("java",pid=4930,fd=249))   

Open nu je webbrowser en ga naar de Spark webinterface met de URL http://your-server-ip:8080. Je zou het volgende scherm moeten zien:

Apache Spark Web UI

Start Spark Worker Proces

Zoals je ziet, draait de Spark master service op spark://jouw-server-ip:7077. Je kunt dit adres dus gebruiken om het Spark worker proces te starten met het volgende commando:

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

Je zou de volgende uitvoer moeten zien:

starting org.apache.spark.deploy.worker.Worker, logging to /opt/spark/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-ubuntu2004.out

Ga nu naar het Spark dashboard en ververs het scherm. Je zou het Spark worker proces in het volgende scherm moeten zien:

Apache Spark werker

Werken met Spark Shell

Je kunt de Spark server ook verbinden met behulp van de command-line. Je kunt hem verbinden met het spark-shell commando zoals hieronder te zien is:

spark-shell

Eenmaal verbonden zou je de volgende uitvoer moeten zien:

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> 

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:

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

Als je de Master en Slave server wilt stoppen. Dat kun je doen met het volgende commando:

stop-slave.sh
stop-master.sh

Conclusie

Gefeliciteerd! je hebt met succes Apache Spark op Ubuntu 20.04 server geïnstalleerd. Nu zou je basistests moeten kunnen uitvoeren voor je een Spark cluster gaat configureren. Voel je vrij me te vragen als je vragen hebt.