[PYTHON] "PySpark": Richten Sie PySpark auf einer Alibaba Cloud CentOS-Instanz ein

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.

Voraussetzungen

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.

Abschnitt 1: Cloud-Ressourcen

Was ist ECS?

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

Was ist EIP?

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.

Holen Sie sich eine ECS-Instanz

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.

image.png

EIP-Kauf und Partnerschaft

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.

image.png

Abschnitt 2: Python installieren

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

Installieren von Python auf einer Alibaba Cloud ECS-Instanz

  1. Stellen Sie über die Alibaba Cloud-Konsole eine Verbindung zu Ihrer ECS-Instanz her.
  2. Geben Sie das VNC-Passwort ein.

Wenn Sie sich erfolgreich angemeldet haben, wird der folgende Bildschirm angezeigt. image.png

  1. Führen Sie den folgenden Befehl auf dem Computer aus, der sich erfolgreich angemeldet hat. Dadurch wird der gcc-Compiler installiert, der zur Installation von Python auf Ihrem Linux-Computer erforderlich ist.
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. image.png

  1. Um Python herunterzuladen, wechseln Sie in Ihr Lieblingsverzeichnis und führen Sie den Befehl 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.

    1. Um das entpackte Python-Paket zu installieren, wechseln Sie in das Python-Verzeichnis, konfigurieren Sie die Einstellungen und installieren Sie es mit dem folgenden Befehl.
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". image.png

  1. (Optional) Führen Sie den Befehl rm / usr / src / Python-3.7.2.tgz aus, um das heruntergeladene Python-Paket zu entfernen.

  2. Fordern Sie eine Python-Version an und stellen Sie sicher, dass Python erfolgreich installiert wurde. Führen Sie den Befehl "python3.7 -V" aus.

image.png

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.

Abschnitt 3: Installieren von Spark und PySpark

Was ist Spark?

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.

Was ist PySpark?

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

Installieren von Spark / PySpark auf einer Alibaba Cloud ECS-Instanz

  1. Stellen Sie sicher, dass Java installiert ist

Führen Sie den Befehl Java -version aus, um festzustellen, ob Java installiert ist. image.png

Wenn Java nicht installiert ist, installieren Sie Java, um Spark wie in Schritt 2 einzurichten. Andernfalls fahren Sie mit Schritt 4 fort.

  1. Führen Sie den folgenden Befehl aus, um das System zu aktualisieren.
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.

  1. Führen Sie den Befehl "java -version" aus, um zu bestätigen, dass die Installation erfolgreich war. image.png

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

  1. Führen Sie den Befehl tar -xzf spark-2.4.0-bin-hadoop2.7.tgz aus, um die Binärdatei einzugeben.

  2. Geben Sie den Befehl cd spark-2.4.0-bin-hadoop2.7 ein.

  3. 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. image.png

  1. Sie können die Protokolldatei öffnen, um zu sehen, auf welchem Port der Master ausgeführt wird.
cat /opt/spark-2.4.0-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.master.Master-1-centos.out

image.png

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. image.png

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

image.png

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.

image.png

Beispielcode

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

"PySpark": Richten Sie PySpark auf einer Alibaba Cloud CentOS-Instanz ein
Richten Sie die Python-Umgebung unter CentOS ein
Installieren Sie Odoo auf einer Alibaba Cloud ECS-Instanz
Richten Sie einen einfachen lokalen Server auf Ihrem Mac ein
Richten Sie Python 3.4 unter Ubuntu ein
Grub unter CentOS 8 einrichten
Bis Docker-Compose auf CentOS7
Richten Sie Polyglot unter Windows ein
Legen Sie den Google Cloud-Dienstkontoschlüssel in Heroku fest
Erstellen Sie eine AWS Cloud9-Entwicklungsumgebung auf einer Amazon EC2-Instanz
Ist Ihr Netzwerkstapel richtig eingerichtet?
Richten Sie golang mit goenv unter GNU / Linux ein
Greifen Sie über eine Compute Engine-Instanz auf den Cloud-Speicher zu
Richten Sie eine Tornado-Umgebung für Python in Raspbian Jessie ein
Richten Sie eine Python-Entwicklungsumgebung auf Marvericks ein
Richten Sie eine Objective-C 2.0-Entwicklungsumgebung unter Linux ein
So richten Sie ein VPN-Gateway ein, um eine Verbindung zwischen Alibaba Cloud und AWS herzustellen