Welcome to Our Website

HPE Udvikler-Community Portal

Oprindelige indlæg information:

"authorDisplayName": "Carol McDonald","publish": "2018-10-17T08:00:00.000Z","tags": "spark"

I dette blog-indlæg, vi vil give en introduktion til Apache Gnist og dens historie og udforske nogle af de områder, hvor dens særlige sæt af kapaciteter, der viser de mest lovende. Vi vil diskutere forholdet til andre nøgleteknologier og give nogle nyttige tip.

med gnist 2.,0 og senere versioner blev store forbedringer implementeret for at gøre Spark lettere at programmere og udføre hurtigere.

Hvad er Apache Spark?

Spark er en generel distribueret databehandlingsmotor, der er egnet til brug under en lang række omstændigheder. Oven på Spark core databehandlingsmotor er der biblioteker til S .l, maskinlæring, grafberegning og stream-behandling, som kan bruges sammen i en applikation. Programmeringssprog understøttet af Spark omfatter: Java, Python, Scala og R., Applikationsudviklere og dataforskere inkorporerer Spark i deres applikationer for hurtigt at forespørge, analysere og transformere data i skala. Opgaver, der oftest er forbundet med Spark, inkluderer ETL-og s .l-batchjob på tværs af store datasæt, behandling af streamingdata fra sensorer, IoT eller finansielle systemer og maskinindlæringsopgaver.

Historie

for at forstå, Spark, det hjælper til at forstå sin historie., Før Spark var der MapReduce, en elastisk distribueret behandlingsramme, som gjorde det muligt for Google at indeksere den eksploderende mængde indhold på nettet på tværs af store klynger af råvareservere.

Der var 3 centrale begreber til Google-strategi:

  1. Distribuere data: når en data fil er uploadet til den klynge, der er opdelt i bidder, kaldet blokke af data, og fordelt på de data, noder og gentages på tværs af klyngen.,
  2. Distribuere beregning: brugere angive en kort-funktion, der behandler et key/value-parret til at generere et sæt af mellemliggende nøgle/værdi par, og en reduktion funktion, der samler alle mellemliggende værdier, der er forbundet med de samme mellemliggende nøgle. Programmer skrevet i dette funktionelle stil er automatisk parallelized og udføres på en stor klynge af råvare-maskiner på følgende måde:

    • kortlægningen kører på hver tildelt data node, der arbejder alene på sin blok af data fra et distribueret fil.,
    • resultaterne fra kortlægningsprocesserne sendes til reduktionsmidlerne i en proces kaldet “shuffle and sort”: nøgle/værdipar fra kortlægningerne sorteres efter nøgle, partitioneret med antallet af reduktionsmidler, og sendes derefter over netværket og skrives til nøgle sorterede “sekvensfiler” på reduktionsnoderne.
    • reduktionsprocessen udføres på den tildelte node og fungerer kun på dens undergruppe af dataene (dens sekvensfil). Udgangen fra reduktionsprocessen skrives til en outputfil.,
  3. Tolerere fejl: både data og beregning kan tolerere fejl ved ikke over til en anden node for data eller behandling.

MapReduce ord tæller udførelse eksempel:

Nogle iterative algoritmer, som PageRank, som Google bruges til at rangere hjemmesider i deres søgemaskine resultater, kræver en sammenkædning af flere MapReduce job sammen, hvilket forårsager en masse læsning og skrivning til disk., Når flere MapReduce-job er kædet sammen, læses data for hvert MapReduce-job fra en distribueret filblok til en kortproces, skrevet til og læst fra en se .uencefile imellem og derefter skrevet til en outputfil fra en reduktionsproces.

Et år efter, at Google har offentliggjort en hvidbog, der beskriver MapReduce ramme (2004), Doug Skæring og Mike Cafarella skabt Apache Hadoop™.,

Apache-Spark™ begyndte i 2009 som et projekt i den AMPLab ved University of California, Berkeley. Spark blev en inkuberes projekt af Apache Software Foundation i 2013, og det blev forfremmet tidligt i 2014 til at blive en af Instituttets top-niveau-projekter. Gnist er i øjeblikket en af de mest aktive projekter, der forvaltes af Instituttet, og det samfund, der er vokset op omkring projektet omfatter både frodig individuelle bidragydere og godt-finansieret corporate bagmænd, som Databricks, IBM, og Kinas Huawei.,

målet med Spark-projektet var at bevare fordelene ved Mapreduces skalerbare, distribuerede, fejltolerante behandlingsramme, samtidig med at det blev mere effektivt og lettere at bruge. Fordelene ved Spark over MapReduce er:

  • Gnist udfører meget hurtigere ved caching af data i hukommelsen på tværs af flere parallelle aktiviteter, der henviser til, at MapReduce involverer læsning og skrivning fra disk.
  • Spark kører multi-threaded opgaver inde i JVM processer, mens MapReduce kører som tungere vægt JVM processer., Dette giver gnist hurtigere opstart, bedre parallelisme, og bedre CPU-udnyttelse.
  • Spark giver en rigere funktionel programmeringsmodel end MapReduce.
  • Spark er især nyttig til parallel behandling af distribuerede data med iterative algoritmer.

Hvordan en Gnist-Program Kører på en Klynge

diagrammet nedenfor viser en Gnist program, der kører på en klynge.,

  • en Spark-applikation kører som uafhængige processer, koordineret af SparkSession-objektet i driverprogrammet.
  • ressource-eller klyngeadministratoren tildeler opgaver til arbejdstagere, en opgave pr.
  • en opgave anvender sin arbejdsenhed til datasættet i sin partition og udsender et nyt partitionsdatasæt. Fordi iterative algoritmer anvender operationer gentagne gange på data, drager de fordel af caching af datasæt på tværs af iterationer.,
  • resultaterne sendes tilbage til driverprogrammet eller kan gemmes på disken.,anager i prisen med Gnist
  • Apache Mesos – en generel cluster manager, der også kan køre Hadoop programmer
  • Apache Hadoop GARN – resource manager i Hadoop 2
  • Kubernetes – et open source system til automatisering af deployment, skalering, og forvaltning af container-programmer

Gnist har også en lokal tilstand, hvor den driver og eksekutorer køre som tråde på din computer i stedet for en klynge, som er nyttige til at udvikle dine applikationer fra en personlig computer.,

Hvad gør Spark?

Spark er i stand til at håndtere flere petabyte data ad gangen fordelt over en klynge af tusinder af samarbejdende fysiske eller virtuelle servere. Den har et omfattende sæt af bygherren biblioteker og Api ‘ er, og understøtter sprog som Java, Python, R, og Scala; dens fleksibilitet gør det velegnet til en række use cases., Spark bruges ofte i forbindelse med distribuerede data-butikker, såsom HPE Ezmeral Data Stof, Hadoop er HDFS, og Amazon S3, med populære NoSQL-databaser, såsom HPE Ezmeral Data Stof, Apache HBase, Apache Kassandra, og MongoDB, og med distribueret messaging-butikker, såsom HPE Ezmeral Data Stof og Apache Kafka.

typiske brugssager inkluderer:

Stream-behandling: fra logfiler til sensordata er applikationsudviklere i stigende grad nødt til at klare “strømme” af data., Disse data ankommer i en jævn strøm, ofte fra flere kilder samtidigt. Selvom det bestemt er muligt at gemme disse datastrømme på disken og analysere dem retrospektivt, kan det undertiden være fornuftigt eller vigtigt at behandle og handle efter dataene, når de ankommer. Strømme af data relateret til finansielle transaktioner kan for eksempel behandles i realtid for at identificere– og nægte– potentielt svigagtige transaktioner.

maskinindlæring: efterhånden som datamængderne vokser, bliver maskinindlæringsmetoder mere gennemførlige og mere nøjagtige., Soft .are kan trænes til at identificere og handle på triggere inden for velforståede datasæt, før de anvender de samme løsninger på nye og ukendte data. Sparks evne til at gemme data i hukommelsen og hurtigt køre gentagne forespørgsler gør det til et godt valg til træning af maskinlæringsalgoritmer. At køre stort set lignende forespørgsler igen og igen, i skala, reducerer den tid, der kræves for at gennemgå et sæt mulige løsninger for at finde de mest effektive algoritmer.,

Interaktive analytics: i Stedet for at køre pre-definerede søgninger til at skabe statisk dashboards af salg eller produktion linje produktivitet eller aktiekurser, business analytikere og data, som forskerne ønsker at udforske deres data ved at stille et spørgsmål, visning af resultatet, og så kan du enten ændre det oprindelige spørgsmål lidt eller bore dybere ned i resultaterne. Denne interaktive forespørgselsproces kræver systemer som Spark, der er i stand til at reagere og tilpasse sig hurtigt.,

dataintegration: Data produceret af forskellige systemer på tværs af en virksomhed er sjældent rene eller konsistente nok til enkelt og nemt at blive kombineret til rapportering eller analyse. Uddrag, transformere og indlæse (ETL) processer bruges ofte til at trække data fra forskellige systemer, rense og standardisere dem og derefter indlæse dem i et separat system til analyse. Spark (og Hadoop) bruges i stigende grad til at reducere omkostningerne og den tid, der kræves til denne ETL-proces.

Hvem bruger gnist?,

En bred vifte af teknologi-leverandører har været hurtig til at støtte Gnist, anerkender den mulighed at udvide deres eksisterende big data-produkter i de områder, hvor Gnist leverer reel værdi, såsom interaktive forespørge og machine learning. Kendte virksomheder som IBM og Hua .ei har investeret betydelige summer i teknologien, og et stigende antal startups bygger virksomheder, der helt eller delvist er afhængige af Spark., For eksempel, i 2013 Berkeley team ansvarlig for at skabe Spark grundlagt Databricks, som giver en hostet end-to-end dataplatform drevet af Spark. Virksomheden er godt finansieret efter at have modtaget 247 millioner dollars på tværs af fire investeringsrunder i 2013, 2014, 2016 og 2017, og Databricks-medarbejdere spiller fortsat en fremtrædende rolle i forbedring og udvidelse af open source-koden til Apache Spark-projektet.,

De store Hadoop-leverandører, herunder MapR, Cloudera, og Hortonworks, har alle flyttet til støtte GARN-baseret Gnist sammen med deres eksisterende produkter, og hver leverandør arbejder på at tilføje værdi til sine kunder. Andre steder har IBM, Hua .ei og andre alle foretaget betydelige investeringer i Apache Spark, integreret det i deres egne produkter og bidraget med forbedringer og udvidelser tilbage til Apache-projektet., Web-baserede virksomheder, som den Kinesiske søgemaskine Baidu, e-handel operation Taobao, og social networking selskab Tencent, løber alle Spark-baserede operationer på skalaen, med Tencent 800 millioner aktive brugere efter sigende genererer over 700 TB data per dag for behandling på en klynge af mere end 8.000 beregne knudepunkter.

ud over de giantsebbaserede giganter afhænger farmaceutisk virksomhed Novartis af Spark for at reducere den tid, der kræves for at få modelleringsdata i hænderne på forskere, samtidig med at man sikrer, at etiske og kontraktlige sikkerhedsforanstaltninger opretholdes.,

Hvad sætter Spark fra hinanden?

Der er mange grunde til at vælge Gnist, men de tre følgende er centrale:

Enkelhed: Spark ‘s kapaciteter, der er tilgængelig via et sæt af rig Api’ er, som alle er designet specielt til at interagere hurtigt og nemt med data på skalaen. Disse API ‘ er er veldokumenterede og struktureret på en måde, der gør det ligetil for data forskere og applikationsudviklere til hurtigt at sætte gnist til at arbejde.

hastighed: Spark er designet til hastighed, der fungerer både i hukommelsen og på disken., Ved hjælp af Spark bundet et hold fra Databricks til førstepladsen med et hold fra University of California, San Diego, i 2014 Daytona GraySort benchmarking challenge (https://spark.apache.org/news/spark-wins-daytona-gray-sort-100tb-benchmark.html). Udfordringen involverer behandling af et statisk datasæt; Databricks-teamet var i stand til at behandle 100 terabyte data, der er gemt på solid state-drev på kun 23 minutter, og den forrige vinder tog 72 minutter ved at bruge Hadoop og en anden klyngekonfiguration. Spark kan udføre endnu bedre, når støtte interaktive forespørgsler af data, der er gemt i hukommelsen., I disse situationer er der påstande om, at Spark kan være 100 gange hurtigere end Hadoops MapReduce.

Support: Spark understøtter en række programmeringssprog, herunder Java, Python, R og Scala. Spark omfatter støtte til tæt integration med en række af de førende storage-løsninger i Hadoop økosystem, og derefter, herunder HPE Ezmeral Data Stof (fil-system, database og event butikken), Apache Hadoop (HDFS), Apache HBase, og Apache Cassandra. Desuden er Apache Spark-samfundet stort, aktivt og internationalt., Et voksende sæt kommercielle udbydere, herunder Databricks, IBM og alle de vigtigste Hadoop-leverandører, leverer omfattende support til Spark-baserede løsninger.

Den Strøm af Data Rørledninger

Meget af Spark ‘ s styrke ligger i dens evne til at kombinere meget forskellige teknikker og processer sammen i et enkelt, sammenhængende hele. Udenfor Spark kan de diskrete opgaver med at vælge data, omdanne disse data på forskellige måder og analysere de transformerede resultater let kræve en række separate behandlingsrammer, såsom Apache oo .ie., Spark, på den anden side, giver mulighed for at kombinere disse sammen, krydser grænser mellem batch, streaming, og interaktive arbejdsgange på måder, der gør brugeren mere produktiv.

Spark job udføre flere operationer fortløbende, i hukommelsen, og kun spilde til disk, når det kræves af hukommelse begrænsninger. Spark forenkler styringen af disse forskellige processer og tilbyder en integreret helhed – en datarørledning, der er lettere at konfigurere, lettere at køre og lettere at vedligeholde., I brugssager som ETL kan disse rørledninger blive ekstremt rige og komplekse, der kombinerer et stort antal input og en bred vifte af behandlingstrin til en samlet helhed, der konsekvent leverer det ønskede resultat.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *