Paras vastaus
Sillä mitä se koskee koko kehystä: Apache Spark on tällä hetkellä yksi askel kilpailijoitaan edellä , johtuen joistakin ominaisuuksista, kuten erilaisten ja erittäin hyödyllisten työkalujen (Spark SQL ja MLlib vain mainitakseni kaksi) toteuttamisesta (ja integroinnista) ja kyvystä tallentaa välitietoja RDD-tiedostoihin. Tämän motiivin takia monet kehittäjät keskittyvät siihen, ja luulen, että kunnes uusi läpimurto taustalla olevassa tekniikassa tulee esiin, kaikki kilpailijat ovat merkityksettömiä.
Toisin, jos tarkastelet yksittäisiä toteutuksia Apache Sparkissa voit tunnistaa joitain kilpailijoita: H2O on Spark MLlibin haastaja, Storm (on Joe huomauttanut) on vaihtoehto Spark-suoratoistolle, ja siellä on useita SQL-tyyppisiä moottoreita, joita voidaan verrata Spark SQL: ään .
Vastaa
Tässä on joitain JÄRJEITÄ Apache Sparkista, jota käytän.
Työ: – Koodinpätkä, joka lukee jonkin verran syötettä HDFS: stä tai paikallisesta, suorittaa tietojenkäsittelyn ja kirjoittaa osan tulostetiedoista.
Vaiheet: -Työt on jaettu vaiheisiin . Vaiheet luokitellaan kartaksi tai vähennetään vaiheita (sen ymmärtäminen on helpompaa, jos olet työskennellyt Hadoopin parissa ja haluat korreloida). Vaiheet on jaettu laskennallisten rajojen perusteella, kaikkia laskelmia (operaattoreita) ei voi päivittää yhdessä vaiheessa. Se tapahtuu monissa vaiheissa.
Tehtävät: – Jokaisessa vaiheessa on joitain tehtäviä, yksi tehtävä kutakin osiota kohti. Yksi tehtävä suoritetaan yhdellä suorittajalla (koneella) yhdellä datan osiolla.
DAG – DAG on lyhenne sanoista Directed Acyclic Graph, tässä yhteydessä se on operaattoreiden DAG.
Suorittaja – Tehtävän suorittamisesta vastaava prosessi.
Ohjain – Ohjelma / prosessi, joka vastaa työn ajamisesta kipinämoottorilla
Master – Kone, jolla ohjainohjelma toimii
Slave – kone, jolla Executor-ohjelma toimii
Kaikki kipinäiset työt käsittävät joukon operaattoreita ja suoritetaan tietojoukolla. Kaikkia työssä olevia operaattoreita käytetään rakentamaan DAG (Directed Acyclic Graph). DAG on optimoitu järjestelemällä ja yhdistämällä kuljettajia mahdollisuuksien mukaan. Oletetaan esimerkiksi, että sinun on lähetettävä Spark-työ, joka sisältää karttaoperaation ja suodatintoiminnon. Spark DAG -optimointityökalu järjestäisi uudelleen näiden operaattorien järjestyksen, koska suodatus vähentäisi karttatoimintojen määrää.
Sparkilla on pieni koodipohja ja järjestelmä on jaettu useisiin tasoihin. Jokaisella kerroksella on joitain vastuita. Tasot ovat toisistaan riippumattomia.
- Ensimmäinen kerros on tulkki , Spark käyttää Scala-tulkkia, joitain muutoksia.
- Kun kirjoitat koodisi kipinäkonsoliin (luot RDD: itä ja käytät operaattoreita) ), Spark luo operaattorikaavion.
- Kun käyttäjä suorittaa toiminnon (kuten kerätä), kaavio lähetetään DAG-ajastimeen. DAG-ajastin jakaa operaattorikaavion vaiheisiin (kartoita ja pienennä).
- Vaihe koostuu tehtävistä, jotka perustuvat syötetietojen osioihin. DAG-ajoitin toimittaa operaattorit yhdessä kaavion optimoimiseksi. Esimerkiksi monille karttaoperaattorit voidaan ajoittaa yhteen vaiheeseen. Tämä optimointi on avain Sparksin suorituskykyyn. DAG-ajastimen lopputulos on joukko vaiheita.
- Vaiheet välitetään Tehtäväaikataulu . Tehtävien ajoitus käynnistää tehtävät klusterinhallinta . (Spark Standalone / Lanka / Mesos). Tehtävien ajoitus ei tiedä vaiheiden välisistä riippuvuuksista.
- Työntekijä suorittaa orjan tehtävät. Uusi JVM aloitetaan TYÖ. Työntekijä tietää vain sille välitetyn koodin.
Spark tallentaa välimuistiin käsiteltävät tiedot, mikä antaa minulle mahdollisuuden sata kertaa nopeammin kuin hadoop. Spark käyttää Akkaa monisäikeisiin, toimeenpanijan tilan hallinta, tehtävien ajoitus. Se käyttää Jettyä jakamaan tiedostoja (purkit ja muut tiedostot), Http Broadcastia, ajaa Spark Web -käyttöliittymää. Spark on erittäin konfiguroitavissa ja pystyy hyödyntämään Hadoop Eco-Systemissä jo olevia komponentteja. Tämä on antanut kipinän kasvaa räjähdysmäisesti, ja lyhyessä ajassa monet organisaatiot käyttävät sitä jo tuotannossa.
Voit tarkastella
ymmärtämään asioita tarkemmin.