Comment installer Apache Spark sur Ubuntu 20.04

Apache Spark est un cadre open-source et un système de calcul en cluster à usage général. Spark fournit des API de haut niveau en Java, Scala, Python et R qui prennent en charge les graphes d’exécution généraux. Il est livré avec des modules intégrés utilisés pour le streaming, SQL, l’apprentissage automatique et le traitement des graphes. Il est capable d’analyser une grande quantité de données, de les distribuer dans le cluster et de les traiter en parallèle.

Dans ce tutoriel, nous allons expliquer comment installer la pile de calcul en cluster Apache Spark sur Ubuntu 20.04.

Conditions préalables

  • Un serveur exécutant Ubuntu 20.04.
  • Un mot de passe root est configuré sur le serveur.

Démarrage

Tout d’abord, tu dois mettre à jour tes paquets système à la dernière version. Tu peux tous les mettre à jour avec la commande suivante :

apt-get update -y

Une fois que tous les paquets sont mis à jour, tu peux passer à l’étape suivante.

Installer Java

Apache Spark est une application basée sur Java. Java doit donc être installé dans ton système. Tu peux l’installer avec la commande suivante :

apt-get install default-jdk -y

Une fois que Java est installé, vérifie la version installée de Java avec la commande suivante :

java --version

Tu devrais voir le résultat suivant :

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)

Installe Scala

Apache Spark est développé à l’aide de Scala. Tu dois donc installer Scala dans ton système. Tu peux l’installer avec la commande suivante :

apt-get install scala -y

Après avoir installé Scala. Tu peux vérifier la version de Scala à l’aide de la commande suivante :

scala -version

Tu devrais voir la sortie suivante :

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

Maintenant, connecte-toi à l’interface Scala avec la commande suivante :

scala

Tu devrais obtenir le résultat suivant :

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

Maintenant, teste Scala à l’aide de la commande suivante :

scala> println("Hitesh Jethva")

Tu devrais obtenir le résultat suivant :

Hitesh Jethva

Installe Apache Spark

Tout d’abord, tu dois télécharger la dernière version d’Apache Spark sur son site officiel. Au moment de la rédaction de ce tutoriel, la dernière version d’Apache Spark est 2.4.6. Tu peux la télécharger dans le répertoire /opt avec la commande suivante :

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

Une fois téléchargé, extrais le fichier téléchargé avec la commande suivante :

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

Ensuite, renomme le répertoire extrait en spark comme indiqué ci-dessous :

mv spark-2.4.6-bin-hadoop2.7 spark

Ensuite, tu devras configurer l’environnement Spark pour pouvoir facilement exécuter les commandes Spark. Tu peux le configurer en modifiant le fichier .bashrc :

nano ~/.bashrc

Ajoute les lignes suivantes à la fin du fichier :

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

Enregistre et ferme le fichier puis active l’environnement avec la commande suivante :

source ~/.bashrc

Démarre le serveur maître Spark

À ce stade, Apache Spark est installé et configuré. Maintenant, démarre le serveur maître Spark à l’aide de la commande suivante :

start-master.sh

Tu devrais voir la sortie suivante :

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

Par défaut, Spark écoute sur le port 8080. Tu peux le vérifier à l’aide de la commande suivante :

ss -tpln | grep 8080

Tu devrais voir le résultat suivant :

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

Maintenant, ouvre ton navigateur Web et accède à l’interface Web de Spark en utilisant l’URL http://your-server-ip:8080. Tu devrais voir l’écran suivant :

Interface Web d'Apache Spark

Démarrer le processus Spark Worker

Comme tu peux le voir, le service maître Spark fonctionne sur spark://votre-serveur-ip:7077. Tu peux donc utiliser cette adresse pour démarrer le processus Spark worker à l’aide de la commande suivante :

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

Tu devrais voir le résultat suivant :

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

Maintenant, va dans le tableau de bord Spark et rafraîchis l’écran. Tu devrais voir le processus Spark worker dans l’écran suivant :

Travailleur Apache Spark

Travailler avec Spark Shell

Tu peux aussi connecter le serveur Spark à l’aide de la ligne de commande. Tu peux le connecter en utilisant la commande spark-shell comme indiqué ci-dessous :

spark-shell

Une fois connecté, tu devrais voir la sortie suivante :

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> 

Si tu veux utiliser Python dans Spark. Tu peux utiliser l’utilitaire de ligne de commande pyspark.

Tout d’abord, installe la version 2 de Python avec la commande suivante :

apt-get install python -y

Une fois installé, tu peux te connecter à Spark avec la commande suivante :

pyspark

Une fois connecté, tu devrais obtenir la sortie suivante :

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

Si tu veux arrêter le serveur Maître et le serveur Esclave. Tu peux le faire avec la commande suivante :

stop-slave.sh
stop-master.sh

Conclusion

Félicitations ! Tu as réussi à installer Apache Spark sur le serveur Ubuntu 20.04. Tu devrais maintenant pouvoir effectuer des tests de base avant de commencer à configurer un cluster Spark. N’hésite pas à me demander si tu as des questions.

Vous aimerez aussi...