référence https://data-flair.training/blogs/install-apache-spark-multi-node-cluster/
Télécharger étincelle adresse
http://spark.apache.org/downloads.html
Préparer trois noeuds
192.168 . 1.1 [nom d' hôte] maître 192,168 . 1.2 [nom d' hôte] SLAVE1 192.168 . 1.3 [nom d' hôte] slave2
La configuration ci - dessus pour les trois noeuds annexer la machine / etc / hosts dans. Depuis que je suis ici trois machines domaine sont différentes, nous avons donc mis le [nom d' hôte], par exemple, le nœud maître
192.168 . 1.1 maître xxx.localdomain
Vérifiez le nom d'hôte pour la méthode,
$ hostname
Si la dernière erreur d'allumage départ nom d'hôte inconnu, se réfère généralement au nom d'hôte n'est pas défini, cette fois par
$ Hostname -i
Trouvées sera rapporté les mêmes erreurs.
Étapes d'installation:
Tout d'abord, mettre le secret sans connexion ssh
Si vous n'installez pas ssh, vous devez installer
sudo apt installer openssh-server
Sur trois machines ont été exécutées
ssh-keygen -t rsa
La façon d'entrer, utilisez le paramètre par défaut (chemin du fichier clé et nom de fichier)
Le slave1 ci - dessus slave2 ~ / .ssh / id_rsa.pub copier des fichiers vers le nœud maître,
scp ~ / .ssh / id_rsa.pub xxx @ maître: ~ / .ssh / id_rsa.pub.slave1
scp ~ / .ssh / id_rsa.pub xxx @ maître: ~ / .ssh / id_rsa.pub.slave2
Note, xxx représente le nom d'utilisateur, les trois meilleures machines utilisent le même nom d'utilisateur, le cas échéant, l'utilisateur peut créer
# adduser xxx créer un nouvel utilisateur xxx
passwd xxx xxx à mot de passe #
Joué sur le maître
cat ~ / .ssh / id_rsa.pub * >> ~ / .ssh / authorized_keys
scp ~ / .ssh / authorized_keys xxx @ slave1: ~ / .ssh / authorized_keys
scp ~ / .ssh / authorized_keys xxx @ slave2: ~ / .ssh / authorized_keys
Vérifiez aucun mot de passe de connexion sur le maître
ssh slave1
ssh slave2
Sur slave1 / slave2 peut également sans mot de passe deux autres noeuds.
Remarque: les autorisations de dossier .ssh doivent être 700, authorized_keys autorisations de fichiers doivent être 600 (autorisations supplémentaires valeurs peuvent ne pas fonctionner), modifier les autorisations d'utilisation
chmod 700 ~ / .ssh chmod 600 ~ / .ssh / authorized_keys
En second lieu, installer jdk, scala, étincelle
Omis, étincelle installé juste au-dessus du fichier téléchargé pour le décompresser. Note configuration variable d'environnement
export JAVA_HOME = ...
export SCALA_HOME = ...
export SPARK_HOME = ...
export PATH = $ JAVA_HOME / bin: $ SCALA_HOME / bin: $ SPARK_HOME / bin: $ PATH
Sur le nœud maître, entrez le répertoire sous SPARK_HOME conf,
cd conf étincelle cp -env.sh.template étincelles env.sh cp slaves.template esclaves
Modifier le fichier
# Localhost
slave1
slave2
Modifier le fichier spark-env.sh
export JAVA_HOME = ... exportation SPARK_WORKER_CORES = 8
Sur slave1 et slave2, effectuer les mêmes opérations.
Note: Annuaire des meilleurs spark reste le même dans les trois nœuds mêmes variables d'environnement SPARK_HOME
Troisièmement, démarrer le cluster
Exécuté sur le noeud maître
sbin / start-all.sh
Arrêtez le cluster est exécuté
sbin / stop-all.sh
Après le début, peut être effectuée sur le maître ou slave1 / SLAVE2 JPS pour voir le processus java. Voir interface web, adresse
http: // MASTER-IP: 8080 /
Si la connexion ne se trouve pas maître nœuds de travailleurs, compte tenu de la manière suivante
Causée par: java.io.IOException: Connexion à: 7077 chronométré out ( 120000 ms) ... org.apache.spark.deploy.worker.Worker $$ anonfun étincelle deploy $ $ $ org apache $ travailleur $ $ Worker $$ tryRegisterAllMasters $ 1 $$ anon $ 1 .run ...
Nous avons besoin de trois machines dans le SPARK_HOME $ / conf / spark-env.sh add
export SPARK_MASTER_HOST = <ip maître>
Réexécuter
sbin / start-all.sh