Opprinnelige innlegget informasjon:
"authorDisplayName": "Carol McDonald","publish": "2018-10-17T08:00:00.000Z","tags": "spark"
I dette blogg innlegget, vi vil gi en introduksjon til Apache Gnist og sin historie og se noen av de områdene som er dens bestemt sett av evner, viser de lover. Vi vil diskutere forholdet til andre viktige teknologier og gi noen nyttige tips.
Med Gnist 2.,0 og senere versjoner, av store forbedringer ble gjennomført for å gjøre Gnist enklere å programmere og kjøre raskere.
Hva Er Apache Gnist?
Gnist er en generell distribuert databehandling motor som er egnet for bruk i et bredt spekter av situasjoner. På toppen av Gnist core databehandling motor, det er biblioteker for SQL -, maskin-læring, grafen beregning, og spille av behandling, som kan brukes sammen i et program. Programmerings-språk som støttes av Gnist inkluderer: Java, Python, Scala, og R., Programmet utviklere og data forskere innlemme Gnist i sine programmer for å raskt søk, analysere og omforme data i stor skala. Oppgaver oftest forbundet med Gnist inkluderer ETL og SQL-batch-jobber på tvers av store datasett, behandling av streaming data fra sensorer, IoT, eller økonomiske systemer, og maskinlæring oppgaver.
Historie
for å forstå Gnist, det hjelper til å forstå sin historie., Før Gnist, det var MapReduce, en spenstig distribuert prosessering rammeverk, som gjorde det mulig for Google å indeksere den eksploderende volum av innhold på nettet, over store klynger av råvare-servere.
Det var 3 sentrale begrepene til Google strategi:
- Distribuere data: når en data-fil er lastet inn i klyngen, det er delt opp i biter, kalles data blokker, og fordeles mellom data noder og kopiert over klyngen.,
-
Distribuere beregning: brukere angi et kart funksjon som behandler et nøkkel/verdi-par for å generere et sett av middels nøkkel/verdi-par og redusere funksjonen som fletter i alle mellomliggende verdier knyttet til det samme middels-tasten. Programmer som er skrevet i denne funksjonell stil er automatisk parallelized og utføres på en stor klynge av råvare-maskiner på følgende måte:
- kartlegging prosessen kjører på hver tildelt data node, og arbeider bare på sin blokk av data fra et distribuert fil.,
- resultatene fra kartleggingen prosesser er sendt til reduksjonsgir i en prosess som kalles «shuffle og sortere»: nøkkel/verdi-par fra mappers er sortert etter nøkkelen, delt med antall reduksjonsgir, og deretter sendes over nettverket og skrevet for å tasten sortert «rekkefølge-filer» på redusering noder.
- Den redusering prosessen kjører på sin tildelte node og fungerer bare på sin delsett av dataene (sin sekvens-fil). Output fra redusering prosessen er skrevet til en output fil.,
- Tolerere feil: både data og beregning kan tolerere feil ved å unnlate over til en annen node for data eller behandling.
MapReduce word count gjennomføring eksempel:
Noen iterativ algoritmer, som PageRank, som Google brukes til å rangere nettsteder i deres søkemotor resultater, krever kjeding av flere MapReduce jobber sammen, noe som fører til mye lesing og skriving til disk., Når flere MapReduce jobber som er lenket sammen, for hver MapReduce jobb, data leses fra en distributed file blokk i et kart prosessen, skrives til og leses fra en SequenceFile i mellom, og så skrevet til en output fil fra en redusering prosessen.
Et år etter Google publisert en white paper som beskriver MapReduce framework (2004), Doug Skjæring og Mike Cafarella opprettet Apache Hadoop™.,
Apache Gnist™ begynte livet i 2009 som et prosjekt innenfor AMPLab ved University of California, Berkeley. Gnist ble inkubert prosjekt av Apache Software Foundation i 2013, og det ble fremmet tidlig i 2014 til å bli en av stiftelsens øverste nivå prosjekter. Gnist er i dag en av de mest aktive prosjekter administrert av Stiftelsen, og det samfunnet som har vokst opp rundt prosjektet omfatter både produktive individuelle bidragsytere og godt finansiert eierstyring og støttespillere, for eksempel Databricks, IBM, og Kina er Huawei.,
målet av Gnist-prosjektet var å høste fordelene av MapReduce er skalerbare, distribueres, feiltolerant behandling rammeverk, og som gjør det mer effektivt og enklere å bruke. Fordelene med Gnist over MapReduce er:
- Gnist kjører mye raskere ved å mellomlagre data i minnet på tvers av flere parallelle operasjoner, mens MapReduce innebærer mer lesing og skriving til disk.
- Gnist går multi-threaded oppgaver innsiden av JVM prosesser, mens MapReduce går som tyngre JVM prosesser., Dette gir Gnist raskere oppstart, bedre parallellitet, og bedre CPU-bruk.
- Gnist gir en rikere funksjonell programmering modell enn MapReduce.
- Gnist er spesielt nyttig for parallell behandling av distribuerte data med iterativ algoritmer.
Hvordan en Gnist-Programmet Kjøres på en Klynge
diagrammet nedenfor viser en Gnist-programmet kjører på en klynge.,
- En Gnist-programmet kjøres som uavhengige prosesser, koordinert av SparkSession objekt i driveren programmet.
- ressursen eller cluster manager tildeler oppgaver til arbeidere, én oppgave per partisjon.
- En oppgave gjelder dens enhet av arbeidet til datasettet i sin partisjon og utganger en ny partisjon dataset. Fordi iterativ algoritmer gjelder operasjoner gjentatte ganger til data, som de kan dra nytte av caching datasett over iterasjoner.,
- Resultatene sendes tilbake til driver-programmet eller den kan være lagret på disken.,anager følger med Gnist
- Apache-Mesos – en generell cluster manager som kan også kjøre Hadoop programmer
- Apache Hadoop GARN – resource manager i Hadoop 2
- Kubernetes – et open source system for å automatisere distribusjon, skalering, og ledelse av containerized programmer
Gnist har også en lokal modus, hvor de driver og executors kjøre som tråder på datamaskinen i stedet for en klynge, som er nyttig for å utvikle programmer fra en personlig datamaskin.,
Hva Gjør Gnist Gjøre?
Gnist er i stand til å håndtere flere petabyte med data av gangen, fordelt på en klynge av tusenvis av samarbeidet fysiske eller virtuelle servere. Det har et omfattende sett av utvikleren biblioteker og Api-er og støtter språk som Java, Python, R, og Scala; dens fleksibilitet gjør det godt egnet for en rekke tilfeller., Gnist er ofte brukt sammen med distribuert data butikker som HPE Ezmeral Data Stoff, Hadoop er HDFS, og Amazon S3, med populære NoSQL databaser som HPE Ezmeral Data Stoff, Apache HBase, Apache Cassandra, og MongoDB, og med distribueres meldinger butikker som HPE Ezmeral Data Stoff og Apache Kafka.
Typiske tilfeller inkluderer:
Stream behandling: Fra logg-filer til sensor data, applikasjoner utviklere er stadig å måtte takle «bekker» av data., Disse dataene kommer i en jevn strøm, ofte fra flere kilder samtidig. Mens det er absolutt mulig å lagre disse dataene strømmer på disk og analysere dem i ettertid, kan det noen ganger være fornuftig eller viktig å behandle og handle på data som det kommer. Strømmer av data relatert til finansielle transaksjoner, for eksempel, kan bli behandlet i sanntid for å identifisere– og nekte– potensielt falske transaksjoner.
Machine learning: data volumer vokse, machine learning tilnærminger bli mer praktisk og stadig mer nøyaktige., Programvare kan være opplært til å identifisere og handle på utløser innen godt forstått datasett før du tar i bruk de samme løsningene til nye og ukjente data. Gnist er muligheten til å lagre data i minnet og raskt kjøre gjentatte søk gjør det til et godt valg for trening maskinlæring algoritmer. Kjører bredt lignende spørsmål igjen og igjen, i stor skala, i betydelig grad reduserer den tiden som kreves for å gå gjennom et sett av mulige løsninger for å finne den mest effektive algoritmer.,
Interaktiv analytics: Snarere enn å kjøre pre-definert spørringer for å opprette statisk oversikter over salg eller produksjon linje produktivitet eller aksjekurser, business data analytikere og forskere ønsker å utforske sine data ved å spørre et spørsmål, ser resultatet, og deretter enten å endre den første spørsmål litt eller bore dypere inn i resultatene. Denne interaktive spørring prosessen krever systemer som Gnist som er i stand til å reagere og tilpasse seg raskt.,
Data integration: Data produsert av ulike systemer i en virksomhet er sjelden ren eller konsekvent nok til å raskt og enkelt kombineres for rapportering eller analyse. Extract, transform, og load (ETL) prosesser er ofte brukt til å hente data fra forskjellige systemer, rent og standardisere det, og deretter laste det inn i et eget system for analyse. Gnist (og Hadoop) er i økende grad blir brukt til å redusere kostnadene og tiden som kreves for denne ETL prosess.
Som Bruker Gnist?,
Et bredt spekter av teknologi leverandører har vært raske til å støtte Gnist, erkjennelsen mulighet til å utvide sin eksisterende big data produkter til områder der Gnist gir reell verdi, som for eksempel interaktive spørring og maskinlæring. Kjente selskaper som IBM og Huawei har investert betydelige summer i teknologi, og et økende antall selskaper i oppstartsfasen er å bygge virksomheter som er avhengig helt eller delvis på Gnist., For eksempel, i 2013 Berkeley-teamet er ansvarlig for å skape Gnist grunnlagt Databricks, som gir en hosted ende-til-ende data plattform drevet av Gnist. Selskapet er godt finansiert, etter å ha mottatt $247 millioner kroner over fire runder av investeringen i 2013, 2014, 2016 og 2017, og Databricks ansatte fortsette å spille en fremtredende rolle i å forbedre og utvide den åpne kildekoden for Apache-Gnist-prosjektet.,
Den store Hadoop leverandører, inkludert MapR, Cloudera, og Hortonworks, har alle flyttet til støtte GARN-basert Gnist parallelt med sine eksisterende produkter, og hver leverandør er å arbeide for å legge til verdi for sine kunder. Andre steder, IBM, Huawei, og andre har alle gjort betydelige investeringer i Apache Gnist, og integrere det inn i sine egne produkter, og bidra med forbedringer og utvidelser tilbake til Apache-prosjektet., Web-baserte selskaper, som Kinesiske søkemotoren Baidu, e-handel drift Taobao, og sosiale nettverk selskapet Tencent, alle kjører en Gnist-baserte operasjoner i stor skala, med Tencent 800 millioner aktive brukere angivelig generere over 700 TB med data per dag for prosessering på en klynge av mer enn 8000 datanoder.
I tillegg til de web-basert kjemper, legemiddelfirmaet Novartis, avhenger av Gnist til å redusere tiden som kreves for å få modellering data i hendene på forskere, og samtidig sikre at etiske og kontraktsmessige sikringstiltak er opprettholdt.,
Hva Setter Gnist fra Hverandre?
Det er mange grunner til å velge Gnist, men i de tre følgende er sentrale:
Enkelhet: Spark ‘ s evner som er tilgjengelig via et sett av rike Api, som alle er utformet spesielt for å kommunisere raskt og enkelt med data i stor skala. Disse Apiene er godt dokumentert og strukturert på en måte som gjør det enkelt for data forskere og programmet utviklere å raskt sette Gnist til å fungere.
Speed: Gnist er designet for fart, og opererer både i minnet og på harddisken., Ved hjelp av en Gnist, et team fra Databricks bundet etter første omgang med et team fra University of California, San Diego, i 2014 Daytona GraySort benchmarking utfordring (https://spark.apache.org/news/spark-wins-daytona-gray-sort-100tb-benchmark.html). Utfordringen innebærer behandling av en statisk data set; den Databricks teamet var i stand til å behandle 100 terabyte med data som er lagret på ssd-disker på bare 23 minutter, og den tidligere vinneren tok 72 minutter ved hjelp av Hadoop og en annen klynge konfigurasjon. Gnist kan utføre enda bedre når støtte for interaktive søk i data som er lagret i minnet., I slike situasjoner, er det krav om at Gnist kan være 100 ganger raskere enn Hadoop er MapReduce.
Support: Gnist støtter en rekke programmeringsspråk, inkludert Java, Python, R, og Scala. Gnist har støtte for tett integrasjon med en rekke ledende lagringsløsninger i Hadoop økosystem og utover, inkludert HPE Ezmeral Data Stoff (file system, en database, og arrangementet store), Apache Hadoop (HDFS), Apache HBase, og Apache Cassandra. Videre Apache Gnist samfunnet er stor, aktiv og internasjonalt., Større kommersielle leverandører, inkludert Databricks, IBM, og alle de viktigste Hadoop leverandører, leverer omfattende støtte for Gnist-baserte løsninger.
Strømmen av Data Rørledninger
Mye av Gnisten makt ligger i dens evne til å kombinere svært forskjellige teknikker og prosesser sammen til én sammenhengende helhet. Utenfor Gnist, diskret oppgaver for å velge data, transformere data på ulike måter, og å analysere de transformerte resultater kan lett krever en rekke separate behandling rammeverk, som for eksempel Apache Oozie., Gnist, på den andre siden, gir mulighet til å kombinere disse sammen, krysser grensene mellom batch, streaming, og interaktiv arbeidsflyter på måter som gjør brukeren mer produktiv.
Gnist jobber utføre flere operasjoner etter hverandre, i minnet, og bare søle til disk når det kreves av minne begrensninger. Gnist forenkler administrasjonen av disse ulike prosesser, og tilbyr en integrert helhet – et data-rørledningen som er enklere å konfigurere, lettere å kjøre, og lettere å vedlikeholde., I tilfeller som ETL disse rørledninger kan bli svært rik og kompleks, som kombinerer et stort antall innganger og et bredt spekter av behandling skritt inn i en helhet som konsekvent leverer det ønskede resultat.