Kehittäjä | Apache-ohjelmistosäätiö |
---|---|
Ensimmäinen versio | 30. toukokuuta 2014 |
Viimeinen versio | 3.1.0 (5. tammikuuta 2021) |
Tallettaa | github.com/apache/spark |
Kirjoitettu | Scala , Java , Python , R , SQL ( d ) ja Java-tietokantayhteydet |
Käyttöjärjestelmä | Microsoft Windows , Linux ja macOS |
Ympäristö | Java-virtuaalikone |
Lue muodot | JavaScript-objektimerkinnät , pilkuilla erotetut arvot , tekstitiedosto , Apache-parketti ja optimoitu rivipylväs (ORC) ( d ) |
Kirjalliset muodot | Pilkkuerotetut arvot , JavaScript-objektimerkinnät , Apache-parketti , tekstitiedosto ja optimoitu rivisarakenne ( d ) |
Tyyppi |
Puitteet koneoppimisen ohjelmiston rakenne ( d ) Cloud computing |
Lisenssi | Apache-lisenssiversio 2.0 ja BSD-lisenssi |
Verkkosivusto | spark.apache.org ja spark.apache.org |
Spark (tai Apache Spark ) on puitteet avoimen lähdekoodin ja hajautetun laskennan . Se on joukko työkaluja ja ohjelmistokomponentteja, jotka on rakennettu määritetyn arkkitehtuurin mukaisesti. Kehitetty University of California at Berkeleyn mukaan AMPLab, Spark on nykyään projekti Apache Foundation . Tämä tuote on sovelluskehys suurten tietojen käsittelyyn monimutkaisten laajamittaisten analyysien suorittamiseksi.
Vuonna 2009 Sparkin suunnitteli Matei Zaharia (vuonna) hänen tohtorinsa aikana Kalifornian yliopistossa Berkeleyssä. Alun perin sen kehitys on ratkaisu nopeuttaa Hadoop- järjestelmien käsittelyä . Kehittäjät korostavat erityisesti tuotteen nopeutta tehtävien suorittamisen suhteen MapReduceen verrattuna .
Vuonna 2013 Sparkista tuli Apache-säätiölle yksi viimeksi mainitun aktiivisimmista projekteista.
Vuonna 2014 Spark voitti Daytona GraySort -kilpailun, jonka tavoitteena on lajitella 100 teratavua dataa mahdollisimman nopeasti. Tätä ennätystä aiemmin omisti Hadoop. Tätä varten Spark käytti 206 konetta, joiden lopullinen ajoaika oli 23 minuuttia, kun taas Hadoop käytti 2100 konetta lopulliseen ajoaikaan 72 minuuttia . Sparkin teho osoitettiin olemalla 3 kertaa nopeampi ja käyttämällä noin 10 kertaa vähemmän koneita.
Sen kehittämiseen on osallistunut lukuisia osallistujia, ja he tulevat noin 200 eri yrityksestä, kuten Intel , Facebook , IBM ja Netflix . Vuodesta 2015 lähtien avustajia on ollut yli 1000.
Spark lukee tiedot klusteritasolla (palvelimien klusteri verkossa), suorittaa tarvittavat analyysitoiminnot ja kirjoittaa sitten tulokset samalla tasolla. Huolimatta siitä, että tehtävät kirjoitetaan kielillä Scala , Java ja Python , se hyödyntää parhaiten kykyjään äidinkielellään, Scalalla.
Joten missä Hadoopin MapReduce toimii vaiheittain, Spark voi työskennellä kaikkien tietojen kanssa samanaikaisesti. Joten se on jopa kymmenen kertaa nopeampi eräkäsittelyssä ja jopa sata kertaa nopeampi muistin sisäisen analyysin suorittamiseksi.
Spark suorittaa kaikki muistin sisäiset ja reaaliaikaiset data-analyysioperaatiot. Se luottaa levyihin vain silloin, kun sen muisti ei riitä. Vastaavasti Hadoopin kanssa tiedot kirjoitetaan levylle jokaisen toimenpiteen jälkeen. Tämä muistityö vähentää viivästymisaikoja hoitojen välillä, mikä selittää tämän nopeuden.
Sparkilla ei kuitenkaan ole omaa tiedostojen hallintajärjestelmää . On tarpeen toimittaa sille yksi, esimerkiksi Hadoop Distributed File System , Informix , Cassandra , OpenStack Swift tai Amazon S3 ) . On suositeltavaa käyttää sitä Hadoopin kanssa, joka on edelleen edistyneempien hallinto-, tietoturva- ja valvontatyökalujensa ansiosta paras yleinen tallennusratkaisu .
Järjestelmävirheen tai -vian sattuessa: dataobjektit tallennetaan ns. Joustaviin hajautettuihin tietojoukoihin ( RDD ), jotka ovat hajautettu tietoklusteriin, mikä mahdollistaa täydellisen tietojen palauttamisen.
RDD on kokoelma lähteestä laskettuja ja RAM-muistissa pidettyjä tietoja (niin kauan kuin kapasiteetti sallii). Yksi RDD: n eduista on sen kyky säilyttää riittävästi tietoa siitä, miten RDD-osio tuotettiin. Jos osio katoaa , se pystyy sen vuoksi laskemaan sen uudelleen.
Spark SQL antaa sinun suorittaa kyselyjä SQL- kielillä tietojen lataamiseksi ja muuntamiseksi. SQL-kieli on peräisin relaatiotietokannoista , mutta Sparkissa sitä voidaan käyttää minkä tahansa datan käsittelyyn alkuperäisestä muodosta riippumatta.
Spark Streaming tarjoaa käyttäjilleen suoratoiston. Se käyttää reaaliaikaista DStream ( discretized stream ) -dataa, ts. Jatkuvaa RDD-sarjaa.
Esimerkiksi Twitter tai Amazon Kinesis.
Spark Graph X: ää käytetään kaavioiden tietojen käsittelyyn . Kaavio X laajentaa Sparkin RDD-levyjä tuomalla käyttöön joustavan hajautetun tietojoukkokaavion , suunnatun monikaavion , jonka ominaisuudet on kiinnitetty solmuihin ja reunoihin.
Se on kone oppiminen kirjasto , ilmestyi versio 1.2 Spark, joka sisältää kaikki klassisia oppiminen algoritmit ja apuohjelmia, kuten luokittelu , regressio , klusterointi , yhteissuodatustekniikoilla ja ulottuvuus vähentäminen, plus taustalla optimointi primitiivit. Puhumme usein tiedon louhinnasta tilastollisen oppimisen avulla.
Tänään käsite big data on hyvin yleistä. Spark on suunnattu yleisölle, joka etsii tehokasta tietojen käsittelyä, joka on liian suuri tallennettavaksi yhteen tietokoneeseen. Kukin asianomaisista toimijoista etsii yhä enemmän reagointikykyä markkinoille, joten reaaliaikainen analyysi kiinnostaa.
Tapa, jolla MapReduce toimii, voi olla riittävä, jos operatiiviset ja raportointitarpeet ovat pääosin staattisia ja on mahdollista odottaa eräkäsittelyn päättymistä. Mutta Spark tuo lisäarvoa ottamalla käyttöön Spark Streaming -palvelun. Tämän työkalun avulla voidaan esimerkiksi käsitellä tehtaalla antureiden lähettämiä tai peräkkäisiä toimintoja vaativia tietoja. Näin on useimmissa koneoppimisalgoritmeissa, joiden on suoritettava useita toimintoja. Esimerkiksi Spark sopii reaaliaikaisiin markkinointikampanjoihin, online-tuotesuosituksiin tai jopa kyberturvallisuuteen .
Spark tarjoaa oletusarvoisesti ohjelmointirajapintoja , joiden avulla sitä voidaan käyttää Scala- , Java- , Python- ja R-kielillä .
Lisäksi riippumaton EclairJS-projekti antaa sinun kirjoittaa Spark-ohjelmia JavaScriptiä .