Cieľom Spark 2.0 je urobiť zo streamovania prvotriedneho občana

  • Sep 26, 2023

S vydaním 2.0 vstúpil výpočtový engine Apache Spark s otvoreným zdrojom do dospievania. Konsolidoval niekoľko API v mene zjednodušenia a pridal niekoľko na podporu rozšíriteľnosti a zlepšenia výkonu. A tým, že naruší bariéru medzi real-time a dávkovým, môže pretlačiť streamovanie do jadra analytických aplikácií.

Spark vyvolal obrovské vzrušenie v komunite veľkých dát. Poskytol cestu na vytvorenie rýchlostnej alebo rýchlostnej vrstvy reality veľkých dát, zjednodušil niektoré výhody MapReducea rozšírila paletu výpočtov nad rámec MapReduce, a to všetko prostredníctvom súboru bežných rozhraní. Zostávajú však problémy so správou pamäte, koordináciou s YARN a nastavením rovnakých podmienok pre vývojárov R a Python. S novým vydaním Spark vyrovnáva Lambda architektúra, pridáva niekoľko vylepšení pre používanie R a zvyšuje výkon. Áno, Spark vstupuje do puberty.

Spark 2.0, ohlásený minulý týždeň po niekoľkých mesiacoch technických ukážok, priniesol niekoľko prekvapení. Ale vrchol bol nový Štruktúrované streamovanie

API, ktoré prináša interaktívny SQL dotaz do knižnice Spark Streaming v reálnom čase. Tiež spája Spark Streaming užšie so zvyškom Spark tým, že sa tiež integruje s čoskoro nahradeným MLlib.

Takto by štruktúrované streamovanie mohlo prelomiť bariéru medzi spracovaním v reálnom čase a dávkovým spracovaním. To je čo Databricks podmienky nepretržité aplikácie, kde sa spracovanie v reálnom čase používa na nepretržitú aktualizáciu tabuliek, na ktoré sa dopytuje, alebo na pridávanie rozšírení v reálnom čase do dávkových úloh. Structured Streaming v skutočnosti s jediným API vyrovnáva architektúru Lambda, ktorá bola pôvodne postavená na predpoklade, že dávkové spracovanie a spracovanie v reálnom čase musia byť oddelené. Pôvodný Sparkov príspevok k Lambde bol, že ste mohli použiť rovnaké API pre dávkové a "rýchlosť" (v reálnom čase) výpočtové "vrstvy"; so štruktúrovaným streamovaním ich môžete zjednotiť v rovnakom procese. Nie že by sa to nikdy predtým nerobilo, ale predtým ste potrebovali proprietárne komplexné spracovanie udalostí (CEP) motorov, aby sa to podarilo.

Pozri tiež

Hadoop a Spark: Príbeh dvoch miest

Je ľahké nadchnúť sa idealizmom okolo novej lesklej veci. Ale uveďme niečo na pravú mieru: Spark nenahradí Hadoop.

Čítajte teraz

Hoci nie je súčasťou vydania 2.0, veríme, že štruktúrované streamovanie je tiež prvým krokom k pridaniu skutočného streaming (schopnosť spracovať jednu udalosť naraz) na Spark Streaming (ktorý momentálne funguje iba mikrobatching). Ako API vyššej úrovne abstrahuje logiku zo základného procesora, čo poskytuje flexibilitu pri zmene alebo úprave architektúry tohto motora. Zostaňte naladení.

Zatiaľ čo štruktúrované streamovanie pridáva nové API, konvergencia DataFrames a Množiny údajov zníži neporiadok API vo verzii 2.0. DataFrames, vytvorené z podobných konštrukcií dostupných pre programátorov R a Python, a umožňujú manipuláciu s údajmi ako s databázou. Na druhej strane, množiny údajov rozšírili rovnaké rozhranie API na údaje reprezentované ako objekty Java. Keďže obe boli napísané z rovnakého API, bolo logické ich zlúčiť so Sparkom 2.0 a poskytnúť tak jediné API s výberom tabuľkových alebo objektových plôch. Zatiaľ čo pôvodné konštrukcie RDD Spark majú stále výkonnostnú výhodu oproti DataSets, nie je pochýb o tom, že projekt Spark bude pokračovať vo vylepšovaní DataSets, aby sa medzera zmenšila.

A s prevahou množín údajov bude zjednodušený spôsob vytvárania programov strojového učenia (ML), Spark. ML. Nová knižnica poskytuje šablóny na vytváranie a reprezentáciu programov ML ako viackrokové kanály, takže ich vývojári nemusia ručne kódovať. A tieto ML potrubia je možné uložiť a načítať na opätovné použitie. Postupom času Spark. ML nahradí MLlib ako primárne ML API Spark. Pre toto vydanie Spark pridal podporu pre spúšťanie užívateľom definovaných funkcií a distribuovaných algoritmov (napr. zovšeobecnené lineárne modely) v R.

Pretože Spark je najlepšie známy svojou vhodnosťou na vykonávanie programov strojového učenia, nemalo by byť prekvapujúce, že ML sa stalo hotspotom pre konkurenciu. napr. R a Python majú svoje vlastné balíčky strojového učenia, ktoré natívne pracujú s týmito jazykmi. A rovnako aj ľudia na H2O, ktoré tvrdia, že majú výkonnejšie algoritmy. Potom je tu Google TensorFlow, ktorý je zatiaľ zameraný na hlboké učenie sa problémov ML; a áno, existuje spôsob, ako to spustiť na Spark.

Spark 2.0 tiež poskytuje náhľad nových technológií. Zahŕňajú Volfrám, projekt na nahradenie 20-ročného JVM kompilátorom, ktorý sľubuje vylepšenie výkonu. Hlavnou myšlienkou je, že zatiaľ čo artefakty údajov Spark - RDD a konvergované množiny údajov - zrýchlili prístup k údajom, JVM (so svojou réžiou na zber odpadu) brzdil výpočet. V Spark 2.0 je Tungsten podporovaný pre ukladanie do vyrovnávacej pamäte a spúšťanie.

Spark 2.0 teda vylepšuje niektoré existujúce funkcie a otvára nové smery, ktoré sa odchyľujú od jeho pôvodu s ostatnými. Okrem rozšírených množín údajov, ktoré stavajú na už existujúcich rozhraniach API, väčšina nových funkcií, ako napríklad Structured Streaming a Spark. ML, sú stále technológie v alfa-fáze - takže očakávame, že sa otrasy skôr, ako začnú vyrábať, budú približne o šesť až 12 mesiacov. Rastie záujem o motor Spark, ale konkurencia pre jeho rampy Microsoft, Continuum Analytics, a H2O ponúkajú svoje vlastné rampy R, ktoré zachovávajú možnosť nasadenia nových motorov, možno, len možno, môžu byť jedného dňa viac sexi.

Pozri tiež

Najväčší problém veľkých dát: Je príliš ťažké dostať dáta

Aj keď sa veľké dáta zmenili skôr na marketingový termín ako na technológiu, stále majú obrovský nevyužitý potenciál. Najprv však treba vyriešiť jeden veľký problém.

Čítajte teraz