Članci

Hortonworks, Cloudera, IBM …

Posle malo duže pauze nastavljamo sa novim tekstovima. Izvinjavam se zbog nepisanja, ali to je zbog nedostatka vremena, koje je delom utrošeno i na poboljšanje ovog bloga. Naime, u narednom periodu možete očekivati neke novitete, za koje se nadam da mogu da poboljšaju Big Data scenu u našem regionu. Ovaj tekst će biti posvećen tome kako da izaberete izvor instalacije Hadoop-a. Kao što ste do sada verovatno primetili iz mojih tekstova, moj izbor je Hortonworks i potrudiću se da objasnim zašto. Naravno, pomenuću i druge Hadoop platforme.

Apache

Prvo Apache, mesto gde se razvija Hadoop i većina alata iz njegovog ekosistema. Apache sajt je odličan izvor dokumentacije za Hadoop i ostale alate. Moja prva instalacija Hadoop-a je bila odrađena u skladu sa uputstvima Apache Hadoop sajta. Zašto je ovo dobro, a zašto možda ne? Očigledna prednost je da je Apache fondacija mesto gde se razvija Hadoop. Inače, Hadoop razvija zajednica, ali Apache je telo koje koordiniše svim poslovima u vezi razvoja. Zašto ja ne koristim Hadoop direktno od Apache-a? Kao prvo, može da bude zamorno ako želite da napravite ekosistem od više alata, što bi značilo da morate sve ručno. To i ne znači nužno loše, ali opet smatram da ako možete da uštedite vreme, onda to i treba da uradite. Sa druge strane, ostali, nazovimo ih “distributeri Hadoop-a”, obično grade skup alata koji se koriste u produkciji i postavili su neke standarde, zna se koji su neizbežni alati u jednom ozbiljnom poslovnom okruženju i obično to dobijete. Predlažem da koristite dokumentaciju sa Apache sajtova kao standard, tu ćete naći gotovo sve što vam treba veznao za tehnološki aspekt Hadoop-a i ostalih alata iz ekosistema.

Hortonworks

Prvi put sam se susreo sa Hortonworks-om februara 2014. godine i moram da priznam da mi je prvi izbor bila Clouder-a, ali to se promenilo. Razlozi za to su: cena, alati, mogućnosti, dokumentacija… Mislim da sam poslednjih nedelja imao nekoliko pitanja zašto radim sa HDP-om, odnosno Hortonworks Data Platfom-om. Na prvom mestu je cena. Enterprise verzija HDP-a je besplatna i open source je, što je velika prednost. Pomalo sam bio skeptičan, ali za ovih nepunih godinu dana nisam se pokajao što sam se fokusirao na HDP. Hortonworks je tvorac YARN-a, što je omogućilo razvoj nekih novih alata i poboljšanje postojećih. Samo jedan primer je Tez engine koji radi na YARN-u i omogućio je razvoj Hive-a na jedan sasvim novi nivo, ali to je opširnija priča koju ostavljam za kasnije. Za one koji se ne snalaze na Linux-u, Hortonworks nudi Hadoop za Windows server. Veliki broj firmi ima Windows servere, zašto bi to menjali? Sajt Hortonworks-a je prepun odlične dokumentacije i treninga sa kojma možete da počnete vaše Hadoop putovanje. Neke od ovih stvari nude i ostali distrubuteri, ali moje mišljenje je da Hortonworks jača zbog YARN-a. Možda grešim, ali brojke pokazuju da je Hortonworks najozbiljniji Hadoop igrač trenutno. Na njihovom sajtu možete naći HDP Sandbox i probati Hadoop na vašem računaru. Još jedna stvar zbog koje često posećujem Hortonworks sajt je to da nisu samo orjentisani na tehnološki aspekat Hadoop-a, već možete naći tekstove o tome kako da primenite Hadoop u nekoj industriji. ResearchLepo je znati kodirati, poznavati Hadoop do srži, ali na kraju treba to negde implementirati i nekome prodati. Verovatno se neko neće složiti sa ovim, ali moje dosadašnje iskustvo je pokazlo da na kraju svi pitaju da li može da se zaradi od toga. Takođe, tu je Modern Data Architecture koja odlično pokazuje kako uklopiti HDP sa ostatkom poslovnog sistema. Moram da vam preporučim i Hortonworks webinar-e koji su odlični i naravno njihov blog. Mogao bih još da vam pišem, ali posetite njihov sajt, probajte HDP i proverite sami da li vam Hortonworks odgovara.

IBM, Cloudera, MapR…

Osim Hortonworks-a, tu su i drugi igrači na tržištu. Prvo da pomenem Clouder-u. Ukoliko se ne varam, oni su prvi počeli. Tvorac Hadoop-a, Cutting, radi u ovoj kompaniji. Razlika u odnosu na HDP je u alatima i naravno ceni. Nisam detaljno testirao njihovo rešenje, ali koliko pratim Hadoop tržište, oni su jako ozbiljni učesnici. Ako neko radi sa Cloudera rešenjima, voleo bih da mi se javi da razmenimo iskustva.

IBM rešenje je ono koje planiram da istražim u narednom periodu. Razlog za to je što je IBM vlasnik SPSS alata, koji je onima koji se bave statistikom jako poznat. Isto tako, IBM ima još niz alata za koje smatram da u kombinaciji sa Hadoop-om mogu dosta da postignu. Iskreno se nadam da će biti tekstova i o tome jako brzo. Pored toga IBM je ozbiljan IT igrač na tržištu i verujem da njihova rešenja odlično rade, posebno na njihovim serverima, za koje su svi čuli.

Pored ovih Hadoop distributera, tu su MapR, Intel i naravno Microsoft i Amazon. Microsoft i Amazon nude Hadoop u Cloud-u, samo “caka” je da i HDP i Clouder-u možete da instalirate u Cloud okruženju, ali sa Microsoftom i Amazonom dobijate Hadoop kao servis. Ovo je jedna posebna priča i odlična je za neke slučajeve korišćenja, ali naravno ima i mana. Nadam se da ćete ubrzo čitati o tome na mom blogu.

Sada, kako vi da izaberete, može da bude dobro pitanje. Moj savet vam je da prvo probate Hadoop sa Apache sajta, pa sedeći korak može da vam bude HDP Sandbox i Cloudera ekvivalent. Probajte i jedno i drugo, to će vam olakšati izbor. Najiskrenije mislim da tako treba početi i da IBM i neko od Cloud rešenja ostavite za kasnije. Razlog je jednostavn – da biste radili sa Hadoop-om što bolje morate da “osetite“ tehnologiju. Na primer, MS HDInsigts (Microsoft Hadoop) je zatvoren, nećete imati šansu da vidite “ispod haube“, dok sa druge strane instalirajte Hadoop sa Apache sajta ili HDP i imaćete šansu da pogrešite i na taj način najbolje naučite. Nemojte se plašiti grešaka, testirajte do maksimuma, menjajte konfiguracije kako biste dobili optimalno rešenje, pa tek pređite na nešto “lakše”. Naravno, ne morate da me poslušate, ali to je moj savet. Nastavljamo dalje da hadupujemo sa novim tekstovima i očekujte nešto novo na blogu.

Hadoop poslovi

Nakon teksta o primeni Hadoop-a došlo je na red da probam da opišem kakva je podela poslova vezanih za Hadoop i njegov ekosistem. Big Data je široka oblast, takođe i Hadoop. Možda je pre nekoliko godina bilo moguće reći “Bavim se Hadoop-om.” i da to znači da je cela oblast pokrivena. Sa konstantnim unapređenjem Hadoop-a i rastom ekosistema oko njega nije više moguće raditi i znati sve perfektno. Hadoop je evoluirao i sve je veći broj korisnika ove tehnologije.

Hadoop

Hadoop

Ako pogledate oglase za posao u inostranstvu, videćete da se obično traže ljudi na poziciji Big Data developera, arhitekte ili slično. Nažalost, kod nas ih još nema, ali se scena polako postavlja. Još uvek nije skroz definisan neki određen naziv radnog mesta i šta je sve potrebno znati, već sve zavisi od kompanije do kompanije. Sada već možda postavljate pitanja zašto ovo pišem kada možda to nije ni bitno. Do pre mesec dana ili malo više trudio sam se da u učenju Hadoop-a pokrijem sve, što je, moram priznati, teško i onda sam naleteo na jedan članak koji je objavio Hortonworks na svom blogu. Tekst je bio o njihovoj HDP 2.1 platformi koju i inače testiram i postojao je deo o timu. Oni su na osnovu svoje platforme koju nude definisali par radnih mesta i koje alate je potrebno detaljnije znati kako bi bili konkurentniji. Moram da napomenem da ovo nije de fakto standard, ali je odličan vodič za one koji počinju da se bave Hadoop-om. Na osnovu ove podele možete potražiti i slične alate koje nude druge kompanije. Isto tako moram da napomenem da su platforme koje dobijate sa drugim firmama gotovo identične HDP-u.

Jedna napomena – ko god da želi da se bavi Hadoop-om MORA da bude upoznat sa osnovama svih komponenti Hadoop-a, ne mora sa alatima iz ekosistema. Četiri komponente Hadoop-a su polazna tačka, tekst o njima možete naći ovde. Lično se trudim da na blogu pokrijem osnove svakog aspekta Hadoop-a i njegovog ekosistema, kako bih pomogao da se stvori početna tačka u učenju Hadoop-a. Radim na tome da se sve podigne na viši nivo i bilo ko može da mi se pridruži.

The Data Architect – odgovoran je za početni plan i arhitekturu implementacije Hadoop-a, odnosno treba da integriše Hadoop sa postojećom infrastrukturom unutar firme. Postavlja standarde za bezbednost Hadoop klastera, takođe treba da poveže klaster sa izvorima podataka. Ukratko rečeno mora da se postara da Hadoop funkcioniše sa ostalim sistemima unutar firme.

Moram da priznam da je jako odgovoran posao, jer ako se odlučite za ovo na vama je odgovornost i zadatak da predvidite šta je sve potrebno za datu firmu, morate da predvidite sve izvore podataka, da poznajete ostale alate koji se koriste u nekoj firmi. Najčešće je potrebno poznavati BI alate i ostale alate koji igraju ključnu ulogu u Data centru. Što se tiče Hadoop-a, ljudi iz Hortonworks-a preporučuju dobro poznavanje sledećih alata:

  • Apache Falcon – alat za upravljanje podacima unutar klastera
  • Apache Sqoop – alata za transfer relacionih baza u HDFS
  • Apache Flume –  alata za transfer podataka
  • HCatalog – strukturni prikaz podataka
  • Apache Knox – bezbednost klastera
Hadoop

Hadoop

O ovim alatima ću tek naknadno pisati, odnosno tekst o HCatalog-u možete naći na blogu. Naravno, kao što sam napomenuo, ovo je samo vodič. Flume i Knox imaju svoje zamene koje lako možete naći na Internetu. Ako želita da krenete u ovom pravcu slobodno me kontaktirajte, jer lično najviše radim sa Flume-om i Sqoop-om, a za sad testiram Falcon i naravno radim implementaciju Hadoop-a, tako da se može reći da težim da istražujem Hadoop u ovoj oblasti.

The Data Scientist – analizira podatke unutar Hadoop klastera, tražeći šablone i zakonitosti iz podataka, odnosno od podataka pravi informacije. Najčešće radi sa skriptama i SQL-om, primenjuje i složene algoritme za obradu podataka. U suštini ljudi koji se bave ovim poslom mogu lagodno i bez problema da ga obavljaju i na Hadoop klasteru. Najčešće koriste Hive o kome sam pisao, ali takođe i Apache Mahout – mašinski jezik, i Apache Solr – pretraga na jeziku bliskom ljudima.

Za sada jedino što sam radio u ovom delu je Hive i testirao Mahout, ali u nedovoljnoj meri. Ako nekoga zanima Hive ili R (statistika), može da me kontaktira jer se jedan kolega fokusirao na ovu oblast. Moram da priznam da je ovaj posao jako specifičan, jer vam ništa ne garatnuje da ćete ceo posao odraditi u Hive-u ili R-u. Može da vam se desi da je potrebno kombinovati više alata kako biste došli do cilja, plus na sve ovo dodajte i vizuelizaciju.

The Business Analyst – slično Data Scientist-u teži da od podataka dobije informaciju, ali koristi poznate metode, odnosno one koje se koriste i u tradicionalnoj obradi. Njihov posao je da dobiju informacije vezane direktno za firmu, a zatim da ih vizualizuju i naprave izveštaje za izvršne menadžere. Takođe, mere uspeh kompanije zaključcima iz dobijenih informacija. Na primer, poznavanje Excela se podrazumeva. Najčešće rade sa Hive-om i HCatalog-om.

Iskreno na oglasima za posao obično je ovaj set znanja objedinjen sa setom znanja Data Scientist-a.

The Developer – odgovoran je za izradu aplikacija na Hadoop-u i van njega, kako bi sistem dobio novu vrednost i bio poboljšan. Za ovaj posao je potrebno znanje pisanja koda u Javi, drugi jezici su takođe podržani, ali kako je Hadoop napisan u Javi, preporučujem nju. Takođe, veznao za Javu, poznavanje Spring framework-a i Cascading framework-a je postalo standard za izradu aplikacija. Hadoop i alati iz ekosistema imaju odlične API-je i uz otvorenost i podršku zajednice možete napraviti gotovo sve što zamislite.

The System Administrator – i do sada je bio izazov održavati sisteme, sada sa pojavom Hadoop-a i klastera koji imaju na hiljade mašina, rekao bih da je to više od izazova. Zadatak Hadoop sistem administratora je da prati, održava i upravlja Hadoop klasterom. Za ovaj posao najčešće se koristi Ambari o kome sam pisao tekst koji možete naći ovde. Nemam iskustva sa klasterima od hiljadu mašina, ali znam iz ličnog iskustva da održavanje i praćenje jednog klastera od par mašina može da izazove glavobolje. Uz Ambari je sve olakšano, ali morate da pazite o optimizaciji memorije, loša konfiguracija može da vas vrati na početak i na ponovno instaliranje Hadoop-a, verujete mi, znam iz iskustva. Isto tako, morate da vodite računa i o bezbednosti.

 

Ako pogledate iz čega se sve sastoji Hadoop, sigurno ćete zaključiti da je teško imati ceo set ovih veština i da je potrebno da se usmerite. Nadam se da ovaj tekst može da vam pomogne pri odluci. Naravno, savet je da probate što više možete kako biste sagledali širu sliku. Isto tako, još jednom da naglasim da ovo nije standard po pitanju Hadoop poslova, u šta se možete sami uveriti, nego vodič. Ja se lično držim ovoga i misli da je sasvim korektno ako želite da se bavite Hadoop-om. Nadam se da su vam moji tekstovi makar od male pomoći, ja ću se truditi da što više pišem i da pomognem onima koji žele da hadupuju.

Hadoop Ecosystem

U prethodnim tekstovima sam pisao o Hadoop-u i njegovim glavnim komponentama, Hadoop Common, HDFS, MapReduce i YARN, to je u suštini srž Hadoop framework-a. Svaka od ovih komponenti je moćna sama po sebi i zajedno čine jednu savršenu platformu koja ima mogućnost da se proširi dodatnim alatima po potrebi.

Šta je Hadoop ecosystem?

Hadoop ecosystem je skup alata, ondnosno projekata, koji mogu da rade na Hadoop platformi. Moram da napomenem da u te alate spadaju i HDFS i MapReduce, koji su i delovi platforme, ali se vode i kao Apache projekti. Ako Hadoop gledamo kao jednu celinu, na njega je moguće dodati još dosta raznih alata, velikom većinom razvijenih od strane Apache fondacije. Ti alati su sposobni da komuniciraju sa Hadoop komponentama i njihov rad može da bude nezavistan, a neki od njih su pravljeni samo za Hadoop. Koliko sam upoznat, većina alata se ne koristi samostalno već sa Hadoop-om. Danas na tržištu postoje kompanije koje nude Hadoop platformu sa već izgrađenim ekosistemom, što mnogo olakšava proces instalacije, ali i izbora. Ako biste sami birali projekte na Hadoop-u, velika je verovatnoća da zaboravite neki. Postoji desetak takvih kompanija među kojima se najviše ističu Hortonworks, Cloudera i MapR Technologies, a moram da napomenem da se i veliki igrači bave ovim, poput IBM-a, Intela, AWS-a…. Prve tri koje sam naveo kao primarnu delatnost imaju Hadoop, dok su vam ostala imena poznata po nekim drugim tehnologijama.

HDP

HDP

Ja lično radim sa Hortonworks data platformom (HDP) iz više razloga. Po mom mišljenju jako je dobar. Na sajtu Hortonworks-a postoji odlična dokumentacija, izbor alata potpuno odgovara mojim potrebama i možda ono što me je najviše opredelilo za njih jeste cena. HDP je open source, ne morate da date ni dinara, a imaćete sve što vam je potrebno, bilo da imate klaster od par mašina ili pak više klastera od mnogo mnogo mašina.

Zašto je neophodan?

Nameće se pitanje “ Zašto je meni potreban ekositem, zar mi nije dovoljan samo Hadoop?”. Odgovor na ovo pitanje zavisi isključivo od vaših potreba. E sad, pošto i lično ne volim da dobijem odgovor “ZAVISI…”, pokušaću da navedem neke primere iz iskustva za Hadoop ekosistem i Hadoop-om sa osnovnim komponentama. Ako želite da samo skladištite podatke i da to bude brzo, onda vam je dovoljan samo Hadoop. Naravno, možete instalirati i samo HDFS, tako da uštedite na vremenu podešavanja klastera. Ovo je jako dobro pogotovo ako vam padne na pamet da jednog dana analizirate te podatke. Možete bez problema naknadno da instalirate MapReduce i da dobijete samo Hadoop kao celinu. Ako želite da analizirate neke podatke, bili oni struktuirani ili ne, za to vam služi MapReduce i možete da sednete i počnete da pišete Java kodove za vaše potrebe. Ukoliko baš obožavate Javu i znate savršeno da porgramirate MapReduce kodove, onda je ok, vama je potreban sam Hadoop i njegove osnovne komponente. Sad zamislite da imate dodatne alate koji skraćuju vreme pisanja koda u Javi i intuitivniji su za neki zadati problem. E, tu nastupa na delo moć Hadoop platforme i projekata koji se grade na njoj. U HDFS možete da upišete i struktuirane podatke. Mnogo je lakše pisati upite u jezicima predviđenim za to, nego u Javi. Lično sam probao i uverio se da nešto što u Javi bude u 40 linija koda može u Pigu da se napiše u svega desetak. Današnji tempo života je ubrzan, zar nije bolje imati dodatne alate kojima se ubrzava analiza podataka? To može da bude presudno za nekog vašeg klijenta.

Da podvučem ovde crtu, moj savet je, ako želite samo da skladištite podatke i možda eventualno kasnije da ih analizirate, dovoljan vam je samo HDFS, nemate potrebu za više alata, za ekosistemom. Ako pak hoćete da koristite pun potencijal Hadoop-a i alata koji se dodaju na njega, onda dobro utvrdite šta vam je potrebno. Možete sami da stvorite svoj Hadoop ekosistem ili da koristite nešto poput HDP-a i sličnih rešenja koja su već pravljena tako da uključuju sve one alate koji se obično koriste u poslovnim analizama.

Projekti (alati) koji se dodaju na Hadoop

Hadoop Ecosystem

Hadoop Ecosystem

Na tržištu postoji mnogo alata koji su u relaciji sa Hadoop-om. Većina ih je pod Apache licencom, ali i firme poput Facebook-a i Microsoft-a razvijaju neke svoje alate koje možete da instalirate. Većina alata je besplatna, ja čak nisam dolazio u dodir sa nekim koji se plaćaju. Kako postoji mnogo alata, ja ih neću sve nabrojati, već ću dati neku njihovu osnovnu podelu i alate koje koristim, odnosno napisaću one koji dolaze uz HDP.

  • Distribuirani Fajl Sistemi (HDFS)
  • Distribuirano programiranje (MapReduce, Apache Pig, Apache Tez)
  • NoSQL baze podataka (Apache HBase, Apache Accumulo)
  • SQL baze podataka (Apache Hive, Apache HCatalog)
  • Unošenje podataka (Apache Flume, Apache Sqoop, Apache Storm)
  • Programiranje servisa (Apache Zookeeper)
  • Zakazivanje (Apache Oozie, Apache Falcon)
  • Mašinsko učenje (Apache Mahout)
  • Bezbednost (Apache Knox)
  • System Deployment (Apache Ambari, HUE)

Na sledećem linku je širi spisak projekata koji su vezani za Hadoop http://hadoopecosystemtable.github.io/ .

Kao što sam napisao, koristim HDP i naredni tekstovi će opisivati svaki alat koji dolazi uz ovu platformu pojedinačno. Neću opisivati neke dodatne alate, jer trenutno radim samo sa onima koji dolaze uz HDP i sa njima imam neko iskustvo. Možda nekad opišem još neki alat, ali ne bez prethodnog testiranja i korišćenja. Sledeći tekst je o Ambari-u, a onda prelazim na alate za analizu podataka, što znči i programiranje. Zato se spremite da nastavimo da hadupujemo zajedno!