Kaj je posebnega pri Clouderi in kako jo kuhati

Glede na trg za porazdeljeno računalništvo in velike podatke statistika, raste za 18-19 % letno. To pomeni, da vprašanje izbire programske opreme za te namene ostaja pomembno. V tem prispevku bomo začeli s tem, zakaj potrebujemo porazdeljeno računalništvo, podrobneje se bomo posvetili izbiri programske opreme, govorili bomo o uporabi Hadoopa s Cloudero in na koncu govorili o izbiri strojne opreme in o tem, kako ta vpliva na zmogljivost na različne načine.

Kaj je posebnega pri Clouderi in kako jo kuhati
Zakaj potrebujemo porazdeljeno računalništvo v običajnem poslovanju? Vse je preprosto in zapleteno hkrati. Enostavno – ker v večini primerov izvajamo relativno enostavne izračune na enoto informacije. Težko – ker je takih informacij veliko. Toliko. Posledično je treba obdelati terabajte podatkov v 1000 nitih. Tako so primeri uporabe precej univerzalni: izračune je mogoče uporabiti povsod, kjer je treba upoštevati veliko število metrik na še večjem nizu podatkov.

Nedavni primer: pica Dodo definiran na podlagi analize baze naročil kupcev ugotavlja, da uporabniki pri izbiri pice s poljubnimi nadevi običajno operirajo le s šestimi osnovnimi sklopi sestavin in nekaj naključnimi. Temu primerno je picerija prilagodila nakupe. Poleg tega je uporabnikom lahko bolje priporočil dodatne izdelke, ponujene v fazi naročila, kar je povečalo dobiček.

Še en primer: analizo trgovskega blaga je H&M-u omogočilo znižanje asortimana v posameznih trgovinah za 40 % ob ohranjanju ravni prodaje. To smo dosegli z izločitvijo slabo prodajnih pozicij, pri izračunih pa smo upoštevali sezonskost.

Izbira orodja

Industrijski standard za tovrstno računalništvo je Hadoop. Zakaj? Ker je Hadoop odličen, dobro dokumentiran okvir (isti Habr daje veliko podrobnih člankov o tej temi), ki ga spremlja cel nabor pripomočkov in knjižnic. Kot vhod lahko oddate ogromne množice tako strukturiranih kot nestrukturiranih podatkov, sistem pa jih bo sam razdelil med računalniško močjo. Poleg tega je te iste zmogljivosti mogoče kadar koli povečati ali onemogočiti - ista horizontalna razširljivost v akciji.

Leta 2017 vplivno svetovalno podjetje Gartner sklenjenda bo Hadoop kmalu zastarel. Razlog je precej banalen: analitiki menijo, da bodo podjetja množično migrirala v oblak, saj bodo tam lahko plačevala na podlagi porabe računalniške moči. Drugi pomemben dejavnik, ki naj bi "pokopal" Hadoop, je hitrost dela. Ker so možnosti, kot sta Apache Spark ali Google Cloud DataFlow, hitrejše od osnovnega Hadoopa MapReduce.

Hadoop sloni na več stebrih, med katerimi sta najbolj opazni tehnologiji MapReduce (sistem za distribucijo podatkov za izračune med strežniki) in datotečni sistem HDFS. Slednji je zasnovan posebej za shranjevanje informacij, porazdeljenih med vozlišči gruče: vsak blok fiksne velikosti je mogoče postaviti na več vozlišč, zahvaljujoč replikaciji pa je sistem odporen na okvare posameznih vozlišč. Namesto datotečne tabele se uporablja poseben strežnik, imenovan NameNode.

Spodnja slika prikazuje, kako deluje MapReduce. Na prvi stopnji se podatki razdelijo po določenem atributu, na drugi stopnji se porazdelijo po računalniški moči, na tretji stopnji poteka izračun.

Kaj je posebnega pri Clouderi in kako jo kuhati
MapReduce je prvotno ustvaril Google za potrebe svojega iskanja. Nato je MapReduce prešel v brezplačno kodo in Apache je prevzel projekt. No, Google je postopoma prešel na druge rešitve. Zanimiv odtenek: trenutno ima Google projekt, imenovan Google Cloud Dataflow, postavljen kot naslednji korak po Hadoopu, kot njegovo hitro zamenjavo.

Podrobnejši pogled pokaže, da Google Cloud Dataflow temelji na variaciji Apache Beam, medtem ko Apache Beam vključuje dobro dokumentirano ogrodje Apache Spark, ki nam omogoča, da govorimo o skoraj enaki hitrosti izvajanja rešitve. No, Apache Spark dobro deluje na datotečnem sistemu HDFS, kar vam omogoča, da ga namestite na strežnike Hadoop.

Če sem dodamo količino dokumentacije in že pripravljene rešitve za Hadoop in Spark proti Google Cloud Dataflow, bo izbira orodja očitna. Poleg tega se lahko inženirji sami odločijo, katero kodo – pod Hadoop ali Spark – bodo izvedli, pri čemer se osredotočajo na nalogo, izkušnje in kvalifikacije.

Oblak ali lokalni strežnik

Zaradi trenda vsesplošnega prehoda v oblak je nastal celo tako zanimiv izraz, kot je Hadoop kot storitev. V takem scenariju je skrbništvo povezanih strežnikov postalo zelo pomembno. Ker, žal, čisti Hadoop je kljub svoji priljubljenosti precej težko orodje za konfiguriranje, saj morate veliko narediti ročno. Strežnike lahko na primer konfigurirate posamično, spremljate njihovo delovanje in natančno prilagodite številne parametre. Na splošno delajte amatersko in obstaja velika možnost, da se kje zafrknete ali kaj zamudite.

Zato so postale zelo priljubljene različne distribucije, ki so na začetku opremljene s priročnimi orodji za uvajanje in skrbništvo. Ena bolj priljubljenih distribucij, ki podpira Spark in olajša stvari, je Cloudera. Ima tako plačljivo kot brezplačno različico - v slednji pa je na voljo vsa glavna funkcionalnost in brez omejitve števila vozlišč.

Kaj je posebnega pri Clouderi in kako jo kuhati

Med namestitvijo se bo Cloudera Manager prek SSH povezal z vašimi strežniki. Zanimiva točka: pri namestitvi je bolje določiti, da jo izvede ti paketi: posebni paketi, od katerih vsak vsebuje vse potrebne komponente, konfigurirane za medsebojno delovanje. Pravzaprav je to tako izboljšana različica upravitelja paketov.

Po namestitvi dobimo konzolo za upravljanje gruče, kjer si lahko ogledate telemetrijo za gruče, nameščene storitve, poleg tega pa lahko dodajate/odstranjujete vire in urejate konfiguracijo gruče.

Kaj je posebnega pri Clouderi in kako jo kuhati

Posledično se pred vami pojavi rez tiste rakete, ki vas bo popeljala v svetlo prihodnost BigData. Preden pa rečemo "gremo", se pomaknimo naprej pod pokrovom.

strojne zahteve

Cloudera na svoji spletni strani omenja različne možne konfiguracije. Splošna načela, po katerih so zgrajeni, so prikazana na sliki:

Kaj je posebnega pri Clouderi in kako jo kuhati
MapReduce lahko zamegli to optimistično sliko. Če znova pogledamo diagram v prejšnjem razdelku, postane jasno, da lahko v skoraj vseh primerih opravilo MapReduce naleti na ozko grlo pri branju podatkov z diska ali omrežja. To je zapisano tudi na blogu Cloudera. Posledično je za vse hitre izračune, vključno s Sparkom, ki se pogosto uporablja za izračune v realnem času, zelo pomembna V/I hitrost. Zato je pri uporabi Hadoopa zelo pomembno, da v gručo pridejo uravnoteženi in hitri stroji, kar v infrastrukturi oblaka, milo rečeno, ni vedno zagotovljeno.

Ravnotežje v porazdelitvi obremenitve je doseženo z uporabo virtualizacije Openstack na strežnikih z zmogljivimi večjedrnimi procesorji. Podatkovnim vozliščem so dodeljeni lastni procesorski viri in določeni diski. V naši odločitvi Atos Codex Data Lake Engine dosežena je široka virtualizacija, zato zmagujemo tako v smislu zmogljivosti (vpliv omrežne infrastrukture je minimaliziran) kot TCO (odstranjeni so dodatni fizični strežniki).

Kaj je posebnega pri Clouderi in kako jo kuhati
V primeru uporabe strežnikov BullSequana S200 dobimo zelo enakomerno obremenitev, brez nekaterih ozkih grl. Najmanjša konfiguracija vključuje 3 strežnike BullSequana S200, vsak z dvema JBOD-jema, poleg tega pa so po želji povezani dodatni S200, ki vsebujejo štiri podatkovna vozlišča. Tukaj je primer obremenitve v testu TeraGen:

Kaj je posebnega pri Clouderi in kako jo kuhati

Preizkusi z različnimi količinami podatkov in vrednostmi podvajanja kažejo enake rezultate v smislu porazdelitve obremenitve po vozliščih gruče. Spodaj je graf porazdelitve dostopa do diska glede na teste zmogljivosti.

Kaj je posebnega pri Clouderi in kako jo kuhati

Izračuni temeljijo na minimalni konfiguraciji 3 strežnikov BullSequana S200. Vključuje 9 podatkovnih vozlišč in 3 glavna vozlišča ter rezervirane virtualne stroje v primeru uvedbe zaščite, ki temelji na virtualizaciji OpenStack. Rezultat testa TeraSort: velikost bloka 512 MB s faktorjem podvajanja tri s šifriranjem je 23,1 minute.

Kako se lahko sistem razširi? Za Data Lake Engine so na voljo različne vrste razširitev:

  • Podatkovna vozlišča: za vsakih 40 TB uporabnega prostora
  • Analitična vozlišča z možnostjo namestitve GPE
  • Druge možnosti glede na poslovne potrebe (npr. če potrebujete Kafko in podobno)

Kaj je posebnega pri Clouderi in kako jo kuhati

Kompleks Atos Codex Data Lake Engine vključuje tako same strežnike kot vnaprej nameščeno programsko opremo, vključno s kompletom Cloudera z licenco; Sam Hadoop, OpenStack z virtualnimi stroji, ki temeljijo na jedru RedHat Enterprise Linux, sistemi za replikacijo podatkov in varnostno kopiranje (vključno z uporabo vozlišča za varnostno kopiranje in Cloudera BDR - Backup and Disaster Recovery). Atos Codex Data Lake Engine je prva certificirana rešitev za virtualizacijo cloudera.

Če vas zanimajo podrobnosti, bomo z veseljem odgovorili na naša vprašanja v komentarjih.

Vir: www.habr.com

Dodaj komentar