Apache Spark er et dataanalyseværktøj, der kan bruges til at behandle data fra HDFS, S3 eller andre datakilder i hukommelsen. I dette indlæg installerer vi Apache Spark på en Ubuntu 17.10 maskine.
Ubuntu-version
Til denne vejledning bruger vi Ubuntu version 17.10 (GNU / Linux 4.13.0-38-generisk x86_64).
Apache Spark er en del af Hadoop-økosystemet til Big Data. Prøv at installere Apache Hadoop, og lav en prøveapplikation med den.
Opdatering af eksisterende pakker
For at starte installationen af Spark er det nødvendigt, at vi opdaterer vores maskine med de nyeste tilgængelige softwarepakker. Vi kan gøre dette med:
sudo apt-get opdatering && sudo apt-get -y dist-upgradeDa Spark er baseret på Java, skal vi installere det på vores maskine. Vi kan bruge enhver Java-version over Java 6. Her bruger vi Java 8:
sudo apt-get -y installer openjdk-8-jdk-headlessDownload af Spark-filer
Alle de nødvendige pakker findes nu på vores maskine. Vi er klar til at downloade de krævede Spark TAR-filer, så vi også kan begynde at konfigurere dem og køre et eksempelprogram med Spark.
I denne vejledning installerer vi Spark v2.3.0 tilgængelig her:
Gnist download side
Download de tilsvarende filer med denne kommando:
wget http: // www-os.apache.org / dist / gnist / gnist-2.3.0 / gnist-2.3.0-bin-hadoop2.7.tgzAfhængigt af netværkshastigheden kan dette tage op til et par minutter, da filen er stor:
Downloader Apache Spark
Nu hvor vi har downloadet TAR-filen, kan vi udtrække i den aktuelle mappe:
tjære xvzf gnist-2.3.0-bin-hadoop2.7.tgzDette tager nogle få sekunder at fuldføre på grund af arkivets store filstørrelse:
Ikke arkiverede filer i Spark
Når det kommer til at opgradere Apache Spark i fremtiden, kan det skabe problemer på grund af stiopdateringer. Disse problemer kan undgås ved at oprette et softlink til Spark. Kør denne kommando for at oprette et softlink:
ln -s gnist-2.3.0-bin-hadoop2.7 gnistTilføjelse af gnist til sti
For at udføre Spark-scripts tilføjer vi det til stien nu. For at gøre dette skal du åbne bashrc-filen:
vi ~ /.bashrcTilføj disse linjer til slutningen af .bashrc-fil, så stien kan indeholde Spark-eksekverbar filsti:
SPARK_HOME = / LinuxHint / gnisteksporter PATH = $ SPARK_HOME / bin: $ PATH
Nu ser filen ud:
Tilføjelse af gnist til PATH
For at aktivere disse ændringer skal du køre følgende kommando for bashrc-fil:
kilde ~ /.bashrcLancering af Spark Shell
Nu når vi er lige uden for gnistkataloget, skal du køre følgende kommando for at åbne apark shell:
./ gnist / skraldespand / gnistskalVi ser, at Spark shell er åben nu:
Lancering af gnistskal
Vi kan se i konsollen, at Spark også har åbnet en webkonsol på port 404. Lad os besøge det:
Apache Spark Web Console
Selvom vi fungerer på selve konsollen, er webmiljø et vigtigt sted at se på, når du udfører tunge gnistjob, så du ved, hvad der sker i hvert gnistjob, du udfører.
Tjek Spark shell-versionen med en simpel kommando:
sc.versionVi får noget tilbage som:
res0: Streng = 2.3.0Lav en prøve Gnistapplikation med Scala
Nu laver vi en prøve Word Counter-applikation med Apache Spark. For at gøre dette skal du først indlæse en tekstfil i Spark Context på Spark shell:
scala> var Data = sc.textFile ("/ root / LinuxHint / spark / README.md ")Data: org.apache.gnist.rdd.RDD [String] = / root / LinuxHint / gnist / README.md MapPartitionsRDD [1] ved textFile ved: 24
scala>
Nu skal teksten, der findes i filen, opdeles i tokens, som Spark kan administrere:
scala> var tokens = Data.flatMap (s => s.split (""))tokens: org.apache.gnist.rdd.RDD [String] = MapPartitionsRDD [2] ved flatMap ved: 25
scala>
Initialiser nu optællingen for hvert ord til 1:
scala> var tokens_1 = tokens.kort (s => (s, 1))tokens_1: org.apache.gnist.rdd.RDD [(String, Int)] = MapPartitionsRDD [3] på kort ved: 25
scala>
Endelig beregner du hyppigheden af hvert ord i filen:
var sum_each = tokens_1.reducereByKey ((a, b) => a + b)Tid til at se på output til programmet. Saml poletterne og deres respektive optællinger:
scala> sum_each.indsamle()res1: Array [(String, Int)] = Array ((pakke, 1), (For, 3), (Programmer, 1), (behandling.,1), (Fordi, 1), (The, 1), (side] (http: // gnist.apache.org / dokumentation.html).,1), (klynge.,1), (dens, 1), ([run, 1), (than, 1), (API'er, 1), (have, 1), (Try, 1), (beregning, 1), (gennem, 1 ), (flere, 1), (Dette, 2), (graf, 1), (Hive, 2), (opbevaring, 1), (["Specificering, 1), (Til, 2), (" garn " , 1), (Én gang, 1), (["Nyttig, 1), (foretrækker, 1), (SparkPi, 2), (motor, 1), (version, 1), (fil, 1), (dokumentation ,, 1), (behandling ,, 1), (the, 24), (are, 1), (systems.,1), (params, 1), (ikke, 1), (anderledes, 1), (henvis, 2), (Interaktiv, 2), (R ,, 1), (givet.,1), (hvis, 4), (build, 4), (når, 1), (be, 2), (Tests, 1), (Apache, 1), (tråd, 1), (programmer ,, 1 ), (herunder, 4), (./ bin / run-eksempel, 2), (Spark.,1), (pakke.,1), (1000).count (), 1), (Versions, 1), (HDFS, 1), (D…
scala>
Fremragende! Vi var i stand til at køre et simpelt Word Counter-eksempel ved hjælp af Scala-programmeringssprog med en tekstfil, der allerede findes i systemet.
Konklusion
I denne lektion så vi på, hvordan vi kan installere og begynde at bruge Apache Spark på Ubuntu 17.10 maskine og kør også en prøveapplikation på den.
Læs flere Ubuntu-baserede indlæg her.