Apache Hadoop
Apache Hadoop software | |
---|---|
Tip | Calcul distribuit |
Dezvoltator | Apache Software Foundation |
Data primei versiuni | 1 aprilie 2006 |
Ultima versiune | 3.3.0 (14 iulie 2020) |
Sistem de operare | Multiplatform |
Limba | Java |
Licență | Licență Apache 2.0 ( licență gratuită ) |
Site-ul web | hadoop.apache.org |
Apache Hadoop este un cadru sub licență gratuită care acceptă aplicații distribuite cu acces ridicat la date, permițând aplicațiilor să funcționeze cu mii de noduri și petabyte de date [1] . Inspirat de Google MapReduce [2] și Google File System [3] , este un proiect de fundație Apache la nivel înalt construit și utilizat de o comunitate globală de colaboratori, utilizând limbajele de programare Java și Scala .
De asemenea, sunt utilizate de AOL [4] , Ebay [5] , Facebook [6] , IBM [7] , Linkedin [8] , Spotify [9] , The New York Times [10] și Twitter [11] , cel mai mare contribuitor la acest proiect a fost Yahoo! [12] și o folosește intens [13] . Oferă o cantitate mare de biblioteci ușor de utilizat și are deocamdată trei versiuni, prima versiune a Hadoop conține Map Reduce și Hadoop Distributed File System ( HDFS ); de la prima versiune a Hadoop, nevoile de performanță s-au schimbat, din acest motiv a doua versiune a fost integrată cu YARN [14] .
Numele proiectului a fost ales de creatorul său Doug Cutting, care a ales Hadoop, numele elefantului umplut al fiului său [15] . A fost inițial dezvoltat pentru a sprijini distribuția pentru proiectul motorului de căutare Nutch [16] .
Structura
Strict vorbind, Hadoop este alcătuit din HDFS, MapReduce și YARN. Prin ecosistemul Hadoop înțelegem toate instrumentele create special pentru a se integra cu acestea, cum ar fi Sqoop, Hive, Flume.
Sistemul de fișiere
Hadoop Distributed File System ( HDFS ) este un sistem de fișiere distribuit, portabil și scalabil scris în Java pentru cadrul Hadoop. Un cluster din Hadoop are de obicei unul sau mai multe noduri de nume (pe care se află metadatele fișierelor) și un set de noduri de date (pe care fișierele HDFS se află în blocuri de dimensiuni fixe). Cele mai utilizate formate pentru fișiere pe HDFS sunt valori separate prin virgulă , Apache Avro , Apache ORC și Apache Parquet .
Hadoop acceptă, de asemenea:
Hadoop poate funcționa direct cu orice sistem de fișiere distribuite care poate fi montat dintr-un sistem de operare subiacent pur și simplu utilizând o adresă URL de tipul „fișier: //”.
O componentă care vă permite să integrați Hadoop cu un număr mare de sisteme de fișiere distribuite și nedistribuite este Alluxio .
Aplicații și biblioteci utilizate în clustere Hadoop
- Prelucrarea datelor în modul batch
Când s-a născut Hadoop, singura modalitate de a crea aplicații de procesare a datelor a fost MapReduce, care necesită să scrieți o mulțime de cod Java pentru chiar și cele mai simple sarcini. De-a lungul anilor, biblioteci precum Cascading și Apache Crunch au fost inventate pentru a facilita construirea acestor programe. Acestora li s-a alăturat Pig , un instrument care vă permite să utilizați un limbaj inspirat de SQL.
O schimbare semnificativă a avut loc odată cu introducerea Apache Spark, care utilizează agresiv memoria RAM a nodurilor clusterului pentru a efectua procesarea la o viteză semnificativ mai mare decât cea a MapReduce. De-a lungul timpului, Apache Spark a evoluat, adăugând suport pentru un limbaj asemănător cu SQL și capacitatea de a efectua procesarea în flux de microbatch.
- Prelucrarea datelor în modul Streaming
Pentru procesarea datelor în modul streaming cu latență redusă, puteți utiliza:
O bibliotecă demnă de remarcat este Akka . Acest lucru vă permite să procesați date cu performanțe foarte ridicate utilizând modelul de actor. Primele versiuni ale Apache Spark, anterioare versiunii 1.6, au fost construite chiar pe Akka.
De asemenea, au fost create instrumente care vă permit să definiți fluxurile de procesare a datelor prin diagrame. Acestea includ Apache NiFi și StreamSets Data Collector .
- Instrumente de gestionare a datelor
- Apache Hive , care este folosit pentru interogarea conținutului HDFS utilizând un limbaj foarte similar cu SQL numit Hive Query Language;
- Apache Impala , similar cu Hive, dar cu o latență mai mică pentru un randament mai mic. Acest software nu are caracteristicile mai avansate ale Hive, cum ar fi gestionarea indexurilor și date de date mai complexe. Utilizați Limbajul de interogare Impala;
- Apache Drill , un instrument similar cu Hive și Impala;
- În curând, un instrument pentru interogarea datelor HDFS similare cu Hive și Impala, dezvoltat de Facebook;
- Apache Kafka care este folosit pentru a transmite mesaje și pentru a păstra mesajele care au fost transmise de-a lungul timpului;
- Sqoop , un instrument de linie de comandă care vă permite să importați date din baze de date relaționale în HDFS și invers;
- Apache Flume , un serviciu distribuit de încredere și disponibil pentru colectarea eficientă, agregarea și transportul unor cantități mari de date jurnal.
- Consola web
- Apache Ambari , care ajută la administrarea mai ușoară a unui cluster Hadoop;
- Hue , o interfață grafică care vă permite să aveți un singur punct de intrare la toate instrumentele web pentru Hadoop;
- Baze de date nerelationale
- HBase , o bază de date distribuită care utilizează HDFS pentru gestionarea datelor
- Apache Cassandra
- Apache Kudu
- Alte instrumente
- Apache ZooKeeper , un serviciu de configurare și sincronizare distribuită,
Arhitecturi de sisteme bazate pe Hadoop
Folosind Hadoop este posibil să construim arhitecturi de tip Lambda, descrise de Nathan Marz și James Warren. Acest tip de arhitectură asigură fluxuri de lot și fluxuri de streaming în paralel. Limita acestei abordări este că trebuie să scrieți de două ori mai mult cod. Pentru a încerca să depășim această limită, a fost propusă arhitectura Kappa, în care totul se face în streaming.
Distribuții ale Hadoop
Deși este posibil să descărcați și să instalați tot software-ul necesar pentru a rula singur un cluster Hadoop, în multe cazuri este preferabil să folosiți o distribuție în care toate aceste software-uri sunt deja prezente și instalate.
Printre cele mai cunoscute distribuții găsim:
- Distribuția Cloudera, inclusiv Hadoop, o distribuție open source care include principalele pachete utilizate pentru Hadoop;
- Distribuția Open Source Hortonworks Data Platform a fost întreruptă în urma fuziunii cu Cloudera;
- Platforma de date convergente MapR este o distribuție comercială, achiziționată de HPE [19] ;
- Huawei FusionInsight o distribuție comercială.
Notă
- ^ Acordul Google va găzdui pe cloud-ul său clusterele de date mari Hadoop de 300 de petabyte ale Twitter
- ^ MapReduce: Prelucrare simplificată a datelor pe clustere mari
- ^ Sistemul de fișiere Google
- ^ De ce știința datelor este un sport de echipă la AOL
- ^ Hadoop - Puterea elefantului
- ^ Hadoop
- ^ Apache Hadoop
- ^ Recapitulare: îmbunătățirea performanței Hadoop cu (până la) 1000x
- ^ Prelucrarea datelor mari la Spotify: Drumul către Scio (partea 1)
- ^ Anunțarea setului de instrumente Harta / Reducere
- ^ Cum Twitter și-a redus clusterele Hadoop și consumul lor de energie
- ^ Cum a generat Yahoo Hadoop, viitorul Big Data
- ^ Scala masivă Hadoop a Yahoo afișată la Dataworks Summit
- ^ Hadoop 2.0 (YARN) Framework - Poarta către o programare mai ușoară pentru utilizatorii Hadoop
- ^ Hadoop: Discuția pentru copii mici oferă nume de date mari
- ^ Istoria sau evoluția Hadoop
- ^ Suport S3 în Apache Hadoop
- ^ Suport Hadoop Azure Data Lake
- ^ HPE își avansează platforma de date inteligentă cu achiziționarea activelor de afaceri MapR
Bibliografie
- (EN) Jay Kreps, Questioning the Lambda architecture , de oreilly.com. Adus pe 9 aprilie 2019 .
- ( RO ) Nathan Marz și James Warren, Big Data. Principii și cele mai bune practici ale sistemelor de date scalabile în timp real , Manning, 2015.
- (RO) Tom White, Hadoop: The Definitive Guide, ediția a IV-a , O'Reilly, 2015.
- ( RO ) Sam R. Alapati , Expert Hadoop® Administration , Addison-Wesley, 2016.
- (EN) Sumit Pal, SQL on Big Data , Apress, 2016.
- (EN) Butch Fifth, Next Data Generation Big Data , Apress, 2018.
- ( EN ) Tomasz Wiktorski, Sisteme intensive în date: principii și elemente fundamentale folosind Hadoop și Spark , Cham, Elveția, Springer, 2019.
Elemente conexe
linkuri externe
- ( EN ) Site-ul Hadoop , la adresa hadoop.apache.org .
Controlul autorității | GND ( DE ) 1022420135 |
---|