Apache Spark

Installieren von Apache Spark unter Ubuntu 17.10

Installieren von Apache Spark unter Ubuntu 17.10

Apache Spark ist ein Datenanalysetool, mit dem Daten aus HDFS, S3 oder anderen Datenquellen im Speicher verarbeitet werden können. In diesem Beitrag installieren wir Apache Spark auf einem Ubuntu 17.10 Maschine.

Ubuntu-Version

Für diese Anleitung verwenden wir Ubuntu Version 17.10 (GNU/Linux 4.13.0-38-generisch x86_64).

Apache Spark ist Teil des Hadoop-Ökosystems für Big Data. Versuchen Sie, Apache Hadoop zu installieren und eine Beispielanwendung damit zu erstellen.

Aktualisieren vorhandener Pakete

Um die Installation für Spark zu starten, müssen wir unseren Computer mit den neuesten verfügbaren Softwarepaketen aktualisieren. Wir können dies tun mit:

sudo apt-get update && sudo apt-get -y dist-upgrade

Da Spark auf Java basiert, müssen wir es auf unserem Computer installieren. Wir können jede Java-Version über Java 6 verwenden. Hier verwenden wir Java 8:

sudo apt-get -y install openjdk-8-jdk-headless

Herunterladen von Spark-Dateien

Alle notwendigen Pakete sind jetzt auf unserer Maschine vorhanden. Wir sind bereit, die erforderlichen Spark-TAR-Dateien herunterzuladen, damit wir sie einrichten und auch ein Beispielprogramm mit Spark ausführen können.

In dieser Anleitung installieren wir Funke v2.3.0 hier verfügbar:

Spark-Downloadseite

Laden Sie die entsprechenden Dateien mit diesem Befehl herunter:

wget http://www-us.Apache.org/dist/spark/spark-2.3.0/Funke-2.3.0-bin-hadoop2.7.tgz

Je nach Netzwerkgeschwindigkeit kann dies einige Minuten dauern, da die Datei groß ist:

Herunterladen von Apache Spark

Nachdem wir die TAR-Datei heruntergeladen haben, können wir sie in das aktuelle Verzeichnis extrahieren:

tar xvzf Funke-2.3.0-bin-hadoop2.7.tgz

Dies dauert aufgrund der großen Dateigröße des Archivs einige Sekunden:

Nicht archivierte Dateien in Spark

Wenn es darum geht, Apache Spark in Zukunft zu aktualisieren, kann es aufgrund von Path-Updates zu Problemen kommen. Diese Probleme können vermieden werden, indem ein Softlink zu Spark erstellt wird. Führen Sie diesen Befehl aus, um einen Softlink zu erstellen:

ln -s Funke-2.3.0-bin-hadoop2.7 Funken

Hinzufügen von Funken zum Pfad

Um Spark-Skripte auszuführen, fügen wir es jetzt zum Pfad hinzu. Öffnen Sie dazu die bashrc-Datei:

vi ~/.bashrc

Füge diese Zeilen an das Ende des .bashrc-Datei, sodass der Pfad den Pfad der ausführbaren Spark-Datei enthalten kann:

SPARK_HOME=/LinuxHint/spark
export PATH=$SPARK_HOME/bin:$PATH

Nun sieht die Datei so aus:

Hinzufügen von Funken zu PATH

Um diese Änderungen zu aktivieren, führen Sie den folgenden Befehl für die bashrc-Datei aus:

Quelle ~/.bashrc

Spark Shell starten

Wenn wir uns jetzt direkt außerhalb des Spark-Verzeichnisses befinden, führen Sie den folgenden Befehl aus, um die apark-Shell zu öffnen:

./spark/bin/spark-shell

Wir werden sehen, dass die Spark-Shell jetzt geöffnet ist:

Spark Shell starten

Wir können in der Konsole sehen, dass Spark auch eine Webkonsole auf Port 404 geöffnet hat. Besuchen wir es:

Apache Spark-Webkonsole

Obwohl wir auf der Konsole selbst arbeiten werden, ist die Webumgebung ein wichtiger Ort, an dem Sie sich bei der Ausführung schwerer Spark-Jobs ansehen sollten, damit Sie wissen, was in jedem ausgeführten Spark-Job passiert.

Überprüfen Sie die Spark-Shell-Version mit einem einfachen Befehl:

sc.Ausführung

Wir werden etwas zurückbekommen wie:

res0: Zeichenfolge = 2.3.0

Erstellen einer Spark-Beispielanwendung mit Scala

Jetzt erstellen wir eine Beispielanwendung für den Wortzähler mit Apache Spark. Laden Sie dazu zunächst eine Textdatei in Spark Context auf der Spark-Shell:

scala> var Daten = sc.textFile("/root/LinuxHint/spark/README.md")
Daten: org.Apache.Funke.rdd.RDD[String] = /root/LinuxHint/spark/README.md MapPartitionsRDD[1] at textFile at:24
Skala>

Nun muss der in der Datei vorhandene Text in Token aufgeteilt werden, die Spark verwalten kann:

scala> var-Token = Daten.flatMap(s => s.Teilt(" "))
Token: org.Apache.Funke.rdd.RDD[String] = MapPartitionsRDD[2] bei flatMap bei :25
Skala>

Initialisieren Sie nun die Zählung für jedes Wort auf 1:

scala> var Token_1 = Token =.Karte(s => (s,1))
tokens_1: org.Apache.Funke.rdd.RDD[(String, Int)] = MapPartitionsRDD[3] at map at :25
Skala>

Berechnen Sie schließlich die Häufigkeit jedes Wortes der Datei:

var sum_each = Token_1.ReduceByKey((a, b) => a + b)

Zeit, sich die Ausgabe für das Programm anzusehen. Sammle die Token und ihre jeweilige Anzahl:

scala> sum_each.sammeln()
res1: Array[(String, Int)] = Array((Paket,1), (For,3), (Programme,1), (Verarbeitung.,1), (Weil,1), (Der,1), (Seite](http://spark.Apache.Organisation/Dokumentation.html).,1), (Cluster).,1), (its,1), ([run,1), (als,1), (APIs,1), (have,1), (Try,1), (computation,1), (through,1 ), (mehrere,1), (This,2), (graph,1), (Hive,2), (Speicher,1), (["Specifying,1), (To,2), ("Garn" ,1), (Einmal,1), (["Nützlich,1), (bevorzugt,1), (SparkPi,2), (Engine,1), (Version,1), (Datei,1), (Dokumentation ,,1), (Verarbeitung,,1), (die,24), (sind,1), (Systeme.,1), (params,1), (not,1), (anders,1), (refer,2), (Interactive,2), (R,,1), (gegeben.,1), (if,4), (build,4), (when,1), (be,2), (Tests,1), (Apache,1), (Thread,1), (Programme,,1 ), (einschließlich,4), (./bin/run-example,2), (Spark.,1 Paket.,1), (1000).count(),1), (Versionen,1), (HDFS,1), (D…
Skala>

Ausgezeichnet! Wir konnten ein einfaches Word Counter-Beispiel mit der Programmiersprache Scala mit einer bereits im System vorhandenen Textdatei ausführen.

Fazit

In dieser Lektion haben wir uns angesehen, wie wir Apache Spark unter Ubuntu 17 installieren und verwenden können.10-Maschine und führen Sie auch eine Beispielanwendung darauf aus.

Lesen Sie hier mehr Ubuntu-basierte Beiträge.

Beste Gamepad-Mapping-Apps für Linux
Wenn du Spiele unter Linux gerne mit einem Gamepad statt mit einem typischen Tastatur- und Maus-Eingabesystem spielst, gibt es einige nützliche Apps f...
Nützliche Tools für Linux-Spieler
Wenn Sie gerne unter Linux spielen, haben Sie wahrscheinlich Apps und Dienstprogramme wie Wine, Lutris und OBS Studio verwendet, um das Spielerlebnis ...
HD-Remastered-Spiele für Linux, die noch nie zuvor eine Linux-Version hatten
Viele Spieleentwickler und -herausgeber entwickeln HD-Remaster alter Spiele, um die Lebensdauer des Franchise zu verlängern. Bitte Fans, die Kompatibi...