La ce este bun Hadoop? (Cele mai bune utilizări, alternative și instrumente)

  • Home
  • Uncategorized
  • La ce este bun Hadoop? (Cele mai bune utilizări, alternative și instrumente)
La ce este bun Hadoop? (Cele mai bune utilizări, alternative și instrumente)

La ce este bun Hadoop? (Cele mai bune utilizări, alternative și instrumente)

Să aruncăm o privire la proiectul Hadoop – ce este și când utilizarea sa ar putea fi potrivită pentru proiectul dvs. Hadoop este folosit de o listă impresionantă de companii, inclusiv Facebook, LinkedIn, Alibaba, eBay și Amazon.

Pe scurt, Hadoop este excelent pentru analiza datelor MapReduce pe cantități uriașe de date. Cazurile sale de utilizare specifice includ: căutarea datelor, analiza datelor, raportarea datelor, indexarea pe scară largă a fișierelor (de exemplu, fișiere jurnal sau date de la crawlerele web) și alte sarcini de procesare a datelor folosind ceea ce este cunoscut în lumea de dezvoltare ca „Big Data”. .”

În acest articol, vom aborda: când să folosiți Hadoop, când să NU să utilizați Hadoop, elementele de bază Hadoop (HDFS, MapReduce și YARN), instrumentele legate de Hadoop și alternativele Hadoop.

Odată ce trecem peste toate subiectele de mai sus, ar trebui să puteți răspunde cu încredere la întrebarea: are Hadoop ceva de oferit afacerii mele?

Când să utilizați Hadoop

Înainte de a discuta cum funcționează Hadoop, să luăm în considerare câteva scenarii în care Hadoop ar putea fi răspunsul la nevoile dvs. de prelucrare a datelor. După aceea, vom acoperi situațiile în care NU trebuie să folosiți Hadoop.

Rețineți că infrastructura Hadoop și programarea jobului MapReduce bazată pe Java necesită expertiză tehnică pentru o configurare și întreținere corespunzătoare. Dacă aceste abilități sunt prea costisitoare pentru a fi angajate sau întreținute, poate doriți să luați în considerare alte opțiuni de procesare a datelor pentru Big Data. (Săriți la alternativele la Hadoop!)

1. Pentru procesarea datelor foarte mari:

Dacă datele tale sunt foarte mari – vorbim de cel puțin terabytes sau petabytes de date – Hadoop este pentru tine. Pentru alte seturi de date nu atât de mari (gândiți-vă la gigaocteți), există o mulțime de alte instrumente disponibile cu un cost mult mai mic de implementare și întreținere (de exemplu, diverse RDBM-uri și sisteme de baze de date NoSQL). Poate că setul dvs. de date nu este foarte mare în acest moment, dar acest lucru s-ar putea schimba pe măsură ce dimensiunea datelor dvs. se extinde din cauza diferiților factori. În acest caz, ar putea fi necesară o planificare atentă – mai ales dacă doriți ca toate datele brute să fie întotdeauna disponibile pentru o prelucrare flexibilă a datelor.

2. Pentru stocarea unui set divers de date:

Hadoop poate stoca și procesa orice fișier de date: mare sau mic, fie că este vorba de fișiere text simplu sau fișiere binare, cum ar fi imagini, chiar și mai multe versiuni diferite ale unui anumit format de date în diferite perioade de timp. Puteți schimba în orice moment modul în care procesați și analizați datele Hadoop. Această abordare flexibilă permite dezvoltări inovatoare, procesând în același timp cantități masive de date, mai degrabă decât migrări tradiționale de date lente și/sau complexe. Termenul folosit pentru acest tip de depozite de date flexibile este data lakes.

3. Pentru prelucrarea paralelă a datelor:

Algoritmul MapReduce necesită să vă puteți paraleliza procesarea datelor. MapReduce funcționează foarte bine în situațiile în care variabilele sunt procesate una câte una (de exemplu, numărare sau agregare); totuși, atunci când trebuie să procesați variabile în comun (de exemplu, cu multe corelații între variabile), acest model nu funcționează.

Orice procesare a datelor bazată pe grafice (adică o rețea complexă de date în funcție de alte date) nu este potrivită pentru metodologia standard Hadoop. Acestea fiind spuse, cadrul asociat Apache Tez permite utilizarea unei abordări bazate pe grafice pentru procesarea datelor folosind YARN în loc de fluxul de lucru MapReduce mai liniar.

Când NU trebuie să utilizați Hadoop

Acum să trecem peste câteva cazuri în care NU ar fi adecvat să folosiți Hadoop.

1. Pentru analiza datelor în timp real:

Hadoop funcționează pe lot (nu totul deodată!), procesând joburi de lungă durată pe seturi mari de date. Procesarea acestor joburi va dura mult mai mult decât o interogare de bază de date relațională pe unele tabele. Nu este neobișnuit ca o lucrare Hadoop să dureze ore sau chiar zile pentru a finaliza procesarea, mai ales în cazurile de seturi de date foarte mari.

Avertisment: O posibilă soluție pentru această problemă este stocarea datelor în HDFS și utilizarea cadrului Spark. Cu Spark, procesarea se poate face în timp real, folosind date din memorie. Acest lucru permite o accelerare de 100 de ori; cu toate acestea, o accelerare de 10 ori este posibilă și atunci când utilizați memoria de disc, datorită abordării sale MapReduce „în mai multe etape”.

2. Pentru un sistem de baze de date relaționale:

Din cauza timpilor de răspuns lenți, Hadoop nu trebuie utilizat pentru o bază de date relațională.

Avertisment: O posibilă soluție pentru această problemă este utilizarea motorului Hive SQL, care oferă rezumate ale datelor și acceptă interogări ad-hoc. Hive oferă un mecanism pentru a proiecta o structură pe datele Hadoop și apoi a interoga datele folosind un limbaj asemănător SQL numit HiveQL.

3. Pentru un sistem general de fișiere de rețea:

Timpii de răspuns lenți exclud, de asemenea, Hadoop ca un potențial sistem general de fișiere în rețea. Există și alte probleme legate de sistemul de fișiere, deoarece HDFS nu are multe dintre caracteristicile standard ale sistemului de fișiere POSIX pe care aplicațiile le așteaptă de la un sistem de fișiere general de rețea. Conform documentației Hadoop, „aplicațiile HDFS au nevoie de un model de acces scris-o dată-citit-mulți pentru fișiere. Un fișier odată creat, scris și închis nu trebuie modificat, cu excepția anexărilor și trunchiurilor.” Puteți adăuga conținut la sfârșitul fișierelor, dar nu puteți actualiza într-un punct „arbitrar”.

4. Pentru prelucrarea datelor non-paralelă:

MapReduce nu este întotdeauna cel mai bun algoritm pentru nevoile dumneavoastră de prelucrare a datelor. Fiecare operație MapReduce ar trebui să fie independentă de toate celelalte. Dacă operațiunea necesită cunoașterea multor informații din joburile procesate anterior (stare partajată), modelul de programare MapReduce ar putea să nu fie cea mai bună opțiune.

Hadoop și modelul său de programare MapReduce sunt cel mai bine utilizate pentru procesarea datelor în paralel.

Avertisment: Aceste probleme de dependență de stare pot fi uneori parțial ajutate prin rularea mai multor joburi MapReduce, ieșirea uneia fiind intrarea pentru următoarea. Acesta este ceva ce face cadrul Apache Tez folosind o abordare bazată pe grafice pentru procesarea datelor Hadoop. O altă opțiune de luat în considerare este utilizarea HBase pentru a stoca orice stare partajată în acest sistem de tabele mari. Aceste soluții, totuși, adaugă complexitate fluxului de lucru Hadoop.

Ce este Hadoop? — 3 componente de bază

Hadoop constă din trei componente de bază: un sistem de fișiere distribuit, un cadru de programare paralel și un sistem de gestionare a resurselor/locurilor. Linux și Windows sunt sistemele de operare acceptate pentru Hadoop, dar se știe că BSD, Mac OS/X și OpenSolaris funcționează, de asemenea.

1. Sistemul de fișiere distribuit Hadoop (HDFS)

Hadoop este o implementare open-source, bazată pe Java, a unui sistem de fișiere în cluster numit HDFS, care vă permite să faceți calcule distribuite rentabile, fiabile și scalabile. Arhitectura HDFS este foarte tolerantă la erori și proiectată pentru a fi implementată pe hardware cu costuri reduse.

Spre deosebire de bazele de date relaționale, clusterul Hadoop vă permite să stocați orice date de fișier și apoi să determinați mai târziu cum doriți să le utilizați fără a fi nevoie să reformatați mai întâi datele respective. Copii multiple ale datelor sunt replicate automat în cluster. Cantitatea de replicare poate fi configurată pentru fiecare fișier și poate fi modificată în orice moment.

2. Hadoop MapReduce

Hadoop se concentrează pe stocarea și procesarea distribuită de seturi mari de date pe grupuri de computere folosind un model de programare MapReduce: Hadoop MapReduce.

Cu MapReduce, setul de fișiere de intrare este împărțit în bucăți mai mici, care sunt procesate independent unele de altele (partea „hartă”). Rezultatele acestor procese independente sunt apoi colectate și procesate în grupuri (partea „reducere”) până când sarcina este finalizată. Dacă un fișier individual este atât de mare încât va afecta performanța timpului de căutare, acesta poate fi împărțit în mai multe „divizări Hadoop”.

Ecosistemul Hadoop folosește un model de programare MapReduce pentru a stoca și procesa seturi mari de date.

Iată un exemplu de program WordCount MapReduce scris pentru Hadoop.

3. Hadoop YARN

Cadrul Hadoop YARN vă permite să faceți planificarea lucrărilor și gestionarea resurselor clusterului, ceea ce înseamnă că utilizatorii pot trimite și ucide aplicații prin API-ul Hadoop REST. Există, de asemenea, interfețe de utilizare web pentru monitorizarea clusterului Hadoop. În Hadoop, combinația tuturor fișierelor și claselor JAR Java necesare pentru a rula un program MapReduce se numește job. Puteți trimite joburi către un JobTracker din linia de comandă sau prin postarea HTTP în API-ul REST. Aceste joburi conțin „sarcinile” care execută harta individuală și reduc pașii. Există, de asemenea, modalități de a încorpora cod non-Java atunci când scrieți aceste sarcini. Dacă din orice motiv un nod de cluster Hadoop se defectează, joburile de procesare afectate sunt mutate automat în alte noduri de cluster.

Instrumente Hadoop

Mai jos veți găsi o listă de proiecte legate de Hadoop găzduite de fundația Apache:

Ambari : Un instrument bazat pe web pentru furnizarea, gestionarea și monitorizarea clusterelor Apache Hadoop, Ambari include suport pentru Hadoop HDFS, Hadoop MapReduce, Hive, HCatalog, HBase, ZooKeeper, Oozie, Pig și Sqoop. Ambari oferă, de asemenea, un tablou de bord pentru vizualizarea factorilor de sănătate ale clusterului, care oferă hărți termice și abilitatea de a vizualiza vizual aplicațiile MapReduce, Pig și Hive, precum și funcții pentru a diagnostica caracteristicile de performanță într-un mod ușor de utilizat.

Avro : Avro este un sistem de serializare a datelor.

Cassandra : Cassandra este o bază de date multi-master scalabilă, fără puncte unice de eșec.

Chukwa : Un sistem de colectare a datelor, Chukwa este folosit pentru a gestiona sisteme mari distribuite.

HBase : O bază de date scalabilă, distribuită, HBase acceptă stocarea de date structurată pentru tabele mari.

Hive : Hive este o infrastructură de depozit de date care oferă rezumate ale datelor și interogări ad-hoc.

Mahout : Mahout este o bibliotecă scalabilă de învățare automată și data mining.

Pig : Acesta este un limbaj de flux de date la nivel înalt și un cadru de execuție pentru calcul paralel.

Spark : Un motor de calcul rapid și general pentru datele Hadoop, Spark oferă un model de programare simplu și expresiv care acceptă o gamă largă de aplicații, inclusiv ETL, învățarea automată, procesarea fluxului și calculul grafic.

Tez : Tez este un cadru de programare a fluxului de date generalizat, construit pe Hadoop YARN, care oferă un motor puternic și flexibil pentru a executa un DAG arbitrar de sarcini pentru a procesa date atât pentru cazuri de utilizare în lot, cât și pentru cazuri interactive. Tez este adoptat de Hive, Pig și alte cadre din ecosistemul Hadoop, precum și de alte software-uri comerciale (de exemplu, instrumente ETL), pentru a înlocui Hadoop MapReduce ca motor de execuție de bază.

ZooKeeper : Acesta este un serviciu de coordonare de înaltă performanță pentru aplicații distribuite.

Alternative Hadoop

Pentru cele mai bune alternative la Hadoop, puteți încerca una dintre următoarele:

Apache Storm : Acesta este Hadoop-ul procesării în timp real scris în limbajul Clojure.

BigQuery : platforma Google complet gestionată, cu costuri reduse, pentru analize la scară largă, BigQuery vă permite să lucrați cu SQL și să nu vă faceți griji cu privire la gestionarea infrastructurii sau a bazei de date.

Apache Mesos : Mesos extrage CPU, memoria, stocarea și alte resurse de calcul departe de mașini (fizice sau virtuale), permițând ca sistemele distribuite elastice și tolerante la erori să fie construite cu ușurință și să ruleze eficient.

Apache Flink : Flink este o platformă pentru procesarea datelor în flux distribuit și în lot, care poate fi utilizată cu Hadoop.

Pachyderm : Pachyderm pretinde că oferă puterea MapReduce fără complexitatea Hadoop, folosind containere Docker pentru a implementa clusterul.

Tutorial Hadoop în recenzie

Hadoop este o piesă robustă și puternică a tehnologiei Big Data (inclusiv instrumentele oarecum uluitoare și care evoluează rapid legate de aceasta); totuși, luați în considerare punctele sale forte și punctele slabe înainte de a decide dacă îl utilizați sau nu în centrul dvs. de date. Pot exista soluții mai bune, mai simple sau mai ieftine disponibile pentru a vă satisface nevoile specifice de prelucrare a datelor.

Dacă doriți să aflați mai multe despre Hadoop, consultați documentația și wiki-ul Hadoop.

Dezvăluirea agentului de publicitate

Gazduirweb este o resursă online gratuită care oferă utilizatorilor conținut valoros și servicii de comparare. Pentru a menține această resursă 100% gratuită, primim compensații de la multe dintre ofertele afișate pe site. Alături de factorii cheie de revizuire, această compensație poate afecta modul în care și locul în care apar produsele pe site (inclusiv, de exemplu, ordinea în care apar). Gazduirweb nu include întregul univers al ofertelor disponibile. Opiniile editoriale exprimate pe site sunt strict ale noastre și nu sunt furnizate, susținute sau aprobate de agenții de publicitate.

Politica noastră de revizuire editorială

Site-ul nostru se angajează să publice conținut independent, precis, ghidat de reguli editoriale stricte. Înainte ca articolele și recenziile să fie publicate pe site-ul nostru, acestea sunt supuse unui proces amănunțit de revizuire efectuat de o echipă de editori independenți și experți în materie pentru a asigura acuratețea, actualitatea și imparțialitatea conținutului. Echipa noastră editorială este separată și independentă de agenții de publicitate ai site-ului nostru, iar opiniile pe care le exprimă pe site-ul nostru sunt proprii. Pentru a citi mai multe despre membrii echipei noastre și despre mediul lor editorial, vă rugăm să vizitați pagina Despre a site-ului nostru.

Leave a Reply

Copyright © 1999 - 2022 Phox Operating Company