Demarkifitseeriv jaotamine Sparkis



See ajaveeb ütleb teile kõik, mida peate teadma Sparkis jaotamise, partitsioonitüüpide ja selle kohta, kuidas see võtmepõhiste teisenduste puhul kiirendab.

Kaastööd tegi Prithviraj Bose

Säde Elastsed hajutatud andmekogumid (programmeerimise abstraktsioon) hinnatakse laisalt ja teisendused salvestatakse suunatud atsükliliste graafidena (DAG). Nii et iga tegevus RDD-s paneb Sparki DAG-i ümber arvutama. Nii saavutatakse Sparkis elastsus, sest kui mõni töölisesõlm ebaõnnestub, tuleb DAG lihtsalt ümber arvutada.





See on ka vahemällu salvestamine on kohustuslik (püsib sobiva salvestusastmega) RDD selline, et sagedased toimingud RDD-l ei sunni Sparki DAG-i ümber arvutama.Selles ajaveebis käsitletud teemad on sisuliselt vajalikud Apache Sparki ja Scala sertifikaadi saamiseks. Selles blogis käsitletud teemad on sisuliselt vajalikud .

Miks kasutada jaoturit?

Klastrite arvutamisel on keskne väljakutse võrguliikluse minimeerimine. Kui andmed on põhiväärtusele orienteeritud, muutub jaotamine hädavajalikuks, kuna RDD hilisemate teisenduste jaoks on kogu võrgus piisavalt palju andmeid. Kui samas partitsioonis hoitakse sarnaseid võtmeid või võtmevahemikku, minimeeritakse segamine ja töötlemine muutub oluliselt kiireks.



Teisendused, mis nõuavad andmete segamist töötajate sõlmedes, saavad partitsiooni saamisest palju kasu. Sellised teisendused on cogroup, groupWith, join, leftOuterJoin, rightOuterJoin, groupByKey, reducByKey, combByKey ja Vaata üles .

erinevus meetodi ülekoormamise ja Java-s ülekandmise vahel
Partitsioonid on konfigureeritavad, kui RDD põhineb võtmeväärtusel.

Partitsiooni omadused

  1. Samas partitsioonis olevad koondised on garanteeritud samas masinas.
  2. Iga klastri sõlm võib sisaldada rohkem kui ühte sektsiooni.
  3. Partitsioonide koguarv on konfigureeritav, vaikimisi on see seatud kõigi täiturite sõlmede kogu südamike arvuks.

Sparkis jaotamise tüübid

Spark toetab kahte tüüpi jaotusi,

  • Räsi jaotamine : Kasutab Java-d Object.hashCode meetod partitsiooni määramiseks partitsioon = key.hashCode ()% numPartitions.

hash-partitioning-demystifying-partitioning-in-spark



  • Vahemiku jaotamine : Kasutab vahemikku, et levitada vahemikku jäävad võtmed vastavatele partitsioonidele. See meetod sobib, kui võtmetes on loomulik järjestus ja klahvid pole negatiivsed. Allpool olev koodilõik näitab vahemälu partitsiooni kasutamist.

Koodinäide

Vaatame näidet selle kohta, kuidas andmeid töötajate sõlmede vahel jaotada. Scala täielik kood on saadaval siin .

Siin on mõned testkoordinaadid 12 koordinaadist (ühikutena),

Looge org.apache.spark.HashPartitioner suurusega 2, kus võtmed jaotatakse nende kahe sektsiooni vahel võtmete räsikoodi põhjal.

Siis saame paari kontrollida ja teha mitmesuguseid võtmepõhiseid teisendusi foldByKey ja reducByKey.

Kokkuvõtlikult võib öelda, et jaotamine suurendab võtmepõhiste teisenduste täitmise kiirust oluliselt.

Kas teil on meile küsimus? Palun mainige seda kommentaaride jaotises ja võtame teiega ühendust.

mis on java semafor

Seonduvad postitused:

Miks peaksite pärast Hadoopi valdamist sädemeid õppima?

Apache Spark Vs Hadoop Map Reduce