Šta je posebno kod Cloudere i kako je kuvati

Tržište distribuiranog računarstva i velikih podataka, prema statistika, raste 18-19% godišnje. To znači da pitanje odabira softvera za ove namjene ostaje relevantno. U ovom postu ćemo krenuti od toga zašto nam je potrebno distribuirano računarstvo, detaljnije ćemo se zadržati na izboru softvera, govorit ćemo o korištenju Hadoop-a sa Clouderom, a na kraju ćemo govoriti o izboru hardvera i kako to utiče na performanse na različite načine.

Šta je posebno kod Cloudere i kako je kuvati
Zašto nam je potrebno distribuirano računarstvo u običnom poslovanju? Sve je jednostavno i komplikovano u isto vreme. Jednostavno - jer u većini slučajeva vršimo relativno jednostavne proračune po jedinici informacija. Teško - jer takvih informacija ima puno. Toliko. Kao posljedica toga, čovjek mora obraditi terabajte podataka u 1000 niti. Stoga su slučajevi upotrebe prilično univerzalni: proračuni se mogu primijeniti gdje god je potrebno uzeti u obzir veliki broj metrika na još većem nizu podataka.

Jedan nedavni primjer: Dodo Pizza definisano na osnovu analize baze narudžbi kupaca, da prilikom odabira pizze sa proizvoljnim dodacima korisnici obično rade sa samo šest osnovnih setova sastojaka plus nekoliko nasumičnih. Shodno tome, picerija je prilagodila kupovinu. Osim toga, bio je u mogućnosti da bolje preporuči dodatne proizvode ponuđene u fazi narudžbe korisnicima, što je povećalo profit.

Još jedan primjer: analiza roba je omogućila H&M-u da smanji asortiman u pojedinačnim prodavnicama za 40%, uz zadržavanje nivoa prodaje. To je postignuto isključivanjem loše prodajnih pozicija, a u proračunima je uzeta u obzir sezonalnost.

Izbor alata

Industrijski standard za ovu vrstu računarstva je Hadoop. Zašto? Zato što je Hadoop odličan, dobro dokumentovan okvir (isti Habr daje mnogo detaljnih članaka o ovoj temi), koji je popraćen čitavim skupom uslužnih programa i biblioteka. Možete dostaviti ogromne skupove strukturiranih i nestrukturiranih podataka kao ulaz, a sam sistem će ih distribuirati između računarske snage. Štaviše, ovi isti kapaciteti mogu se povećati ili onemogućiti u bilo kom trenutku - ista horizontalna skalabilnost u akciji.

2017. godine uticajna konsultantska kompanija Gartner zaključenoda će Hadoop uskoro zastarjeti. Razlog je prilično banalan: analitičari smatraju da će kompanije masovno migrirati u oblak, jer će tamo moći da plaćaju na osnovu upotrebe računarske snage. Drugi važan faktor koji bi navodno mogao da "zakopa" Hadoop je brzina rada. Zato što su opcije poput Apache Spark ili Google Cloud DataFlow brže od MapReduce temeljnog Hadoop-a.

Hadoop počiva na nekoliko stubova, od kojih su najznačajniji MapReduce tehnologije (sistem za distribuciju podataka za kalkulacije između servera) i HDFS sistem datoteka. Potonji je posebno dizajniran za skladištenje informacija raspoređenih između čvorova klastera: svaki blok fiksne veličine može se postaviti na nekoliko čvorova, a zahvaljujući replikaciji, sistem je otporan na kvarove pojedinačnih čvorova. Umjesto tabele datoteka, koristi se poseban server pod nazivom NameNode.

Ilustracija ispod pokazuje kako MapReduce radi. U prvoj fazi podaci se dijele prema određenom atributu, u drugoj fazi se distribuiraju po računskoj snazi, u trećoj fazi se odvija proračun.

Šta je posebno kod Cloudere i kako je kuvati
MapReduce je prvobitno kreirao Google za potrebe svoje pretrage. Tada je MapReduce otišao u besplatni kod, a Apache je preuzeo projekat. Pa, Google je postepeno prešao na druga rješenja. Zanimljiva nijansa: u ovom trenutku Google ima projekat pod nazivom Google Cloud Dataflow, pozicioniran kao sljedeći korak nakon Hadoop-a, kao njegova brza zamjena.

Pažljiviji pogled pokazuje da je Google Cloud Dataflow baziran na varijaciji Apache Beam-a, dok Apache Beam uključuje dobro dokumentovani okvir Apache Spark, koji nam omogućava da govorimo o skoro istoj brzini izvršavanja rješenja. Pa, Apache Spark dobro radi na HDFS sistemu datoteka, što vam omogućava da ga postavite na Hadoop servere.

Dodajte ovdje obim dokumentacije i gotova rješenja za Hadoop i Spark protiv Google Cloud Dataflow-a i izbor alata postaje očigledan. Štaviše, inženjeri mogu sami odlučiti koji će kod - pod Hadoop-om ili Spark-om - izvršiti, fokusirajući se na zadatak, iskustvo i kvalifikacije.

Cloud ili lokalni server

Trend ka opštem prelasku na oblak čak je doveo do tako zanimljivog termina kao što je Hadoop-kao-usluga. U takvom scenariju, administracija povezanih servera je postala veoma važna. Jer, nažalost, uprkos svojoj popularnosti, čisti Hadoop je prilično težak alat za konfiguraciju, jer morate puno raditi ručno. Na primjer, možete pojedinačno konfigurirati servere, pratiti njihove performanse i fino podesiti mnoge parametre. Općenito, radite za amatera i postoji velika šansa da negdje zeznete ili nešto propustite.

Stoga su različite distribucije postale vrlo popularne, koje su u početku opremljene praktičnim alatima za implementaciju i administraciju. Jedna od popularnijih distribucija koja podržava Spark i olakšava stvari je Cloudera. Ima i plaćenu i besplatnu verziju - au potonjoj su dostupne sve glavne funkcionalnosti i bez ograničenja broja čvorova.

Šta je posebno kod Cloudere i kako je kuvati

Tokom podešavanja, Cloudera Manager će se povezati preko SSH-a na vaše servere. Zanimljiva stvar: pri instalaciji je bolje navesti da se vrši tzv parcele: posebni paketi, od kojih svaki sadrži sve potrebne komponente konfigurisane da rade jedna s drugom. Zapravo, ovo je tako poboljšana verzija upravitelja paketa.

Nakon instalacije dobijamo konzolu za upravljanje klasterima, gdje možete vidjeti telemetriju za klastere, instalirane usluge, plus možete dodati/ukloniti resurse i urediti konfiguraciju klastera.

Šta je posebno kod Cloudere i kako je kuvati

Kao rezultat, pred vama se pojavljuje sečenje te rakete, koja će vas odvesti u svetlu budućnost BigData. Ali prije nego što kažemo "idemo", pređimo naprijed ispod haube.

hardverski zahtevi

Na svojoj web stranici Cloudera spominje različite moguće konfiguracije. Opšti principi po kojima su izgrađeni prikazani su na ilustraciji:

Šta je posebno kod Cloudere i kako je kuvati
MapReduce može zamagliti ovu optimističnu sliku. Gledajući ponovo dijagram u prethodnom odeljku, postaje jasno da u gotovo svim slučajevima, MapReduce posao može naići na usko grlo prilikom čitanja podataka sa diska ili mreže. To je također zabilježeno na blogu Cloudera. Kao rezultat toga, za sve brze proračune, uključujući i Spark, koji se često koristi za proračune u realnom vremenu, I/O brzina je vrlo važna. Stoga je pri korištenju Hadoop-a vrlo važno da u klaster uđu izbalansirane i brze mašine, što, blago rečeno, nije uvijek predviđeno infrastrukturom oblaka.

Ravnoteža u distribuciji opterećenja postiže se upotrebom Openstack virtuelizacije na serverima sa moćnim višejezgarnim CPU-ima. Čvorovima podataka dodjeljuju se vlastiti procesorski resursi i određeni diskovi. U našem rješenju Atos Codex Data Lake Engine postignuta je široka virtuelizacija, zbog čega pobeđujemo i u pogledu performansi (uticaj mrežne infrastrukture je minimiziran) i TCO (eliminisani su dodatni fizički serveri).

Šta je posebno kod Cloudere i kako je kuvati
U slučaju korišćenja BullSequana S200 servera, dobijamo veoma ujednačeno opterećenje, lišeno nekih uskih grla. Minimalna konfiguracija uključuje 3 BullSequana S200 servera, svaki sa dva JBOD-a, plus dodatni S200 koji sadrže četiri podatkovna čvora su opciono povezani. Evo primjera opterećenja u TeraGen testu:

Šta je posebno kod Cloudere i kako je kuvati

Testovi s različitim volumenima podataka i vrijednostima replikacije pokazuju iste rezultate u smislu raspodjele opterećenja među čvorovima klastera. Ispod je grafikon distribucije pristupa disku prema testovima performansi.

Šta je posebno kod Cloudere i kako je kuvati

Proračuni su zasnovani na minimalnoj konfiguraciji od 3 BullSequana S200 servera. Sadrži 9 čvorova podataka i 3 master čvora, kao i rezervisane virtuelne mašine u slučaju postavljanja zaštite zasnovane na OpenStack virtuelizaciji. Rezultat TeraSort testa: veličina bloka od 512 MB faktora replikacije tri sa enkripcijom je 23,1 minuta.

Kako se sistem može proširiti? Dostupne su različite vrste proširenja za Data Lake Engine:

  • Čvorovi podataka: za svakih 40 TB korisnog prostora
  • Analitički čvorovi sa mogućnošću instaliranja GPU-a
  • Druge opcije u zavisnosti od poslovnih potreba (npr. ako vam treba Kafka i sl.)

Šta je posebno kod Cloudere i kako je kuvati

Atos Codex Data Lake Engine kompleks uključuje i same servere i unapred instalirani softver, uključujući Cloudera komplet sa licencom; Sam Hadoop, OpenStack sa virtuelnim mašinama baziranim na RedHat Enterprise Linux kernelu, sistemima za replikaciju podataka i rezervne kopije (uključujući korišćenje rezervnog čvora i Cloudera BDR - Backup and Disaster Recovery). Atos Codex Data Lake Engine je prvo rešenje za virtuelizaciju koje je sertifikovano cloudera.

Ako vas zanimaju detalji, rado ćemo odgovoriti na naša pitanja u komentarima.

izvor: www.habr.com

Dodajte komentar