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