Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web servers, web development, networking and security services. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

Plasma Map/Reduce je malo brža nego Hadoop


BLOG ON CAMLCITY.ORG: Plasma

Plasma Map/Reduce je malo brža nego Hadoop

Test performansi - Gerd Stolpmann, 2012-02-01

Prošle nedelje proveo sam neko vreme radeći na mapiranju/smanjenju poslova na Amazon EC2. Naročito uporedio sam performanse Plasma, moje sopstvene mapirane/smanjene implementacije, sa Hadoop.Hteo sam samo da znam koliko moja implementacija zaostaje za najpopularnijim mapiranim/smanjenim okvirima. Ipak, iznenađenje je da je Plasma ispala malo brža u ovom podešavanju.

Ne bih nazvao ovaj test "okosnicom". Amazon EC2 nije kontrolisano okruženje, jer samo imate parcijelne mašine, i ne znate koliko resursi drugi potrše na istim mašinama. Takođe ne možete da znate koliko je ko na mreži udaljen. Takođe, od virtuelne tehnologije dolaze i neki specijalni efekti, naročito ako je prvo pisanje diska sporije (otprilike upola n ormalne brzine) nego što su ostala pisanja. Ipak, EC2 je dobar da bi se došlo do oduševljenja brzinom, jer svi testovi mogu da imaju isti hendikep što se tiče testova.

Zadatak je da se sortira 100G podataka. Svaki red ima 100 bita, podeljenih na ključnih 8 bita, TAB karaktere, 90 nasumičnih vrednosti bita i LF karakter. Ključ je nasumično odabran od mogućih 65536 vrednosti. To znači da je imalo mnogo vrednosti sa istim ključem - scenario za koji mislim da je najtipičniji za mapirane/smanjene nego da imaju svi isti ključ. Autput je podešen na 80.

Podelio sam jedan veći 1 node (m1-xlarge) sa 4 virtualna jezgra i 15G RAM koji deluje kao kombinovano ime - zatim datanode, i 9 manjih node (m1-large) sa 2 virtualna jezgra 7.5G RAM za druge datanode. Svaki nod ima pristup ka dva viruelna diska koji su konfigurisani kao RAID-0 sterlica. Brzina konsekutivnog čitanja ili pisanja je oko 160 MB/s fza strelice (ali samo 80 MB/s za prvi napisani blok). Izgleda da node imaju mrežne kartice (maksimum transfer brzine je oko 119MB/s).

Za vreme testiranja, pratio sam aktivnosti na sistemu pomoću sar alata. Posmatrao sam ciklus (pod tim podrazumevajući da jezgro virtuelno jeste blokirano jer nema pravog slobodnog jezgra) koje dostiže vrednost 25%. Ovo se može smatrati pregrevanjem dostupnih sredstava, ali drugo objašnjenje je da hipervisorjeste sam sebi neophodan. Inače, ovaj efekat je od značaja za relevantnost ovog testa.

Kontrahent

Hadoop je glavni kod mapirane/smanjene scene. Kod testiranja verzija Cloudera 0.20.2-cdh3u2 se koristila, koja sadrži više od 1000 strana protiv vanila 0.20.2 verzije. sion. Pisan u Java, potrebno mu je JVM prolazno vreme, koje je ovde IcedTea 1.9.10 distribucija OpenJDK 1.6.0_20. Nisam nita uradio, smatrajući da će potvrda biti ok za manji posao. HDFS blok veličina je 64M, bez ponavljanja.

Kandidat jePlasma Map/Reduce.Počeo sam projekat pre par godina u svoje slobodno vreme. To nije klon Hadoop arhitekture, već uključuje mnogo novih ideja. Naročito, mnogo posla je ušlo u distributivni sistem PlasmaFS koji je karakterističan po celokupnom setu fajlova i direktno kontroliše izgled diska. Algoritam mapiranja/smanjenja je korišćen sa malo drugačijom šemom koja odlaže planiranje podatak kod većih fajlova. Plasma je implementirana u OCaml, što nije VM-based već direktno kompajlira kod dotičnog jezika. Kod vog testa, veličina bloka je 1M (Plasma je dizajnirana za manje blokove). Softverska erzija Plasma je otprilike 0.6 (nekoliko svn revizija pre izdanja 0.6).

Rezultati

Prolazno vreme:

Hadoop: 2265 seconds (37 min, 45 s)
Plasma: 1975 seconds (32 min. 55 s)

na osnovu nesigurnosti okoline, nema neke razlike. Ali hajde da imamo bliži uvid u sistem aktivnosti da bi smo došli do ideje zašto je Plasma brža.

CPU

U nastavku sam jednostavno uzeo jedan od datanodes,i napravio diagrams (sa kSar):

Imajte na umu da kSar ne previ grafikone za %iowait i %steal, iako ih sar čuva. To objašnjava sumu korisnika koja nije, niti je sistem niti idle 100%.

Ono što ovde vidimo je da Hadoop konzumira svel CPU cikluse, dok Plasma ostavlja oko 1/3 od CPU ckapaciteta neiskorišćeno. Ako uzmemo u obzir da je taj posao normalno I/O-bound,to znači da je Hadoop CPU-hungry, i da će profitirati od više jezgara na testu.

Rad na mreži

U ovom diagramu, čitamo plavo i crveno, dok ono što je napisao je zeleno i crno. Prvi zaokret prikazuje paket po sekundi, a drugi bite po sekundi:

Ako sumiramo pisano i čitano, Hadoop koristi amo oko 7MB/s u proseku, dok Plasma transmituje aoko 25MB/s, što je više od tri puta. Postoje dva objašnjena:

  • zato što je Hadoop is CPU-underpowered, ne daje svoj maksimum
  • Hadoop šema je optimizirana za održavanje mreže bandwidth na što nižem nivou
Pozadina kao druga stvar je sledeće: Zato što Hadoop deli podatke automatski nakon mapiranja i sortiranja, podaci (idealno) samo jednom prelaze mrežu. Kod Plasma je to drugačije - koja deli podatke iterativno. Kod podešavanja, nakon mapiranja i sortiranja samo dolazi do podele na 4 dela, koji se dalje lepo dele na jednake celine i delove. Pošto ovde imamo 80 celina, mora postojati još jedan vid podele, tako da podatak okvirno mora preći va puta mrežu. To već objašnjava ⅔ primećene razlike. (Kao uporedna primedba, pojedinac može da konfiguriše mnoge celine nakon mapiranja i sortiranja, i može biti mguće mimikom prikazati Hadoop šemu podešavanjem vrednosti na 80.)

Diskovi

Ovi diagrami objašnjavaju da disk čita i piše u KB/sekundama:

Prosečni brojevi su (derektno uzeti sa sar):

  Hadoop Plasma
Read/s: 17.6 MB/s 31.2 MB/s
Write/s: 30.8 MB/s 33.9 MB/s

Očigledno, Plasma čita podatke sa diska dva puta brže nego Hadoop, dok je brzina pisanja skoro ista. Osim ovoga, zanimljivo je da je izgled krivih potpuno drugačiji. Hadoop ima period visoke aktivnosti diska na kraju posla (kada je zauzet sa obrađivanjem podtaka), dok Plasma koristi disk drugačije i brže u prvoj trećini posla.

Verodostojnost

Ni zbog verodostojnosti se nije koristio I/O izvor u pravo vreme. Deo teškog razvoja mapirane/smanjene šeme je arhiviranje tog tereta koji je smešten na disk, a pomoću mreže se balansira.Nije dobro kada npr. disk koristi 100% u nekom trenutku, a mreža je potcenjena, ali u sledećem periodu mreža je na 100%, a disk nije u potpunosti korišćen. Balansirana distribucija utovara dostiže visoki nivo istraživanja pomoću totala u konačnom zbiru.

Hajde da malo detaljnije analiziramo Plasma šemu. Podaci su podešeni na 100G (što ne menja volumen tokom procesuiranja) i kopirani su sveukupno četori puta: jednom u fazi mapiranja/sortiranja (za ovaj volumen Plasma su potrebne tri različite runde). To znači da moramo da prebacimo 4 * 100G opodataka sve ukupno, ili 40G podataka po node (imamo ukupno 10 node). Pokrećemo 22 jezgara za 1975 sekundi, što am daje kapacitet od 43450 CPU sekundi. Plasma nam u izveštaju govori da se koristilo 3822 CPU sekundi za in-RAM sortranje, što bi trebalo da izvučemo za analizu I/O. Po jezgru ima 173 sekundi. To znači svaki nod ima 1975-173 = 1802 sekundi za rukovanje 40Gpodataka. To je oko 22 MB po sekundi za svaki node.

Hadoop šema se dosta razlikuje kada su u pitanju podaci, i samo se dva puta kopira u procesu odvajanja (jer Hadoop obično odvaja više fajlova u jednoj rundi od Plasma). Ipak, zbog dizajna, postoji ekstra kopija na kraju faze smanjenja (sa diska na HDFS).To znači da Hadoop takođe rešava isti posao pomoću 4 * 100G podataka. nema brojača za bojenje vremena provedenog in-RAM u sortiranju. Hajde da pretpostavimo da je to vreme takođe oko 3800 sekundi. To znači da svaki node ima 2265 - 175 = 2090 sekundi za rukovanje 40G podataka, ili19 MB po sekundi za svaki node.

Zaključak

Izgleda da su obe implementacije predstavljene na osnovu primene EC2 okoline. naročito disk I/O, što je ovde očigledno bottleneck, i što je daleko od onoga što se očekuje. Plasma je verovatno pobedila jer koristi CPU efikasnije, dok su drugi apekti kao što je korišćenje mreže bolji kod Hadoop.

Što se mog projekta tiče važno je da se nalazi na pravom putu. naročito, manja podešavanja (samo 10 node) su laka za rukovanje, imajući u vidu da je Plasma samo mali deo celokupnog rangiranja. Taj bottleneck bi ovde bio namenode, a ovde ima još mnogo headroom.

Gde nabaviti Plasma

Plasma Map/Reduce i PlasmaFS dolaze zajedno u jednom paketu. Evo i stranice projekta.


Published (Last edited): 14-03-2013 , source: http://blog.camlcity.org/blog/plasma6.html