Jei dirbate didžiųjų duomenų srityje, žinote, kad „Apache Spark“ yra praktiškai standartas, kai kalbama apie didžiulių duomenų kiekių apdorojimą žaibišku greičiu. Pasirodžius 4.2 versijai, sistema ne tik patobulėjo našumo optimizavimo srityje, bet ir žengė kokybinį šuolį prisijungimo prie klasterių srityje, todėl viskas tapo daug lankstesnė ir paprastesnė.
Galingiausias šio atnaujinimo aspektas neabejotinai yra tai, kaip jie patobulino architektūrą, kad mums nereikėtų visos vykdymo aplinkos nešiotis savo vietiniame kompiuteryje. Dabar, dėka daug brandesnės kliento-serverio architektūros, galime paleisti sudėtingus procesus iš bet kurios vietos, nesugebant užstrigti kompiuteriui, deleguodami sunkų darbą serveriui ir gaudami jau apdorotus rezultatus.
Techniniai reikalavimai ir suderinamumas su aplinka
Norint paleisti „Spark 4.2“, būtina suprasti, kad „Java“ palaikymas yra labai svarbus. Ši versija suderinama su „Java 17“, „21“ ir iki 25 versijų , tačiau atkreipkite dėmesį, kad „Java 25“ versijos, atėjusios prieš 25.0.3, jau laikomos pasenusiomis. Kalbant apie programavimo kalbą, standartas dabar yra „Scala 2.13“ , galutinai paliekant 2.12 versiją, todėl jei turite senesnių projektų, turėsite juos perkelti.
Tiems, kurie teikia pirmenybę „Python“, reikalinga 3.10 ar naujesnė versija , o R palaikoma nuo 4.0 versijos, nors verta paminėti, kad R naudojimas artėja prie nebenaudojimo etapo. Operacinė sistema nesvarbi, nes „Spark“ sklandžiai veikia tiek „Windows“, tiek UNIX tipo sistemose (pvz., debesijos „Linux“ ar „macOS“), jei teisingai sukonfigūruotas JAVA_HOME kintamasis arba PATH.
Diegimo ir diegimo parinktys
Atsisiuntę „Spark“, turite keletą parinkčių, priklausomai nuo jūsų infrastruktūros. Dažniausiai atsisiunčiami iš anksto sukonfigūruoti „Hadoop“ paketai , nes „Spark“ naudoja savo klientų bibliotekas HDFS ir YARN valdymui. Tačiau jei turite labai specifinę konfigūraciją, galite pasirinkti „Hadoop free“ dvejetainį failą ir patys konfigūruoti klasės kelią.
Jei esate kūrėjas, viskas paprasčiau: „Java“ ir „Scala“ naudotojai gali integruoti sistemą naudodami „Maven“ koordinates , o „Python“ naudotojai gali ją įdiegti tiesiai iš „PyPI“ . Nuotykių ištroškusiems, norintiems modifikuoti pagrindinę sistemą, taip pat yra galimybė kompiliuoti „Spark“ tiesiai iš šaltinio kodo.
„Spark Connect“ revoliucija
Štai čia ir prasideda įdomumas. „Spark Connect“ – tai architektūra, kuri laužo tradicinį modelį, kai klientas ir serveris buvo neatsiejami. Dabar klientas yra lengvas sluoksnis, kuris sukuria loginį užklausų planą ir siunčia jį per gRPC ir „Arrow“ į nuotolinį serverį. Šis serveris yra atsakingas už plano analizę, optimizavimą naudojant „Catalyst“ ir vykdymą klasteryje.
Geriausia šios sistemos ypatybė yra ta, kad klientui nebereikia įdiegti visos „Spark“ infrastruktūros ar sudėtingos vietinės JVM. Tai leidžia mums integruoti „Spark“ į nešiojamuosius kompiuterius, IDE, žiniatinklio paslaugas ar net dirbtinio intelekto agentus , nereikalaujant, kad vietinė „Python“ versija griežtai atitiktų klasterio versiją. Rezultatai klientui grąžinami „Arrow“ paketais , todėl duomenų perdavimas yra neįtikėtinai greitas.
Programos vykdymas ir interaktyvus režimas
Tiems, kurie nori pradėti eksperimentuoti, „Spark“ kataloge yra pavyzdžių serija. examples/src/mainNorėdami interaktyviai paleisti „Python“ programas, naudokite komandą bin/pyspark Tai pagrindinė priemonė. Jei jums labiau patinka „Scala“ arba „Java“, galite naudoti bin/run-example <clase>, kuris viduje paleidžia scenarijų kibirkštinio pateikimo , kad paleistumėte programą.
Taip pat yra galimybė naudoti modifikuotą „Scala“ apvalkalą, kuris idealiai tinka norint sužinoti, kaip sistema veikia viduje. Svarbi detalė yra šios parinkties naudojimas. --masterJei atliekate bandymus, geriausia naudoti vietinis vienam siūlui arba vietinis išnaudoti kelis procesoriaus branduolius prieš pereinant prie paskirstytos aplinkos.
Suderinamumo ir ekosistemos patobulinimai
4.2 versijoje nepamiršta ir „Spark Classic“. Daug darbo atlikta siekiant panaikinti suderinamumo spragą, pagerinant palaikymą RDD API ir leidžiant tai spark.read.* Jis priima „DataFrame“ kaip įvestį. Be to, optimizuotas klaidų sklaidymas, būsenos ataskaitų teikimas ir kitos funkcijos. YARN klasterio režimo palaikymas.
Kalbant apie platinimą, svarbu patikrinti, ar „Docker“ atvaizduose gali būti ne ASF programinės įrangos, todėl patartina peržiūrėti jų „Docker“ failus. Jei dėl stabilumo reikia grįžti prie ankstesnių versijų, yra prieinami išleidimo failai , nors visada rekomenduojama patikrinti saugos puslapį, kad išvengtumėte žinomų pažeidžiamumų.
Ši nauja versija įtvirtina „Spark“ kaip itin universalų įrankį, kuris, atsiejus klientą ir serverį, palengvina didelių duomenų apdorojimo demokratizavimą. Atnaujintas „Java“ ir „Scala“ palaikymas bei daug sklandesnė integracija su šiuolaikinėmis kūrimo aplinkomis tampa logišku pasirinkimu bet kokiai keičiamo mastelio duomenų analitikai, siekiančiai efektyvumo ir paprastumo diegiant.





