Apache Hadoop: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Noce09 (discussione | contributi)
m fix Template Webarchive - collegamenti all'Internet Archive
 
(12 versioni intermedie di 9 utenti non mostrate)
Riga 7:
'''Apache Hadoop''' è un [[framework]] sotto una [[licenza libera]] che supporta applicazioni distribuite con elevato accesso ai dati, permettendo alle applicazioni di lavorare con migliaia di nodi e [[petabyte]] di dati<ref>[https://siliconangle.com/2018/05/03/google-lands-deal-host-twitters-300-petabyte-hadoop-clusters-cloud/ Google lands deal to host Twitter’s 300-petabyte Hadoop big-data clusters on its cloud]</ref>. Ispirato dalla [[MapReduce]] di [[Google]]<ref>[https://static.googleusercontent.com/media/research.google.com/it//archive/mapreduce-osdi04.pdf MapReduce:Simplified Data Processing on Large Clusters]</ref> e dal [[Google File System]]<ref>[https://static.googleusercontent.com/media/research.google.com/it//archive/gfs-sosp2003.pdf The Google File System]</ref>, è un progetto della [[Apache Software Foundation|fondazione Apache]] di alto livello costruito e usato da una comunità globale di contributori, che usano i linguaggi di programmazione [[Java (linguaggio di programmazione)|Java]] e [[Scala (linguaggio di programmazione)|Scala]].
 
Usato anche da [[AOL]]<ref>[https://www.datanami.com/2016/11/15/data-science-team-sport-aol/ Why Data Science is a Team Sport at AOL]</ref>, [[Ebay]]<ref>[https://tech.ebayinc.com/engineering/hadoop-the-power-of-the-elephant/ Hadoop - The Power of the Elephant]</ref>, [[Facebook]]<ref>[https://www.facebook.com/notes/facebook-engineering/hadoop/16121578919/ Hadoop]</ref>, [[IBM]]<ref>[https://www.ibm.com/analytics/hadoop Apache Hadoop]</ref>, [[Linkedin]]<ref>[https://engineering.linkedin.com/hadoop/recap-improving-hadoop-performance-1000x Recap: Improving Hadoop Performance by (up to) 1000x]</ref>, [[Spotify]]<ref>[https://labs.spotify.com/2017/10/16/big-data-processing-at-spotify-the-road-to-scio-part-1/ Big Data Processing at Spotify: The Road to Scio (Part 1)]</ref>, [[The New York Times]]<ref>[https://open.nytimes.com/announcing-the-map-reduce-toolkit-502b6100eeeb Announcing the Map/Reduce Toolkit]</ref> e [[Twitter]]<ref>[https://www.datacenterknowledge.com/twitter/how-twitter-shrunk-its-hadoop-clusters-and-their-energy-consumption How Twitter Shrunk Its Hadoop Clusters and Their Energy Consumption]</ref>, il più grande contributore a questo progetto è stato [[Yahoo!]] <ref>[https://www.wired.com/2011/10/how-yahoo-spawned-hadoop/ How Yahoo Spawned Hadoop, the Future of Big Data]</ref>, e ne fa fortemente uso<ref>[https://www.datanami.com/2017/06/16/yahoos-massive-hadoop-scale-display-dataworks-summit/ Yahoo’s Massive Hadoop Scale on Display at Dataworks Summit]</ref>. Offre una grande quantità di librerie di semplice utilizzo ed ha per il momento tre versioni, la prima versione di Hadoop contiene Map Reduce e Hadoop Distributed File System ([[HDFS]]); dalla prima versione di Hadoop sono cambiate le necessità di prestazione, per questo motivo la seconda versione è stata quindi integrata con YARN<ref>[https://www.dezyre.com/article/hadoop-2-0-yarn-framework-the-gateway-to-easier-programming-for-hadoop-users/84 Hadoop 2.0 (YARN) Framework - The Gateway to Easier Programming for Hadoop Users]</ref>.
 
Il nome del progetto è stato scelto dal suo creatore Doug Cutting, il quale ha scelto Hadoop, il nome dell'elefante di pezza di suo figlio<ref>[https://www.cnbc.com/id/100769719 Hadoop: Toddler Talk Provides Big Data Name]</ref>.
In origine fu sviluppato per supportare la distribuzione per il progetto del [[motore di ricerca]] [[Nutch]]<ref>[https://www.geeksforgeeks.org/hadoop-history-or-evolution/ Hadoop History or Evolution]</ref>.
 
== Struttura ==
Riga 17:
 
=== File System ===
L<nowiki>{{'</nowiki>}}'''Hadoop Distributed File System''' (in sigla '''HDFS''') è un file system distribuito, [[Portabilità|portabile]] e [[Scalabilità|scalabile]] scritto in Java per il framework Hadoop.
Un cluster in Hadoop tipicamente possiede uno o più name node (su cui risiedono i metadati dei file) e un insieme di data node (su cui risiedono, in blocchi di dimensione fissa, i file dell'HDFS).
I formati più usati per i file su HDFS sono [[Comma-separated values]], [https://avro.apache.org/ Apache Avro], [https://orc.apache.org/ Apache ORC] e [https://parquet.apache.org/ Apache Parquet].
 
HDFS viene utilizzato per l'archiviazione dei dati e MapReduce viene utilizzato per l'elaborazione dei dati. HDFS ha cinque servizi.
 
I primi tre sono servizi master/demoni/nodi e gli ultimi due sono servizi slave. I servizi Master possono comunicare tra loro e allo stesso modo i servizi Slave possono comunicare tra loro. Name Node è un nodo master e Data node è il corrispondente nodo Slave e può comunicare tra loro.
 
'''Name Node''': HDFS è costituito da un solo Name Node chiamato Master Node. Il nodo master può tenere traccia dei file, gestire il file system e ha i metadati di tutti i dati memorizzati al suo interno. In particolare, il nodo nome contiene i dettagli del numero di blocchi, le posizioni del nodo dati in cui sono archiviati i dati, dove sono archiviate le repliche e altri dettagli. Il nodo del nome ha un contatto diretto con il client.
 
'''Nodo dati''': un nodo dati memorizza i dati in esso come blocchi. Questo è anche noto come nodo slave e memorizza i dati effettivi in HDFS che è responsabile della lettura e della scrittura da parte del client. Questi sono demoni schiavi. Ogni nodo Dati invia un messaggio Heartbeat al nodo Nome ogni 3 secondi e comunica che è vivo. In questo modo, quando Name Node non riceve un heartbeat da un nodo di dati per 2 minuti, considera quel nodo di dati come morto e avvia il processo di replica dei blocchi su un altro nodo di dati.
 
'''Nodo nome secondario''': serve solo per prendersi cura dei punti di controllo dei [[metadati]] del file system che si trova nel nodo nome. Questo è anche noto come checkpoint Node. È il nodo di supporto per il nodo dei nomi. Il nodo del nome secondario indica al nodo del nome di creare e inviare il file fsimage e editlog, su cui il file fsimage compresso viene creato dal nodo del nome secondario.<ref>{{Cita libro|titolo=Data Science from Scratch. First Principles with Python|url=https://python.engineering/data-science-from-scratch-first-principles-with-python/|editore=O'Reilly|data=2019|ISBN=9781492041139|6=|accesso=5 ottobre 2021|dataarchivio=17 agosto 2021|urlarchivio=https://web.archive.org/web/20210817121416/https://python.engineering/data-science-from-scratch-first-principles-with-python/|urlmorto=sì}}</ref><ref>{{Cita web|cognome=Balram|titolo=Big Data Hadoop Tutorial for Beginners|url=https://www.gyansetu.in/big-data-hadoop-tutorial-for-beginners|accesso=11 marzo 2021|lingua=en}}</ref>
 
'''Job Tracker''': Job Tracker riceve le richieste di esecuzione di Map Reduce dal client. Job tracker comunica con il Name Node per conoscere la posizione dei dati che verranno utilizzati nell'elaborazione. Il Nodo Nome risponde con i metadati dei dati di elaborazione richiesti.
 
'''Task Tracker''': è il nodo slave per il Job Tracker e prenderà l'attività dal Job Tracker. Riceve anche il codice dal Job Tracker. Task Tracker prenderà il codice e lo applicherà al file. Il processo di applicazione di quel codice sul file è noto come Mapper.<ref>{{Cita web|url=https://hadoop.apache.org/DOCS/R2.7.5/HADOOP-PROJECT-DIST/HADOOP-HDFS/HDFSUSERGUIDE.HTML |titolo=Archived copy |accesso=19 giugno 2020 |urlarchivio=https://web.archive.org/web/20191023001222/http://hadoop.apache.org/docs/r2.7.5/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html |urlmorto=si }}</ref>
 
Hadoop supporta anche:
Line 76 ⟶ 90:
Tra le distribuzioni più note troviamo:
* [https://www.cloudera.com/products/open-source/apache-hadoop/key-cdh-components.html Cloudera distribution, including Hadoop] una distribuzione open source che include i principali pacchetti usati per Hadoop;
* [https://www.cloudera.com/downloads/hdp.html Hortonworks Data Platform] distribuzione Open Source, dismessa a seguito della fusione con Cloudera;
* [{{Cita web |url=https://mapr.com/products/mapr-converged-data-platform/ |titolo=The MapR Converged Data Platform] |urlarchivio=https://web.archive.org/web/20180521103749/https://mapr.com/products/mapr-converged-data-platform/ }} una distribuzione commerciale, acquisita da HPE<ref>[https://www.hpe.com/us/en/newsroom/press-release/2019/08/hpe-advances-its-intelligent-data-platform-with-acquisition-of-mapr-business-assets.html HPE advances its intelligent data platform with acquisition of MapR business assets]</ref>;
* [{{Cita web |url=https://e.huawei.com/ae/solutions/cloud-computing/big-data |titolo=Huawei FusionInsight] |urlarchivio=https://web.archive.org/web/20191029222026/https://e.huawei.com/ae/solutions/cloud-computing/big-data }} una distribuzione commerciale.
 
;Distribuzioni cloud
È possibile usufruire di cluster Hadoop già installati e configurati in cloud, tra le principali opzioni ci sono:
* [https://aws.amazon.com/it/emr/features/hadoop/ Amazon Elastic Map Reduce] in cui è possibile utilizzare Hive, Pig, Hue, Ganglia, Oozie e HBase ed eseguire Spark e Presto;
* [https://azure.microsoft.com/it-it/services/hdinsight/ Azure HDInsight] che permette di eseguire Apache Hadoop, Spark, Hive, Kafka;
* [https://cloud.google.com/dataproc/docs/concepts/components/overview Google cloud Dataproc] permette l'utilizzo di vari componenti di Hadoop: Hive, HBase, Flink, Presto;
* [https://www.alibabacloud.com/product/emapreduce Alibaba Cloud E-MapReduce] permette l'uso di Apache Hive, Apache Kafka, Flink, Druid, e TensorFlow.
 
== Differenza tra Hadoop 1 e Hadoop 2 ==
La più grande differenza tra Hadoop 1 e Hadoop 2 è l'aggiunta di YARN (Yet Another Resource Negotiator), che ha sostituito il motore MapReduce nella prima versione di Hadoop. YARN si sforza di allocare le risorse a varie applicazioni in modo efficace. Esegue due demoni, che si occupano di due diverse attività: il gestore delle risorse, che esegue il monitoraggio dei lavori e l'allocazione delle risorse alle [[applicazioni]], il master dell'applicazione, che monitora l'avanzamento dell'esecuzione.<ref>{{citeCita booklibro|url=https://big-data.digital/taming-big-data-with-apache-spark-and-python/|titletitolo=Taming Big Data with Apache Spark and Python|authorautore=Frank Kane|ISBN=978-1787287945|publishereditore=Packt|yearanno=2017}}</ref>
 
== Differenza tra Hadoop 2 e Hadoop 3 ==
Ci sono importanti funzionalità fornite da Hadoop 3. Ad esempio, mentre c'è un singolo namenode in Hadoop 2, Hadoop 3 consente di avere più name node, che risolve il problema del singolo punto di errore.
 
In Hadoop 3, ci sono contenitori che funzionano in linea di principio di Docker, il che riduce il tempo speso per lo sviluppo delle applicazioni.
Uno dei maggiori cambiamenti è che Hadoop 3 riduce il sovraccarico di archiviazione con la codifica di cancellazione.
 
Inoltre, Hadoop 3 consente l'utilizzo dell'[[hardware]] [[GPU]] all'interno del cluster, il che rappresenta un vantaggio sostanziale per l'esecuzione di algoritmi di [[deep learning]] su un cluster Hadoop.<ref>{{Cita libro|url=https://books.google.it/books?id=W5VWrrCOuQ8C&pg=PA92&dq=Hadoop&hl=ru&sa=X&ved=2ahUKEwiK7uiunO3yAhVJxoUKHTVtCb0Q6AF6BAgDEAI#v=onepage&q&f=false|titolo=Hadoop Operations|autore=Eric Sammer|editore=O'Reilly}}</ref>
 
== Note ==
Line 102 ⟶ 131:
*[[Apache Cassandra]]
*[[File system distribuito]]
 
== Altri progetti ==
{{interprogetto}}
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{cita web|https://hadoop.apache.org/|Sito di Hadoop|lingua=en}}
 
{{Apache}}