Hadoop Architecture

Hadoop se bazeaza pe implementarea unui filesystem distribuit (HaDoopFileSystem) si a unei paradigme de calcul distribuit map reduce, inspirat din documente publicate de google, se preteaza procesare intr-un cluster acesta putand fi reprezentat ca si compus dintr-o colectie de rackuri care la randul lor contin masini, similar cu un datacenter, poate fi folosit la diverse job-uri de la procesare financiara la crawlere, are comenzi inspirate din filozofia unix care pot fi accesate din linie de comanda sau diverse limbaje java, python, C#.

Cateva idei la intamplare din experienta proprie cu Hadoop:

  • Pentru management-ul unui cluster ai nevoie sau de o echipa dedicata de sysadmini sau una din solutiile construite in jurul hadoop care automatizeaza procesul de monitorizare, management al clusterului, solutii comerciale care costa $$$. Din acest motiv cei care vand solutii de cloud (Google, Amazon …) au produse pentru cei care vor un cluster hadoop dar fara sa fie nevoiti sa se ocupe de intretinerea lui.
  • Pentru a te putea folosi de toate facilitatile Hadoop vei avea nevoie de Java, alte limbaje nu sunt suportate. Exista API (REST, binary, …) pentru accesul la date/servicii dar daca la un moment dat vei dori sa faci ceva low level Java e singura cale.
  • Se preteaza pentru un anumit set de probleme bine definit, in principiu batch processing, operatii unde nu ai nevoie de rezultate instant.
  • Commodity hardware la care se face referinta in prezentari e de obicei un calculator ce costa 5000+ USD (64+ GB ECC RAM, octacore 3 Ghz+, 12 x 1 TB Sata).
  • Din pacate nu am vazut nici un video in care sa explice si chestiile neplacute - exemplu de problema intalnita rebalancing disks bug
  • Cea mai buna carte citita - Hadoop: The Definitive Guide, 4th Edition
4 Likes

In general job-urile de tipul Big Data Engineer cer Hadoop, diferenta dintre Big Data Engineer vs Data Scientist este aceea ca Big Data Engineer se ocupa de pipeline de colectare, procesare date in timp ce Data Scientist folosind tool-uri de vizualizare si analiza incearca sa descopere algoritmi din spatele datelor ,cererea ambelor categori fiind in crestere conform 10 Big Data predictions for 2016.

Ca si alternativa la Hadoop ce foloseste o procesare disk based este Apache Spark ce foloseste o procesare memory based, acesta din urma este mult mai performant cu cerinte hardware reduse, mie mi s-a parut mai compact, elegant si usor de inteles implementarea Apache Spark map reduce in Scala folosind lambda expression.

Apache Spark contine componente pentru machine learning, data streaming, intre big data si machine learning existand o legatura directa in general un algoritm de machine learning are nevoie de big data pentru construirea unui model predictiv cu acurateţe.