Kombûna encamên Spark Ew pêvajoyek e bingehîn di analîzkirin û hilanîna mîqdarên mezin ên daneyan de. Spark, çarçoweya pêvajoyek belavkirî ya populer, gelek vebijarkan pêşkêşî dike ku hûn encamên operasyonên ku li hawîrdora we têne kirin tevbigerin û hev bikin. Di vê gotarê de, em ê teknîk û rêbazên cihêreng ên ku Spark peyda dike ji bo berhevkirina encaman lêkolîn bikin bi bandor. Ji berhevkirina RDD-an bigire heya karanîna operasyonên berhevkirinê, hûn ê fêr bibin ka meriv çawa ji kapasîteyên ku Spark pêşkêşî dike ji bo encamên bilez û rast herî zêde bikar tîne. di projeyên te de ji Daneyên Mezin.
Kombûna RDDs Ew yek ji awayên herî bingehîn û hevpar e ku meriv encamên di Spark de berhev dike. RDD (Daneyên Belavkirî Resilient) di Spark de strukturên daneya bingehîn in, û destûrê didin operasyonên belavkirî û paralel. bi bandor. Bi berhevkirina du an zêdetir RDD-an, operasyonên wekî yekbûn, hevberdan, an cûdahî dikarin di navbera komikên daneyê de bêne kirin, bi vî rengî nermbûnek mezin peyda dike ku encamên operasyonên ku li Spark têne kirin manîpulekirin û berhevkirin.
Rêyek din a berhevkirina encamên di Spark de bi operasyonên komkirinê ye. Van operasyonan dihêle ku gelek encam di yek de werin berhev kirin, bi karanîna fonksiyonên berhevkirinê yên wekî berhevok, navîn, herî zêde an hindiktirîn. Bi karanîna van operasyonan, gengaz e ku meriv encamên yekgirtî û kurtkirî ji mîqdarên mezin ên daneyê di yek gavê de bi dest bixe, ku bi taybetî di senaryoyên ku tê de hewce ye ku metrîk an statîstîkek li ser komek daneyê were hesibandin bikêr be.
Ji bilî operasyonên komkirin û yekgirtinê RDD, Spark di heman demê de ji bo berhevkirina encaman teknîkên din jî pêşkêşî dike, wekî karanîna guhêrbarên berhevkirinê û karanîna fonksiyonên kêmkirinê. Guherbarên berhevkirinê dihêle hûn encamên berhev bikin rêbazek bi bandor li yek cîhek, nemaze gava ku hûn dixwazin di navbera karên cûda de agahdarî parve bikin. Ji hêla din ve, fonksiyonên kêmkirinê dihêle ku gelek encam di encamek yekane de bi sepandina operasyonek diyarkirî ya bikarhêner ve bêne hev kirin. Van teknîkan nermbûn û kontrolek mezintir peyda dikin ka encam çawa di Spark de têne hev kirin.
Bi kurtasî, berhevkirina ji encamên di Spark de Ji bo manîpulekirin û analîzkirina cildên mezin daneyan pêvajoyek bingehîn e. rêbazek bi bandor. Spark teknîk û rêbazên cihêreng pêşkêşî dike ku encaman berhev bike, wek mînak berhevkirina RDD, operasyonên komkirinê, karanîna guhêrbarên berhevkirinê, û fonksiyonên kêmkirinê. Bi karanîna tam ji van amûran, pêşdebir û vekoler dikarin di projeyên pêşkeftina xwe de encamên rast û bilez bistînin. Daneyên Mezin. Di beşên jêrîn de, em ê her yek ji van teknîkan bi hûrgulî vekolin û mînakên pratîkî pêşkêş bikin da ku çêtir fam bikin ka encam di Spark de çawa têne hev kirin.
1. Tevlî Algorîtmayan bibin Di Spark de hene
Spark çarçoveyek komputerê ya belavkirî ye ku cûrbecûr algorîtmayên hevberdanê pêşkêşî dike da ku encamên operasyonên paralel berhev bike. Van algorîtmayan têne sêwirandin ku di hawîrdorên daneya mezin de karîgerî û pîvandinê xweştir bikin. Li jêr hin ji algorîtmayên tevlêbûnê yên ku herî zêde têne bikar anîn li Spark hene:
- Bihevkelyan: Ev algorîtma du komikên daneya birêkûpêk di nav komek yek rêzkirî de berhev dike. Ew nêzîkatiyek dabeşkirin û biserketinê bikar tîne da ku daneyan bi bandor li hev bike û operasyonek hevgirtinê ya bêkêmasî misoger bike.
- Bihevgirêdan: Algorîtmaya tevlêbûnê du komên daneyan li ser bingeha mifteyek hevpar bihev dike. Ew teknîkên wekî dabeşkirin û dabeşkirina daneyan bikar tîne da ku pêvajoya hevgirtinê xweşbîn bike. Ev algorîtma di operasyonên tevlêbûna tabloyê de pir bikêr e Pirsên SQL.
- GroupByKey: Ev algorîtma nirxên ku bi her mifteyê ve girêdayî ne di nav komek daneyan de kom dike. Ew bi taybetî bikêr e dema ku hûn hewce ne ku li ser bingeha kilîtek diyarkirî operasyonên berhevkirinê, wek zêdekirin an navgînkirin, bikin.
Van algorîtmayên tevlêbûnê tenê nimûneyek vebijarkên ku li Spark hene hene. Her yek feydeyên bêhempa pêşkêşî dike û li gorî daxwazên taybetî yên serîlêdanê dikare di senaryoyên cihêreng de were bikar anîn. Girîng e ku meriv van algorîtmayan fêm bike û bi tevahî sûd werbigire da ku di projeyên Spark de performansa çêtirîn û pîvandinê peyda bike.
2. Rêbazên berhevdana daneyan di Spark de
Hene. pircar ku dihêle ku daneyên cihêreng bi bandor werin girêdan. Yek ji rêbazên herî gelemperî ye rêbaza tevlêbûnê, ku dihêle ku du an bêtir daneyên daneyan bi karanîna mifteyek hevpar werin hevber kirin. Ev rêbaz bi taybetî bikêr e dema ku hûn dixwazin daneyan li ser bingeha taybetmendiyek taybetî, wek nasnameyek yekta, têkildar bikin. Spark celebên tevlêbûnê pêşkêşî dike, wekî tevlêbûna hundurîn, tevlêbûna çepê, tevlêbûna rastê û tevlêbûna tevahî ya derveyî, da ku li gorî senaryoyên cihêreng biguncîne.
Rêbazek din a berhevkirina daneyan di Spark de ye rêbaza kombûnê. Ev rêbaz dihêle ku daneya bi lêzêdekirina nirxan li ser bingeha mifteyek hevpar were berhev kirin. Ew bi taybetî bikêr e dema ku hûn dixwazin encamên berhevkirî bi dest bixin, wek hesabkirina berhevok, navîn, hindiktirîn an herî zêde ya taybetmendiyek diyarkirî. Spark cûrbecûr fonksiyonên berhevkirinê pêşkêşî dike, wek sum, count, avg, min û max, ku wê hêsan dike. ev pêvajo.
Ji bilî rêbazên navborî, Spark jî pêşkêşî dike operasyonên cross, ku destûrê dide ku du komên daneyan bêyî mifteyek hevpar werin berhev kirin. Van operasyonan di navbera hêmanên her du koman de hemî berhevokên gengaz diafirînin û dikarin di rewşên wekî nifşê de bikêr bin. ji berhemekê Cartesian an afirandina daneyek ji bo ceribandina berfireh. Lêbelê, ji ber hêza hesabkerî ya pêdivî ye, ev operasyon dikarin di warê dem û çavkaniyan de lêçûn bin.
3. Faktorên ku divê gava ku encaman di Sparkê de berhev dikin bihesibînin
Pêvajoya belavkirina Spark
Yek ji avantajên herî berbiçav ên Spark jêhatîbûna wê ye ku jimarên mezin ên daneyê bi rengek belavkirî bişopîne. Ev ji ber motora pêvajoya nav-bîrê û jêhatîbûna wê ya dabeşkirin û belavkirina peywiran di nav komên girêkan de ye, dema ku encaman li Sparkê bi hev ve girêdide, girîng e ku meriv vê faktorê li ber çav bigire. Girîng e ku bi karîgerî peywiran di navbera girêkan de belav bikin û herî zêde çavkaniyên berdest bikar bînin.
Veşartina daneyan û berdewamî
Bikaranîna girtin û berdewamiya daneyan Faktorek din a sereke ye ku meriv dema ku encaman di Spark de berhev dike were hesibandin. Gava ku karek tê kirin, Spark encamê di bîr an jî dîskê de hilîne, li gorî ka ew çawa hatî mîheng kirin. Bi karanîna caching an berdewamiya guncan, gengaz e ku daneyan li cîhek gihîştî ji bo pirs û hesabên pêşerojê hilîne, bi vî rengî ji nûve hesabkirina encaman dûr dikeve. Dema ku gelek encamên di Sparkê de berhev dike ev dikare bi girîngî performansê baştir bike.
Hilbijartina algorîtmaya rast
Hilbijartina algorîtmaya rast di heman demê de dema ku encaman di Spark de berhev dike faktorek girîng e. Mînakî, heke hûn dixwazin a komkirin o bisinifkirinî ji daneyan, hûn dikarin algorîtmayên guncan hilbijêrin, wek K-means an Regression Logistic, bi rêzê. Bi hilbijartina algorîtmaya rast re, gengaz e ku meriv dema pêvajoyê kêm bike û encamên rasttir di Spark de bi dest bixe.
4. Stratejiyên berhevdana daneya bi bandor li Spark
Spark pergalek danûstendina daneyê ye ku ji ber kapasîteya wê ya hilgirtina jimarên mezin ên daneyê bi bandor tê bikar anîn. Yek ji taybetmendiyên sereke yên Spark jêhatîbûna wê ye ku daneyan bi rengek bikêr berhev bike, ku di gelek rewşên karanîna de pêdivî ye. Gelek hene ku dikare li gorî hewcedariyên projeyê were bikar anîn.
Yek ji stratejiyên herî gelemperî ji bo berhevkirina daneyan di Spark de ye bihevgirêdan, ku dihêle hûn du an bêtir daneyên daneyan li ser bingeha stûnek hevbeş bi hev re bikin. Tevlîbûn dikare çend celeb be, di nav de tevlêbûna hundurîn, tevlêbûna derveyî, û tevlêbûna çepê an rastê sitendin.
Stratejiyek din a bikêr a ji bo berhevkirina daneyan li Spark ev e ji nû ve dabeşkirin. Dabeşkirin pêvajoyek ji nû ve dabeşkirina daneyan li seranserê koma Spark-ê li ser bingeha stûnek sereke an komek stûnan e. Dema ku hûn dixwazin daneyan bi rengek bikêrtir bi karanîna operasyonek tevlêbûnê paşê bikar bînin ev dikare kêrhatî be. Dabeşkirin dikare bi karanîna fonksiyonê were kirin belavkirinî li Spark.
5. Fikrên performansê dema ku encamên di Sparkê de berhev dikin
Dema ku encamên di Spark de berhev dikin, girîng e ku meriv hin ramanên performansê li ber çavan bigire. Ev piştrast dike ku pêvajoya yekbûnê bikêr e û bandorê li ser dema pêkanîna serîlêdanê nake. Li vir çend pêşniyar hene ku dema ku encamên di Spark de berhev dikin performansê xweş bikin:
1. Ji operasyonên tevlihevkirinê dûr bixin: Operasyonên Shuffle, wek groupByKey yan jî kêmkirinaByKey, dikare di warê performansê de biha be, ji ber ku ew veguheztina daneyan di navbera girêkên komê de vedigirin. Ji bo ku ji vê yekê dûr nekevin, tê pêşniyar kirin ku karûbarên berhevkirinê yên mîna bikar bînin kêmkirinaByKey o groupBy li şûna wê, ji ber ku ew tevgera daneyê kêm dikin.
2. Cacheya daneya navîn bikar bînin: Dema ku encamên di Spark de têne berhev kirin, daneyên navîn ên ku di gelek operasyonan de têne bikar anîn têne çêkirin. Ji bo baştirkirina performansê, tê pêşniyar kirin ku fonksiyonê bikar bînin cache () o li sersekinîn() ji bo tomarkirina vê daneya navberê di bîranînê de. Ev ji neçarî ji nû ve hesibandina wan her gava ku ew di operasyonek paşîn de têne bikar anîn dûr dixe.
3. Ji paralelbûnê sûd werbigirin: Spark bi kapasîteyên xwe yên pêvajoyek paralel tê zanîn, ku destûrê dide peywiran ku li ser gelek girêkên di komê de paralel werin meşandin. Dema ku encaman berhev dikin, girîng e ku meriv ji vê kapasîteya paralelbûnê sûd werbigire. Ji bo kirina vê yekê, tê pêşniyar kirin ku karûbarên mîna bikar bînin mapPartitions o flatMap, ku dihêle ku di her dabeşkirina RDD-ê de bi paralelî bêne hilberandin.
6. Optimîzasyona encamên berhevkirina di Spark de
Ev aliyek sereke ye ku ji bo çêtirkirina performans û karbidestiya serîlêdanên me. Di Spark de, dema ku em karûbarên wekî fîlter, nexşe, an berhevokan pêk tînin, encamên navîn berî ku werin berhev kirin di bîranînê de an li ser dîskê têne hilanîn. Lêbelê, li gorî veavakirin û mezinahiya daneyê ve girêdayî, ev berhevok dikare di warê dem û çavkaniyan de biha be.
Ji bo xweşbînkirina vê tevliheviyê, Spark teknîkên cihêreng ên wekî dabeşkirina daneyê û darvekirina paralel bikar tîne. Dabeşkirina daneyan ji dabeşkirina daneyan li perçeyên piçûktir û belavkirina wan li ser girêkên cihêreng pêk tê da ku herî zêde çavkaniyên berdest bikar bînin. Ev dihêle ku her nodek perçeya daneya xwe serbixwe û bi paralelî pêvajoyê bike, bi vî rengî dema darvekirinê kêm dike.
Aliyek din a girîng jî ew e îdamkirina paralel, ku Spark operasyonan di nav karên cûda de dabeş dike û wan bi hevdemî li ser girêkên cûda pêk tîne. Ev destûrê dide karanîna bikêrhatî ya çavkaniyên pêvajoyê û berhevkirina encaman zûtir dike. Wekî din, Spark xwedan şiyana e ku bixweber li gorî mezinahiya daneyê û kapasîteya girêkê hejmara karan rast bike, bi vî rengî hevsengiyek çêtirîn di navbera performans û karîgeriyê de peyda dike. Van teknîkên xweşbîniyê bi girîngî baştirkirina dema bersivê ya serîlêdanên me yên li Sparkê dike.
7. Pêşniyarên ku dema ku encamên di Sparkê de berhev dikin ji pevçûnan dûr bikevin
:
1. Rêbazên guncan ên berhevdanê bikar bînin: Dema ku encaman di Spark de berhev dikin, girîng e ku meriv rêbazên guncan bikar bîne da ku ji pevçûnan dûr nekevin û encamên rast bistînin. Spark rêbazên tevlîbûnê yên cihêreng peyda dike, wekî tevlîbûn, yekbûn, yekbûn, di nav yên din de. Pêdivî ye ku cudahiyên di navbera her rêbazê de fêm bikin û ji bo peywira di dest de ya herî guncaw hilbijêrin. Wekî din, tê pêşniyar kirin ku hûn bi parametre û vebijarkên ku ji bo her rêbazê peyda dibin nas bikin, ji ber ku ew dikarin li ser performans û rastbûna encaman bandor bikin.
2. Paqijkirina daneya berfireh pêk bînin: Berî berhevkirina encaman di Spark de, pêdivî ye ku paqijkirina daneyan bi tevahî were kirin. Ev yek ji holê rakirina nirx, dubare, û derveyî, û her weha çareserkirina nakokî û nakokiyan pêk tîne. Paqijkirina daneya rast yekitî û domdariya encamên hevgirtî misoger dike. Wekî din, divê kontrolên kalîteya daneyê bêne kirin da ku xeletiyên potansiyel nas bikin berî ku hevgirtin pêk were.
3. Dabeşkirina guncan hilbijêrin: Dabeşkirina daneyan li Spark bandorek girîng li ser performansa operasyonên tevlêbûnê dike. Tête pêşniyar kirin ku berî berhevkirina encaman dabeşkirina daneyan xweşbîn bikin, berhevokên daneyan bi yekdengî û hevseng dabeş bikin da ku karbidestiyê zêde bikin. Spark vebijarkên dabeşkirinê yên cûrbecûr pêşkêşî dike, yên wekî ji nû ve dabeşkirin û dabeşkirinBy, ku dikarin ji bo belavkirina daneyan bi çêtirîn bikar bînin. Bi hilbijartina dabeşa rast, hûn ji kêşan dûr dikevin û performansa giştî ya pêvajoya hevgirtinê baştir dikin.
Ez Sebastián Vidal im, endezyarek komputerê ku ji teknolojiyê û DIY-ê dilşewat e. Wekî din, ez afirînerê wê me tecnobits.com, ku ez dersan parve dikim da ku teknolojiyê ji her kesî re bigihînim û têgihîştî bikim.