Ce este Hadoop? Introducere, Architectură, Ecosistem, Componente
Ce este Hadoop?
Apache Hadoop este un cadru software open source utilizat pentru a dezvolta aplicații de procesare a datelor care sunt executate într-un mediu de calcul distribuit.
Aplicațiile create folosind HADOOP sunt rulate pe seturi mari de date distribuite pe grupuri de computere de bază. Calculatoarele de bază sunt ieftine și disponibile pe scară largă. Acestea sunt utile în principal pentru obținerea unei puteri de calcul mai mari la costuri reduse.
Similar cu datele care se află într-un sistem de fișiere local al unui sistem de computer personal, în Hadoop, datele rezidă într-un sistem de fișiere distribuit care este numit ca Sistem de fișiere distribuite Hadoop. Modelul de procesare se bazează pe „Localitatea datelor” concept în care logica de calcul este trimisă către nodurile cluster (server) care conțin date. Această logică de calcul nu este altceva decât o versiune compilată a unui program scris într-un limbaj de nivel înalt, cum ar fi Java. Un astfel de program prelucrează datele stocate în Hadoop HDFS.
Tu stii? Clusterul de calculatoare este format dintr-un set de unități de procesare multiple (disc de stocare + procesor) care sunt conectate între ele și acționează ca un singur sistem.
Hadoop EcoSystem și componente
Diagrama de mai jos prezintă diferite componente ale ecosistemului Hadoop-
Apache Hadoop este format din două sub-proiecte –
- Hadoop MapReduce: MapReduce este un model de calcul și un cadru software pentru scrierea aplicațiilor care sunt rulate pe Hadoop. Aceste programe MapReduce sunt capabile să proceseze date enorme în paralel pe grupuri mari de noduri de calcul.
- HDFS (Sistemul de fișiere distribuit Hadoop): HDFS are grijă de partea de stocare a aplicațiilor Hadoop. Aplicațiile MapReduce consumă date din HDFS. HDFS creează mai multe replici ale blocurilor de date și le distribuie pe nodurile de calcul dintr-un cluster. Această distribuție permite calcule fiabile și extrem de rapide.
Deși Hadoop este cel mai bine cunoscut pentru MapReduce și sistemul său de fișiere distribuit - HDFS, termenul este folosit și pentru o familie de proiecte conexe care se încadrează sub umbrela calculului distribuit și a procesării datelor la scară largă. Alte proiecte legate de Hadoop la Apache includ sunt Hive, HBase, Mahout, Sqoop, Flume și ZooKeeper.
Hadoop Architectură
Hadoop are un Stăpân-Sclav Architectură pentru stocarea datelor și prelucrarea distribuită a datelor folosind MapReduce și metodele HDFS.
NameNode:
NameNode a reprezentat fiecare fișier și director care este folosit în spațiul de nume
DataNode:
DataNode vă ajută să gestionați starea unui nod HDFS și vă permite să interacționați cu blocurile
MasterNode:
Nodul principal vă permite să efectuați procesarea paralelă a datelor folosind Hadoop MapReduce.
Nod slave:
Nodurile slave sunt mașinile suplimentare din clusterul Hadoop, care vă permite să stocați date pentru a efectua calcule complexe. Mai mult, tot nodul slave vine cu Task Tracker și un DataNode. Acest lucru vă permite să sincronizați procesele cu NameNode și, respectiv, Job Tracker.
În Hadoop, sistemul master sau slave poate fi configurat în cloud sau on-premise
Caracteristicile lui „Hadoop”
• Potrivit pentru analiza Big Data
Deoarece Big Data tinde să fie distribuite și nestructurate în natură, clusterele HADOOP sunt cele mai potrivite pentru analiza Big Data. Deoarece logica de procesare (nu datele reale) este cea care circulă către nodurile de calcul, este consumată mai puțină lățime de bandă a rețelei. Acest concept este numit ca conceptul de localitate de date care ajută la creșterea eficienței aplicațiilor bazate pe Hadoop.
• Scalabilitate
Clusterele HADOOP pot fi scalate cu ușurință în orice măsură prin adăugarea de noduri suplimentare de cluster și, astfel, permit creșterea Big Data. De asemenea, scalarea nu necesită modificări ale logicii aplicației.
• Toleranță la erori
Ecosistemul HADOOP are o prevedere pentru a replica datele de intrare pe alte noduri de cluster. În acest fel, în cazul eșecului unui nod de cluster, procesarea datelor poate continua utilizând datele stocate pe un alt nod de cluster.
Topologia rețelei în Hadoop
Topologia (aranjarea) rețelei, afectează performanța clusterului Hadoop atunci când dimensiunea clusterului Hadoop crește. Pe lângă performanță, trebuie să vă pese și de disponibilitatea ridicată și gestionarea defecțiunilor. Pentru a realiza acest Hadoop, formarea clusterelor folosește topologia rețelei.
De obicei, lățimea de bandă a rețelei este un factor important de luat în considerare atunci când se formează orice rețea. Cu toate acestea, deoarece măsurarea lățimii de bandă ar putea fi dificilă, în Hadoop, o rețea este reprezentată ca un arbore, iar distanța dintre nodurile acestui arbore (numărul de hopuri) este considerată un factor important în formarea clusterului Hadoop. Aici, distanța dintre două noduri este egală cu suma distanței lor față de strămoșul lor comun cel mai apropiat.
Clusterul Hadoop constă dintr-un centru de date, rack și nodul care execută de fapt sarcinile. Aici, centrul de date este format din rafturi, iar rack-ul este format din noduri. Lățimea de bandă a rețelei disponibilă pentru procese variază în funcție de locația proceselor. Adică, lățimea de bandă disponibilă devine mai mică pe măsură ce ne îndepărtăm de...
- Procese pe același nod
- Noduri diferite pe același rack
- Noduri pe diferite rafturi ale aceluiași centru de date
- Noduri în diferite centre de date