Demizificējoša sadalīšana Sparkā



Šajā emuārā ir sniegts viss, kas jums jāzina par sadalīšanu programmā Spark, nodalījumu tipiem un to, kā tas uzlabo galvenās transformācijas izpildes ātrumu.

Piedalās Prithviraj Bose

Dzirksteles Elastīgas izplatītās datu kopas (programmēšanas abstrakcija) tiek vērtēti slinki un transformācijas tiek saglabātas kā virzīti acikliskie grafiki (DAG). Tātad katra darbība ar RDD liks Sparkam pārrēķināt DAG. Šādi Sparkā tiek panākta elastība, jo, ja kāds darba ņēmēja mezgls neizdodas, DAG vienkārši jāpārrēķina.





Tas ir arī obligāti kešatmiņā (saglabājas ar atbilstošu uzglabāšanas līmeni) RDD tā, ka biežas darbības ar RDD nespiež Spark pārrēķināt DAG.Šajā emuārā apskatītās tēmas būtībā ir nepieciešamas Apache Spark un Scala sertifikācijai. Šajā emuārā apskatītās tēmas būtībā ir nepieciešamas .

Kāpēc izmantot sadalītāju?

Klasteru skaitļošanas jomā galvenais uzdevums ir samazināt tīkla trafiku. Ja dati ir orientēti uz atslēgas vērtību, sadalīšana kļūst obligāta, jo turpmākajām RDD transformācijām ir diezgan daudz datu sajaukšanas visā tīklā. Ja līdzīgi taustiņi vai atslēgu diapazons tiek glabāti vienā nodalījumā, sajaukšana tiek samazināta līdz minimumam un apstrāde kļūst ievērojami ātra.



Transformācijas, kuru veikšanai nepieciešami datu sajaukšana starp darba ņēmēju mezgliem, ir ļoti noderīgi no sadalīšanas. Tādas pārvērtības ir cogroup, groupWith, join, leftOuterJoin, rightOuterJoin, groupByKey, reducByKey, combByKey un uzmeklēšana .

Starpsienas ir konfigurējamas, ja RDD ir balstīta uz atslēgas vērtību.

Partition īpašības

  1. Vienā nodalījumā esošie komplekti tiek garantēti vienā mašīnā.
  2. Katrs klastera mezgls var saturēt vairāk nekā vienu nodalījumu.
  3. Kopējais nodalījumu skaits ir konfigurējams, pēc noklusējuma tas tiek iestatīts uz visu izpildītāju mezglu kopējo serdeņu skaitu.

Sadalīšanas veidi Spark

Spark atbalsta divu veidu nodalījumus,

  • Hash sadalīšana : Izmanto Java Object.hashCode metodi nodalījuma noteikšanai kā partition = key.hashCode ()% numPartitions.

hash-partitioning-demystifying-partitioning-in-spark



  • Diapazona sadalīšana : Izmanto diapazonu, lai attiecīgajiem nodalījumiem izplatītu atslēgas, kas ietilpst diapazonā. Šī metode ir piemērota, ja taustiņos notiek dabiska secība un taustiņi nav negatīvi. Zemāk esošajā koda fragmentā parādīts diapazona sadalītāja lietojums.

kas ir java

Kodu piemērs

Apskatīsim piemēru, kā sadalīt datus starp darbinieku mezgliem. Pilns Scala kods ir pieejams šeit .

Šeit ir daži 12 koordinātu (kā kopu) testa dati,

Izveidojiet org.apache.spark.HashPartitioner lieluma 2, kur atslēgas tiks sadalītas pa abiem šiem nodalījumiem, pamatojoties uz atslēgu jaukšanas kodu.

ir maģistra grāds

Tad mēs varam pārbaudīt pārus un veikt dažādas galvenās transformācijas, piemēram, reizesByKey un reducByKey.

Apkopojot, sadalīšana ievērojami uzlabo galvenās transformācijas izpildes ātrumu.

Vai mums ir jautājums? Lūdzu, pieminējiet to komentāru sadaļā, un mēs ar jums sazināsimies.

Saistītās ziņas:

Kāpēc jums vajadzētu iemācīties dzirksti pēc Hadoop apgūšanas

Apache Spark Vs Hadoop MapReduce