Dieses Tutorial zeigt Ihnen Schritt für Schritt, wie Sie ** PySpark ** auf einer ** Alibaba Cloud ** ECS-Instanz konfigurieren, auf der das CentOS 7.x-Betriebssystem ausgeführt wird.
Bevor wir beginnen, finden Sie hier die Ressourcen, die Sie zum Einrichten eines PySpark-Knotens in der Alibaba Cloud benötigen:
1, 1 Alibaba Cloud ECS-Instanz 2, ein ElP. Abhängig von Ihren Anforderungen benötigen Sie möglicherweise auch zusätzliche. Beispielsweise benötigen Sie möglicherweise zusätzlichen Speicher, SLB-Instanzen oder andere Komponenten. In diesem Lernprogramm werden insbesondere die minimal erforderlichen Ressourcen verwendet, jedoch mit einer ECS-Instanz und EIP als Master- und Slave-Knoten. Beachten Sie, dass die im Lernprogramm beschriebenen Techniken problemlos auf mehrere Master- und Slave-Knotenkonfigurationen auf verschiedenen ECS-Instanzen erweitert werden können.
Abgesehen von diesen Ressourcen müssen Sie die folgenden Elemente installieren: 1、Python 2、Java 3, Funke Wenn Sie Python bereits installiert haben und über Cloud-Ressourcen verfügen, können Sie mit Abschnitt 3 fortfahren.
Alibaba Cloud Elastic Computing Service (ECS) ist eine virtuelle Computerumgebung mit elastischen Funktionen, die von Alibaba Cloud bereitgestellt werden. .. ECS enthält grundlegende Computerkomponenten wie CPU und Speicher. Benutzer können nach Bedarf eine ECS-Instanz mit dem entsprechenden CPU-Kern, Speicher, Systemdatenträger, zusätzlichem Datendatenträger (optional) und Netzwerkkapazität auswählen (Berechnungsoptimierung, E / A-Optimierung). ).
Alibaba Cloud Elastic IP Address (EIP) ist eine instanzunabhängige öffentliche IP-Adresse, die von Alibaba Cloud bereitgestellt wird. Es kann unabhängig erworben und dem entsprechenden ECS oder einer anderen Cloud-Ressource (SLB, NAT-Gateway) zugeordnet werden.
Wenn das ECS keine öffentliche IP hat, können Sie diese auswählen und an das ECS binden. In diesem Lernprogramm kann die öffentliche IP jedoch auch zum Herunterladen verwandter Pakete aus dem Internet verwendet werden.
Bevor Sie Python in der Alibaba-Cloud einrichten können, müssen Sie eine Cloud-ECS-Instanz erwerben. Abhängig von Ihren Anforderungen können Sie PAYG (Pay as you go-Modus) ohne langfristige Verpflichtung auswählen oder den Abonnementmodus auswählen, um Ihre Nutzung zuerst festzulegen, um Geld zu sparen. ..
Wählen Sie eine ECS-Instanz mit dem erforderlichen Speicher, der CPU und ausreichend Systemspeicher. Wir empfehlen die Verwendung von mindestens 2 vCPU, 4 GB Speicher und 30 GB Ultracloud-Systemfestplatte, um die Skalierung nach Bedarf durchzuführen.
Standardmäßig erhalten Sie eine private IP-Adresse. Um Ihre ECS-Instanz jedoch mit dem Internet zu verbinden, benötigen Sie eine elastische öffentliche IP-Adresse, die den Datenverkehr berechnet. Dies ist erforderlich, um die zugehörigen Pakete auf Ihre ECS-Instanz herunterzuladen. Wenn Sie mit ECS keine Netzwerkbandbreite erhalten haben, müssen Sie eine EIP erwerben und an Ihre Instanz binden. Standardmäßig erlaubt die ECS-Sicherheitsgruppe Internetverkehr. Um Ihre ECS-Instanz zu schützen, können Sie entweder die EIP nach dem Herunterladen der erforderlichen Pakete aufheben oder eine Sicherheitsgruppe verwenden, damit nur relevanter Datenverkehr das ECS schützt.
** Was ist Python? ** ** ** Python ist eine leistungsstarke allgemeine Programmiersprache auf hoher Ebene, die für Menschen leicht zu interpretieren (Code ist leicht zu lesen) und leicht zu verstehen ist. Ist bekannt für. Darüber hinaus ist es aufgrund seiner riesigen Support-Community und Bibliothek eine beliebte Wahl bei Datenwissenschaftlern, Big-Data-Entwicklern und Praktikern des maschinellen Lernens. Von der Statistik bis zum Deep Learning finden Sie Python-Bibliotheken.
Wenn Sie sich erfolgreich angemeldet haben, wird der folgende Bildschirm angezeigt.
yum install gcc openssl-devel bzip2-devel libffi-devel
** Hinweis **: Um zu vermeiden, dass an der Eingabeaufforderung so lange Anweisungen geschrieben werden, können Sie den obigen Befehl kopieren und mithilfe der Konsolenfunktionen von Alibaba Cloud in Ihre ECS-Instanz einfügen. Oben rechts befindet sich eine Schaltfläche mit dem Namen "Kopierbefehle eingeben", mit der die Anweisungen, die Sie auf Ihrem Computer kopieren, in Ihre ECS-Instanz eingefügt werden.
wget
aus. In diesem Handbuch wird das Verzeichnis zum Herunterladen des Python-Pakets in "/ usr / src" geändert.Führen Sie insbesondere den folgenden Befehl aus.
cd /usr/src
wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
Entpacken Sie dann die Datei mit tar und führen Sie den Befehl tar xzf Python-3.7.2.tgz
aus.
cd Python-3.7.2
./configure --enable-optimizations
Wenn Sie fertig sind, führen Sie den Befehl make alt install
aus. Dieser Befehl installiert Python und seine Abhängigkeiten von Ihrem System. Wenn der Befehl normal ausgeführt wird, wird eine Meldung wie der folgende angezeigt. Die endgültige Nachrichtenausgabe lautet "Erfolgreich installiert".
(Optional) Führen Sie den Befehl rm / usr / src / Python-3.7.2.tgz
aus, um das heruntergeladene Python-Paket zu entfernen.
Fordern Sie eine Python-Version an und stellen Sie sicher, dass Python erfolgreich installiert wurde. Führen Sie den Befehl "python3.7 -V" aus.
Im obigen Beispiel sind sowohl Python 2.x- als auch Python 3.x-Versionen installiert und können mit verschiedenen Befehlen gestartet werden. Wenn Sie nur Python "ausführen, wird Python2.x ausgeführt, und wenn Sie" Python3.7 "ausführen, wird Python3.x ausgeführt.
Spark ist ein Open Source-Cluster-Computing-Framework. Mit anderen Worten, es ist eine belastbare verteilte Datenverarbeitungs-Engine. Eingeführt als verbesserte Version von Hadoop mit zusätzlichen Funktionen wie In-Memory-Verarbeitung, Stream-Verarbeitung und geringer Latenz. Spark ist in Scala geschrieben, unterstützt aber auch andere Sprachen wie Java, Python und R. Spark wird hauptsächlich für die ETL- und SQL-Ausführung großer Datenmengen, die Streaming-Analyse und das maschinelle Lernen für große Datenmengen verwendet. Die Hauptangebote und Komponenten von Spark sind wie folgt. 1, ** Spark SQL. SQL **: Spark-Komponente zur Datenverarbeitung mit SQL-Syntax. 2, ** Spark Streaming **: Kernbibliothek für die Verarbeitung und Verarbeitung von Streaming-Daten. 3, ** MLlib (Machine Learning Library) **: Eine spezielle Bibliothek zum Clustering und zur prädiktiven Analyse von Daten sowie zur Anwendung grundlegender Algorithmen für maschinelles Lernen und Data Mining. 4, ** GraphX **: Eine Bibliothek zum Arbeiten mit Netzwerken und Grafiken.
PySpark ist eine Kombination aus Apache Spark und Python. Durch die Integration der beiden Plattformen können Sie die Einfachheit der Python-Sprache nutzen, um mit Big Data zu arbeiten und gleichzeitig mit leistungsstarken Spark-Komponenten zu interagieren (siehe Abschnitt 2).
Führen Sie den Befehl Java -version
aus, um festzustellen, ob Java installiert ist.
Wenn Java nicht installiert ist, installieren Sie Java, um Spark wie in Schritt 2 einzurichten. Andernfalls fahren Sie mit Schritt 4 fort.
sudo yum update
sudo yum install java-1.8.0-openjdk-headless
Geben Sie y
ein und drücken Sie ** enter **, um die Installation durchzuführen.
Führen Sie den Befehl "java -version" aus, um zu bestätigen, dass die Installation erfolgreich war.
Führen Sie den Befehl cd / opt
aus, um das Verzeichnis zu ändern, und führen Sie den folgenden Befehl aus, um die Spark-Binärdatei herunterzuladen.
wget https://www-eu.apache.org/dist/spark/spark-2.4.0/spark-2.4.0-bin-hadoop2.7.tgz
Wenn der Link unterbrochen ist, die folgende Apache-Site Überprüfen Sie, ob der neue Link aktualisiert wurde.
Führen Sie den Befehl tar -xzf spark-2.4.0-bin-hadoop2.7.tgz
aus, um die Binärdatei einzugeben.
Geben Sie den Befehl cd spark-2.4.0-bin-hadoop2.7
ein.
Betrachten Sie eine grundlegende Konfigurationsanleitung für Spark.
Sie können jetzt Ihren Spark-Cluster basierend auf den Shell- und Hadoop-Bereitstellungsskripten einrichten, die sich im Funkenverzeichnis / sbin befinden.
-- sbin / start-master.sh
: Startet die Master-Instanz auf dem Computer, auf dem das Skript ausgeführt wird.
--Starten Sie eine Slave-Instanz auf jedem Computer, der in der Datei sbin / start-slaves.sh:
conf / slaves` angegeben ist.
--sbin / start-Slave.sh
: Startet eine Slave-Instanz auf dem Computer, auf dem das Skript ausgeführt wird.
--sbin / start-all.sh.
: Starten Sie sowohl den Master als auch viele Slaves wie oben beschrieben.
--sbin / stop-master.sh
: Stoppt den vom Skript sbin / start-master.sh gestarteten Master.
--sbin / stop-Slaves.sh
: conf / Slaves
Stoppt alle Slave-Instanzen auf dem in der Datei angegebenen Computer.
--sbin / stop-all.sh
: Stoppt sowohl Master als auch Slave wie oben.
Um den ECS-Knoten als Master festzulegen, führen Sie den Befehl sbin / start-master.sh
oder eines der unten gezeigten Skripte aus.
cat /opt/spark-2.4.0-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.master.Master-1-centos.out
Die Master-URL lautet "spark: // centos: 7077".
9, Richten Sie nun den Slave-Knoten ein (Sie können eine beliebige Anzahl von Slave-Knoten ausführen und eine Verbindung zum Master-Knoten herstellen).
Es dient zum Starten eines Slave-Prozesses auf dem zweiten Knoten, während er sich noch im Spark-Verzeichnis befindet.
./sbin/start-slave.sh <master-spark-URL>
In meinem Fall:
./sbin/start-slave.sh spark://centos:7077
Sie können das Masterprotokoll jetzt erneut öffnen, um festzustellen, ob es verbunden ist.
10 wurde der Arbeiter registriert.
Jetzt ist es Zeit, das Pfadverzeichnis zu aktualisieren.
export SPARK_HOME=/opt/spark-2.4.0-bin-hadoop2.7
export PATH=$SPARK_HOME/bin:$PATH
11, Lassen Sie uns nun Spark ausführen und sicherstellen, dass es perfekt installiert ist.
bin/pyspark
Sie können spark beenden, indem Sie den Befehl exit ()
eingeben.
12, Dies vervollständigt sowohl die Python- als auch die Spark-Einstellungen. Alles, was Sie brauchen, um die Python-API auf Spark zu verwenden, ist "pyspark". PySpark kann aus dem PyPi-Repository heruntergeladen und installiert werden.
Führen Sie den Befehl pip install pyspark
aus.
Hier verwenden wir die pyspark-Bibliothek, um eine grundlegende example.py-Datei zu erstellen, die Spark mit der Python-API nutzt.
Geben Sie den Befehl python
ein.
Führen Sie die folgenden Befehle zeilenweise aus, um zu sehen, wie die Python-API Spark nutzt:
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