Apache Spark is een tool voor gegevensanalyse die kan worden gebruikt om gegevens uit HDFS, S3 of andere gegevensbronnen in het geheugen te verwerken. In dit bericht zullen we Apache Spark installeren op een Ubuntu 17.10 automaat.
Ubuntu-versie
Voor deze handleiding gebruiken we Ubuntu versie 17.10 (GNU/Linux 4.13.0-38-generiek x86_64).
Apache Spark maakt deel uit van het Hadoop-ecosysteem voor Big Data. Probeer Apache Hadoop te installeren en maak er een voorbeeldtoepassing mee.
Bestaande pakketten bijwerken
Om de installatie voor Spark te starten, is het noodzakelijk dat we onze machine updaten met de nieuwste beschikbare softwarepakketten. Dit kunnen we doen met:
sudo apt-get update && sudo apt-get -y dist-upgradeOmdat Spark op Java is gebaseerd, moeten we het op onze machine installeren. We kunnen elke Java-versie boven Java 6 gebruiken. Hier zullen we Java 8 gebruiken:
sudo apt-get -y installeer openjdk-8-jdk-headlessSpark-bestanden downloaden
Alle benodigde pakketten staan nu op onze machine. We zijn klaar om de vereiste Spark TAR-bestanden te downloaden, zodat we ze kunnen instellen en ook een voorbeeldprogramma met Spark kunnen uitvoeren.
In deze handleiding gaan we installeren Spark v2.3.0 beschikbaar Hier:
Spark-downloadpagina
Download de bijbehorende bestanden met deze opdracht:
wget http://www-us.apache.org/dist/spark/spark-2.3.0/vonk-2.3.0-bin-hadoop2.7.tgzAfhankelijk van de netwerksnelheid kan dit enkele minuten duren omdat het bestand groot is:
Apache Spark downloaden
Nu we het TAR-bestand hebben gedownload, kunnen we het uitpakken in de huidige map:
tar xvzf spark-2.3.0-bin-hadoop2.7.tgzDit duurt enkele seconden vanwege de grote bestandsgrootte van het archief:
Niet-gearchiveerde bestanden in Spark
Als het gaat om het upgraden van Apache Spark in de toekomst, kan dit problemen veroorzaken als gevolg van Path-updates. Deze problemen kunnen worden vermeden door een softlink naar Spark . te maken. Voer deze opdracht uit om een softlink te maken:
ln -s vonk-2.3.0-bin-hadoop2.7 vonkSpark toevoegen aan pad
Om Spark-scripts uit te voeren, zullen we het nu aan het pad toevoegen. Open hiervoor het bashrc-bestand:
v ~/.bashrcVoeg deze regels toe aan het einde van de .bashrc-bestand zodat het pad het uitvoerbare Spark-bestandspad kan bevatten:
SPARK_HOME=/LinuxHint/sparkexport PATH=$SPARK_HOME/bin:$PATH
Nu ziet het bestand er als volgt uit:
Spark toevoegen aan PATH
Om deze wijzigingen te activeren, voert u de volgende opdracht uit voor het bashrc-bestand:
bron ~/.bashrcSpark Shell lanceren
Wanneer we ons nu net buiten de spark-directory bevinden, voert u de volgende opdracht uit om apark-shell te openen:
./vonk/bak/vonkschaalWe zullen zien dat de Spark-shell nu wordt geopend:
Spark-shell starten
We kunnen in de console zien dat Spark ook een webconsole heeft geopend op poort 404. Laten we het eens bezoeken:
Apache Spark-webconsole
Hoewel we op de console zelf zullen werken, is de webomgeving een belangrijke plaats om naar te kijken wanneer u zware Spark-taken uitvoert, zodat u weet wat er gebeurt in elke Spark-taak die u uitvoert.
Controleer de Spark-shellversie met een eenvoudig commando:
sc.versieWe krijgen zoiets terug als:
res0: String = 2.3.0Een voorbeeld van een Spark-toepassing maken met Scala
Nu gaan we een voorbeeld van een Word Counter-toepassing maken met Apache Spark. Om dit te doen, laadt u eerst een tekstbestand in Spark Context op Spark-shell:
scala> var Data = sc.textFile("/root/LinuxHint/spark/README.md")Gegevens: org.apache.vonk.rdd.RDD[String] = /root/LinuxHint/spark/README.md MapPartitionsRDD[1] op textFile op :24
scala>
Nu moet de tekst in het bestand worden opgedeeld in tokens die Spark kan beheren:
scala> var tokens = gegevens.flatMap(s => s.splitsen(" "))penningen: org.apache.vonk.rdd.RDD[String] = MapPartitionsRDD[2] op flatMap op :25
scala>
Initialiseer nu de telling voor elk woord op 1:
scala> var tokens_1 = tokens.kaart(en => (s,1))tokens_1: org.apache.vonk.rdd.RDD[(String, Int)] = MapPartitionsRDD[3] op kaart op :25
scala>
Bereken ten slotte de frequentie van elk woord van het bestand:
var sum_each = tokens_1.reduceByKey((a, b) => a + b)Tijd om naar de uitvoer van het programma te kijken. Verzamel de tokens en hun respectieve tellingen:
scala> sum_each.verzamelen()res1: Array[(String, Int)] = Array((pakket,1), (For,3), (Programma's,1), (verwerking.,1), (Omdat,1), (De,1), (pagina](http://spark.apache.org/documentatie.html).,1), (cluster.,1), (its,1), ([run,1), (than,1), (API's,1), (have,1), (Try,1), (computation,1), (through,1 ), (meerdere,1), (Dit,2), (grafiek,1), (Hive,2), (opslag,1), (["Specificeren,1), (Aan,2), ("garen" ,1), (Once,1), (["Handig,1), (prefer,1), (SparkPi,2), (engine,1), (versie,1), (bestand,1), (documentatie ,,1), (verwerking,,1), (de,24), (zijn,1), (systemen.,1), (params,1), (niet,1), (anders,1), (verwijzen,2), (Interactief,2), (R,,1), (gegeven.,1), (if,4), (build,4), (wanneer,1), (be,2), (Tests,1), (Apache,1), (thread,1), (programma's,,1 ), (inclusief,4), (./bin/run-voorbeeld,2), (Spark.,1), (pakket).,1), (1000).count(),1), (Versies,1), (HDFS,1), (D..
scala>
Uitstekend! We konden een eenvoudig Word Counter-voorbeeld uitvoeren met de programmeertaal Scala met een tekstbestand dat al in het systeem aanwezig was.
Conclusie
In deze les hebben we gekeken hoe we Apache Spark op Ubuntu 17 kunnen installeren en gebruiken.10-machine en voer er ook een voorbeeldtoepassing op uit.
Lees hier meer op Ubuntu gebaseerde berichten.