[PYTHON] "PySpark": configurer PySpark sur une instance Alibaba Cloud CentOS

Ce tutoriel vous explique pas à pas comment configurer ** PySpark ** sur une instance ** Alibaba Cloud ** ECS exécutant le système d'exploitation CentOS 7.x.

Conditions préalables

Avant de commencer, voici les ressources dont vous avez besoin pour configurer un nœud PySpark sur Alibaba Cloud:

1, 1 instance Alibaba Cloud ECS 2, un ElP. Vous pouvez également en avoir besoin en fonction de vos besoins. Par exemple, vous pouvez avoir besoin de stockage supplémentaire, d'instances SLB ou d'autres composants. En particulier, ce didacticiel utilise les ressources minimales requises, mais avec une instance ECS et EIP en tant que nœuds maître et esclave. Comprenez que les techniques décrites dans le didacticiel peuvent être facilement étendues à plusieurs configurations de nœuds maîtres et esclaves sur différentes instances ECS.

En dehors de ces ressources, vous devez installer les éléments suivants: 1、Python 2、Java 3, étincelle Si Python est déjà installé et que vous disposez de ressources cloud, vous pouvez passer à la section 3.

Section 1: Ressources cloud

Qu'est-ce que l'ECS?

Alibaba Cloud Elastic Computing Service (ECS) est un environnement informatique virtuel avec des fonctionnalités élastiques fournies par Alibaba Cloud. .. ECS contient des composants informatiques de base tels que le processeur et la mémoire. Les utilisateurs peuvent sélectionner une instance d'ECS avec le cœur de processeur approprié, la mémoire, le disque système, le disque de données supplémentaire (en option) et la capacité réseau selon les besoins (optimisation des calculs, optimisation des E / S). ).

Qu'est-ce que l'EIP?

L'adresse IP Elastic Cloud Alibaba (EIP) est une adresse IP publique indépendante de l'instance fournie par Alibaba Cloud. Il peut être acheté indépendamment et associé à l'ECS approprié ou à une autre ressource cloud (SLB, passerelle NAT).

Si l'ECS n'a pas d'adresse IP publique, vous pouvez la sélectionner et la lier à l'ECS, mais dans ce didacticiel, l'adresse IP publique peut également être utilisée pour télécharger des packages associés à partir d'Internet.

Obtenir une instance ECS

Avant de pouvoir configurer Python sur le cloud Alibaba, vous devez acheter une instance ECS cloud. En fonction de vos besoins, vous pouvez choisir PAYG (mode Pay as you go) sans engagement à long terme, ou vous pouvez choisir le mode abonnement et engager d'abord votre utilisation pour économiser de l'argent. ..

Sélectionnez une instance ECS avec la mémoire, la CPU et une capacité de stockage système suffisantes. Nous vous recommandons d'utiliser au moins 2vCPU, 4 Go de mémoire et 30 Go de disque système Ultracloud pour évoluer selon les besoins.

image.png

Achat EIP et partenariat

Par défaut, vous obtenez une adresse IP privée, mais pour connecter votre instance ECS à Internet, vous avez besoin d'une adresse IP publique Elastic qui facture le trafic. Cela est nécessaire pour télécharger les packages associés sur votre instance ECS. Si vous n'avez pas obtenu de bande passante réseau avec ECS, vous devrez acheter un EIP et le lier à votre instance. Par défaut, le groupe de sécurité ECS autorise le trafic Internet. Pour protéger votre instance ECS, vous pouvez soit dissocier l'EIP après avoir téléchargé les packages requis, soit utiliser un groupe de sécurité pour autoriser uniquement le trafic pertinent à protéger l'ECS.

image.png

Section 2: Installation de Python

** Qu'est-ce que Python? ** ** Python est un langage de programmation puissant, polyvalent et de haut niveau, facile à interpréter (lisibilité du code) et à comprendre. Est connu pour. En outre, son énorme communauté de soutien et sa vaste bibliothèque en font un choix populaire parmi les scientifiques des données, les développeurs de Big Data et les praticiens de l'apprentissage automatique. Des statistiques à l'apprentissage en profondeur, vous pouvez trouver des bibliothèques Python.

Installation de Python sur une instance Alibaba Cloud ECS

  1. Connectez-vous à votre instance ECS à l'aide de la console Alibaba Cloud.
  2. Entrez le mot de passe VNC.

Si vous vous connectez avec succès, l'écran suivant s'affiche. image.png

  1. Exécutez la commande suivante sur la machine qui s'est connectée avec succès. Cela installera le compilateur gcc nécessaire pour installer Python sur votre machine Linux.
yum install gcc openssl-devel bzip2-devel libffi-devel

** Remarque **: Pour éviter d'écrire des déclarations aussi longues à l'invite, vous pouvez copier la commande ci-dessus et la coller dans votre instance ECS à l'aide des fonctionnalités de la console d'Alibaba Cloud. En haut à droite se trouve un bouton appelé "Entrer les commandes de copie", qui colle les instructions que vous copiez sur votre machine dans votre instance ECS. image.png

  1. Pour télécharger python, allez dans votre répertoire préféré et exécutez la commande wget. Dans ce guide, le répertoire pour télécharger le package python est changé en / usr / src.

Plus précisément, exécutez la commande suivante.

cd /usr/src

wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz

Ensuite, utilisez tar pour décompresser le fichier et exécutez la commande tar xzf Python-3.7.2.tgz.

    1. Pour installer le package python décompressé, accédez au répertoire python, configurez les paramètres et installez avec la commande suivante.
cd Python-3.7.2
./configure --enable-optimizations

Lorsque vous avez terminé, exécutez la commande make alt install. Cette commande installe Python et ses dépendances sur votre système. Si la commande est exécutée normalement, un message comme l'écran ci-dessous sera affiché. La sortie du message final sera "Installation réussie". image.png

  1. (Facultatif) Exécutez la commande rm / usr / src / Python-3.7.2.tgz pour supprimer le package python téléchargé.

  2. Demandez une version de python et assurez-vous que python est correctement installé. Exécutez la commande "python3.7 -V".

image.png

Dans l'exemple ci-dessus, les versions Python 2.x et Python 3.x sont installées et peuvent être lancées avec différentes commandes. Exécuter simplement python "exécute Python2.x, et exécuter" python3.7 "exécute Python3.x.

Section 3: Installation de Spark et PySpark

Qu'est-ce que Spark?

Spark est un framework de calcul de cluster open source. En d'autres termes, il s'agit d'un moteur de traitement de données distribué résilient. Présenté comme une version améliorée de Hadoop avec des fonctionnalités supplémentaires telles que le traitement en mémoire, le traitement de flux et une faible latence. Spark est écrit en Scala, mais il prend également en charge d'autres langages tels que Java, Python et R. Les principales utilisations de Spark sont l'exécution ETL et SQL pour les grands ensembles de données, l'analyse en continu et l'apprentissage automatique pour le Big Data. Les principales offres et composants de Spark sont les suivants. 1, ** Spark SQL. SQL **: composant Spark pour le traitement des données à l'aide de la syntaxe SQL. 2, ** Spark Streaming **: bibliothèque principale pour le traitement et la gestion des données en streaming. 3, ** MLlib (Machine Learning Library) **: Une bibliothèque spécifique pour le clustering et l'analyse prédictive des données et l'application d'algorithmes d'apprentissage automatique de base et d'exploration de données. 4, ** GraphX **: une bibliothèque pour travailler avec des réseaux et des graphiques.

Qu'est-ce que PySpark?

PySpark est une combinaison d'Apache Spark et de Python. L'intégration des deux plates-formes vous permet de profiter de la simplicité du langage Python pour travailler avec du Big Data tout en interagissant avec de puissants composants Spark (abordés dans la section 2).

Installer Spark / PySpark sur une instance Alibaba Cloud ECS

  1. Assurez-vous que Java est installé

Exécutons la commande Java -version pour voir si Java est installé. image.png

Si Java n'est pas installé, installez Java pour configurer Spark comme à l'étape 2, sinon passez à l'étape 4.

  1. Exécutez la commande suivante pour mettre à jour le système.
sudo yum update
sudo yum install java-1.8.0-openjdk-headless

Tapez «y» et appuyez sur ** Entrée ** pour installer.

  1. Exécutez la commande java -version pour confirmer que l'installation a réussi. image.png

  2. Exécutez la commande cd / opt pour changer de répertoire et exécutez la commande suivante pour télécharger le binaire Spark.

wget https://www-eu.apache.org/dist/spark/spark-2.4.0/spark-2.4.0-bin-hadoop2.7.tgz

Si le lien est rompu, le [site Apache] suivant (https://www.apache.org/dyn/closer.lua/spark/spark-2.4.0/?spm=a2c65.11461447.0.0.1e323c93lqpS9v) Vérifiez si le nouveau lien a été mis à jour.

  1. Exécutez la commande tar -xzf spark-2.4.0-bin-hadoop2.7.tgz pour entrer le binaire.

  2. Entrez la commande cd spark-2.4.0-bin-hadoop2.7.

  3. Considérez un guide de configuration de base pour Spark.

Vous êtes maintenant prêt à configurer votre cluster Spark basé sur les scripts de déploiement shell et Hadoop situés dans le répertoire sparks / sbin.

-- sbin / start-master.sh: Démarre l'instance maître sur la machine sur laquelle le script sera exécuté.

--sbin / start-slave.sh: Démarre une instance esclave sur la machine sur laquelle le script sera exécuté.

--sbin / start-all.sh.: Démarre à la fois le maître et de nombreux esclaves comme décrit ci-dessus.

--sbin / stop-master.sh: Arrête le master démarré par le script sbin / start-master.sh.

--sbin / stop-slaves.sh: conf / slaves Arrête toutes les instances d'esclave sur la machine spécifiée dans le fichier.

--sbin / stop-all.sh: Arrête le maître et l'esclave comme ci-dessus.

Pour définir le nœud ECS comme maître, exécutez la commande sbin / start-master.sh ou l'un des scripts ci-dessous. image.png

  1. Vous pouvez ouvrir le fichier journal pour voir sur quel port le maître s'exécute.
cat /opt/spark-2.4.0-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.master.Master-1-centos.out

image.png

L'URL principale est «spark: // centos: 7077».

9, configurez maintenant le nœud esclave (vous pouvez exécuter n'importe quel nombre de nœuds esclaves et vous connecter au nœud maître)

C'est pour démarrer un processus esclave sur le deuxième nœud tout en restant dans le répertoire spark.

./sbin/start-slave.sh <master-spark-URL>

Dans mon cas:

./sbin/start-slave.sh spark://centos:7077

Vous pouvez maintenant rouvrir le journal principal pour voir s'il est connecté. image.png

10, le travailleur a été enregistré.

Il est maintenant temps de mettre à jour le répertoire du chemin.

export SPARK_HOME=/opt/spark-2.4.0-bin-hadoop2.7  
export PATH=$SPARK_HOME/bin:$PATH

11, maintenant exécutons Spark et assurez-vous qu'il est parfaitement installé.

bin/pyspark

image.png

Vous pouvez quitter Spark en entrant la commande ʻexit () `.

12, Ceci complète les paramètres Python et Spark. Tout ce dont vous avez besoin pour utiliser l'API Python sur Spark est pyspark. PySpark peut être téléchargé et installé à partir du référentiel PyPi.

Exécutez la commande pip install pyspark.

image.png

Exemple de code

Ici, nous utilisons la bibliothèque pyspark pour créer un fichier example.py de base qui exploite Spark avec l'API Python.

Entrez la commande python.

Pour voir comment l'API Python exploite Spark, exécutez la ligne de commande suivante par ligne:

from pyspark import SparkContext
outFile = "file:///opt/spark-2.4.0-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.master.Master-1-centos.out"  
sc = SparkContext("local", "example app")
outData = sc.textFile(outFile).cache()
numAs = logData.filter(lambda s: 'a' in s).count()
print("Lines with a: %i " % (numAs))

Recommended Posts

"PySpark": configurer PySpark sur une instance Alibaba Cloud CentOS
Configurer l'environnement Python sur CentOS
Installez Odoo sur une instance Alibaba Cloud ECS
Configurer un serveur local simple sur votre Mac
Configurer Python 3.4 sur Ubuntu
Configurer grub sur CentOS 8
Jusqu'à docker-compose sur CentOS7
Configurer Polyglot sous Windows
Définir la clé de compte de service Google Cloud dans heroku
Créer un environnement de développement AWS Cloud9 sur une instance Amazon EC2
Votre pile réseau est-elle correctement configurée?
Configurer Golang avec goenv sur GNU / Linux
Accéder à Cloud Storage à partir d'une instance Compute Engine
Configurer un environnement Tornado pour Python dans Raspbian Jessie
Configurer un environnement de développement Python sur Marvericks
Configurer un environnement de développement Objective-C 2.0 sur Linux
Comment configurer une passerelle VPN pour établir une connexion entre Alibaba Cloud et AWS