Paras vastaus
Ehdotan, että luet Sparkin koodin vanhemmat versiot.
Harkitse versiota 0.5 julkaistu vuonna 2012 apache / spark Siihen mennessä Sparkilla oli vain noin 70 lähdekooditiedostoa ja kaikki nämä tiedostot olivat pieniä. Tutustu RDD: n lähdekoodiin täällä: apache / spark Kaikki on niin yksinkertaista ja ytimekästä.
Huomaa myös, että Sparkin arkkitehtuuri ei ole t muuttunut dramaattisesti siitä lähtien. Kehittäjät lisäsivät vain paljon virheiden käsittelyä, optimointia ja integrointia ulkoisiin tekniikoihin, kuten Yarn tai Kafka.
Kun ymmärrät Sparkin toiminnan vuonna 2012, ei olisi ongelma ymmärtää Sparkin toimintaa tänään.
Lisäksi suosittelen, että luet nämä huomautukset: JerryLead / SparkInternals . Ne tarjoavat sisäisen arkkitehtuurin yleiskatsauksen Sparkista.
Vastaus
Takaisin Noam Ben-Amin vastaukseen – JOS olet loppukäyttäjän käyttäjä, Spark voi olla melko tyhjentävä. ja vaikea oppia.
Vaikka tiedätkin Bashin, Pythonin ja SQL: n, se on vain Sparkin käytön jäävuoren huippu. Jos olet menossa ”end-to-end” Spark vs.Python / SQL-komentosarjaanalyytikko, siinä on monia komponentteja, jotka ovat itsessään isoja aiheita.
Toki, voit käyttää Sparkia paikallisesti (kannettava tietokoneesi) ja ilman Hadoopia, mutta ”todellisessa maailmassa” et käytä Sparkia näin. On mukavaa oppia joitain syntaksia, mutta älä tee virhettä, kukaan ei palkkaa sinua tekemään ”Sparkia” kyseisessä yhteydessä (* sanaleikki tarkoitettu).
Sparkin käytön koko syy on suorituskyky ja istut hajautetun tiedostojärjestelmän, eli ”Big Data”, päällä. Tämä tarkoittaa, että kun kirjoitat koodia Spark-töihisi, ymmärrät esimerkiksi osiot, solmut, sarjallisuuden, JVM: n, vcoreet, suorittajat, muistin, muistin ja levyn, sekoitukset, pakatut tiedostot, sarakemuodot (parketti) ja vastaavat. tapa siirtää tietoja sanoista S3 RDD: n, DataFramesin, DataSet-yksiköiden (vain Java / Scala) ja Spark SQL: n kautta lopputietojoukkoosi.
Minulle tämä on paljon kuin silloin, kun joku sanoisi tietävänsä ” Excel ”ja kysyt sitten heiltä, voisivatko he kirjoittaa perusmakron tyhjästä ja he saisivat tuon peuran ajovalojen ulkonäköön.
Mahdollinen hanke Sparkiin sisältäisi:
- Hadoop-klusterin rakentaminen (solmut, muisti, EC2-ilmentymät jne.)
- YARN-kokoonpano (solmut, ytimet, ilmentymät, suorittimet, muistin hallinta, ohjaimet, piirtomuisti, lähetys, muistissa ja päällä) levynhallinta jne.) – mikä tahansa näistä voi ripustaa / tappaa työpaikkasi, etkä saa edes yhden askelta edes triviaalien tietokuormien avulla, jos jokin näistä ei toimi ll tietojesi kanssa.
- Spark RDDs -dokumentaatio
- Spark DataFrames -dokumentaatio
- Spark SQL -dokumentaatio
- Kirjoitat väistämättä koodia #: n 3–5, joka paljastaa # 2: n ongelmat.
- Tässä vaiheessa todennäköisesti korjataan ainakin Java-koodia, ja jos käytät Pythonia, py4J-yhdyskäytävän virheitä tietotyyppisiin ongelmiin Pythonin ja suoratoistettujen dataobjektien kanssa.
Monet ihmiset voivat kirjoittaa funktioita / menetelmiä RDD-, DataFrame- ja Spark SQL -palveluja vastaan muutamassa minuutissa ja jos heillä on jonkin verran kokemusta Pythonista ja SQListä – ehkä Jopa RDD: t, DataFrame-kehykset ja SQL-dokumentaatio muutamassa päivässä – mutta kun Spark-työsi tapetaan lähetyksen, suorittajan, tehtävän tai muistivirheen vuoksi, mikään näistä ei ole väliä. Pukeudut Spark märkäpukuun ja sukellat syvälle Sparkin [Java] vatsaan.