Apache Spark är ett dataanalysverktyg som kan användas för att bearbeta data från HDFS, S3 eller andra datakällor i minnet. I det här inlägget installerar vi Apache Spark på en Ubuntu 17.10 maskin.
Ubuntu-version
För den här guiden använder vi Ubuntu version 17.10 (GNU / Linux 4.13.0-38-generisk x86_64).
Apache Spark är en del av Hadoop-ekosystemet för Big Data. Försök att installera Apache Hadoop och skapa en applikation med den.
Uppdaterar befintliga paket
För att starta installationen för Spark är det nödvändigt att vi uppdaterar vår maskin med senaste tillgängliga programvarupaket. Vi kan göra detta med:
sudo apt-get update && sudo apt-get -y dist-upgradeEftersom Spark är baserat på Java måste vi installera det på vår maskin. Vi kan använda vilken Java-version som helst ovanför Java 6. Här kommer vi att använda Java 8:
sudo apt-get -y installera openjdk-8-jdk-headlessHämtar Spark-filer
Alla nödvändiga paket finns nu på vår maskin. Vi är redo att ladda ner de nödvändiga Spark TAR-filerna så att vi kan börja ställa in dem och köra ett exempelprogram med Spark också.
I den här guiden kommer vi att installera Spark v2.3.0 tillgänglig här:
Gnistnedladdningssida
Ladda ner motsvarande filer med det här kommandot:
wget http: // www-us.apache.org / dist / gnista / gnista-2.3.0 / gnista-2.3.0-bin-hadoop2.7.tgzBeroende på nätverkshastigheten kan det ta upp till några minuter eftersom filen är stor i storlek:
Hämtar Apache Spark
Nu när vi har hämtat TAR-filen kan vi extrahera i den aktuella katalogen:
tjära xvzf gnista-2.3.0-bin-hadoop2.7.tgzDet tar några sekunder att slutföra på grund av arkivets stora filstorlek:
Oarkiverade filer i Spark
När det gäller att uppgradera Apache Spark i framtiden kan det skapa problem på grund av sökuppdateringar. Dessa problem kan undvikas genom att skapa en mjuklänk till Spark. Kör det här kommandot för att skapa en mjuklänk:
ln -s gnista-2.3.0-bin-hadoop2.7 gnistaLägga till gnista till sökvägen
För att köra Spark-skript lägger vi till det i sökvägen nu. För att göra detta, öppna bashrc-filen:
vi ~ /.bashrcLägg till dessa rader i slutet av .bashrc-fil så att sökvägen kan innehålla Spark-körbar filsökväg:
SPARK_HOME = / LinuxHint / gnistaexportera PATH = $ SPARK_HOME / bin: $ PATH
Nu ser filen ut:
Lägga till Spark till PATH
För att aktivera dessa ändringar, kör följande kommando för bashrc-fil:
källa ~ /.bashrcLanserar Spark Shell
Nu när vi är precis utanför gnistkatalogen, kör följande kommando för att öppna apark-skal:
./ gnista / korg / gnistskalVi kommer att se att Spark shell är öppen nu:
Lanserar gnistskal
Vi kan se i konsolen att Spark också har öppnat en webbkonsol på port 404. Låt oss besöka det:
Apache Spark Web Console
Även om vi kommer att fungera på själva konsolen är webbmiljön en viktig plats att titta på när du utför tunga gnistjobb så att du vet vad som händer i varje gnistjobb du utför.
Kontrollera Spark shell-versionen med ett enkelt kommando:
sc.versionVi kommer tillbaka något som:
res0: Sträng = 2.3.0Gör ett exempel på gnistapplikation med Scala
Nu gör vi ett exempel på ett Word Counter-program med Apache Spark. För att göra detta laddar du först en textfil i Spark Context på Spark-skal:
scala> var Data = sc.textFile ("/ root / LinuxHint / spark / README.md ")Data: org.apache.gnista.rdd.RDD [String] = / root / LinuxHint / spark / README.md MapPartitionsRDD [1] vid textFile vid: 24
scala>
Nu måste texten i filen delas in i tokens som Spark kan hantera:
scala> var tokens = Data.flatMap (s => s.dela(" "))tokens: org.apache.gnista.rdd.RDD [String] = MapPartitionsRDD [2] vid flatMap vid: 25
scala>
Initiera nu antalet för varje ord till 1:
scala> var tokens_1 = tokens.karta (s => (s, 1))tokens_1: org.apache.gnista.rdd.RDD [(String, Int)] = MapPartitionsRDD [3] vid karta vid: 25
scala>
Slutligen beräknar du frekvensen för varje ord i filen:
var sum_each = tokens_1.reduceraByKey ((a, b) => a + b)Dags att titta på utdata för programmet. Samla in tokens och deras respektive antal:
scala> sum_each.samla()res1: Array [(String, Int)] = Array ((paket, 1), (For, 3), (Program, 1), (bearbetning.,1), (Eftersom, 1), (The, 1), (sida] (http: // gnista.apache.org / dokumentation.html).,1), (kluster.,1), (dess, 1), ([kör, 1), (än, 1), (API: er, 1), (har, 1), (Prova, 1), (beräkning, 1), (genom, 1 ), (flera, 1), (This, 2), (diagram, 1), (Hive, 2), (lagring, 1), (["Specifying, 1), (To, 2), (" garn " , 1), (En gång, 1), (["Användbar, 1), (föredrar, 1), (SparkPi, 2), (motor, 1), (version, 1), (fil, 1), (dokumentation ,, 1), (bearbetning ,, 1), (the, 24), (are, 1), (systems.,1), (params, 1), (not, 1), (different, 1), (refer, 2), (Interactive, 2), (R ,, 1), (given.,1), (if, 4), (build, 4), (when, 1), (be, 2), (Tests, 1), (Apache, 1), (thread, 1), (program ,, 1 ), (inklusive, 4), (./ bin / run-exempel, 2), (Spark.,1), (paket.,1), (1000).count (), 1), (Versions, 1), (HDFS, 1), (D ..
scala>
Excellent! Vi kunde köra ett enkelt Word Counter-exempel med Scala-programmeringsspråk med en textfil som redan finns i systemet.
Slutsats
I den här lektionen tittade vi på hur vi kan installera och börja använda Apache Spark på Ubuntu 17.10 maskin och kör en provapplikation på den också.
Läs mer Ubuntu-baserade inlägg här.