analisi dei dati attraverso sistemi open source · storia di hadoop nasce da un sotto progetto di...
TRANSCRIPT
![Page 1: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/1.jpg)
Analisi dei dati attraverso sistemi Open Source
Aka Hadoop
![Page 2: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/2.jpg)
Chi sono
➢ nico logrillo
➢ IT Business Intelligence Analyst @ Wolters Kluwer
➢ Studente (*) Universitario @ Informatica Magistrale di Bari
*eterno studente
![Page 3: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/3.jpg)
Che cos'è ➢E' un ecosistema di strumenti open-source orientato al calcolo distribuito di big data attraverso un cluster di computer
➢Sfrutta macchine di comodo per l'elaborazione➢Scalabile➢Fault tolerant➢Numerosi strumenti➢Open-Source➢Sempre in evoluzione➢Grande comunità di utenti, tra cui:
![Page 4: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/4.jpg)
Big Data?
“
”
![Page 5: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/5.jpg)
Big Data?Cosa sono?
• Nel 2001 Doug Laney (analista @ Gartner) definì I big data in termini volume, velocity e variety:
• Volume. Many factors contribute to the increase in data volume. Transaction-based data stored through the years. Unstructured data streaming in from social media. Increasing amounts of sensor and machine-to-machine data being collected. In the past, excessive data volume was a storage issue. But with decreasing storage costs, other issues emerge, including how to determine relevance within large data volumes and how to use analytics to create value from relevant data.
• Velocity. Data is streaming in at unprecedented speed and must be dealt with in a timely manner. RFID tags, sensors and smart metering are driving the need to deal with torrents of data in near-real time. Reacting quickly enough to deal with data velocity is a challenge for most organizations.
• Variety. Data today comes in all types of formats. Structured, numeric data in traditional databases. Information created from line-of-business applications. Unstructured text documents, email, video, audio, stock ticker data and financial transactions. Managing, merging and governing different varieties of data is something many organizations still grapple with.
![Page 6: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/6.jpg)
Big Data?
Da dove provengono?
• Social networks e social media (Twitter, Facebook, blogs, forum, etc.)• Email• Transazioni commerciali• Documenti cartacei digitalizzati• Registrazioni video• Registrazioni audio• Immagini• Dati di geo-posizionamento (GPS)• Dati generati da trasmettitori e sensori (cellulari, wifi, bluetooth, Rfid, NFC, etc.)
o misuratori digitali (digital meters) • Internet of Things• Automazione processi produttivi• Digitalizzazione dei processi di R&D (nella bioinformatica e biogenetica, chimica,
climatologia, etc.)• Web Log
![Page 7: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/7.jpg)
Big Data?
• l'iter da seguire• Identificare il problema• Identificare sorgenti dati e strumenti da utilizzare• Collezionare I dati• Preparare I dati (integrazione, trasformazione, pulizia, filtraggio e aggregazione)• Costruire un modello• Valutare il modello• Comunicare I risultati
Jeff Hammerbacher’s Model(facebook)
![Page 8: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/8.jpg)
Storia di Hadoop
➢Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source).
➢Nutch aveva problemi di scalabilità e riusciva a gestire solo piccole quantità di dati
➢Nel 2003 fu pubblicato un articolo sul Google File System (GFS) e il team di sviluppo di Nutch iniziò ad ispirarsi al GFS
➢Nel 2004 viene realizzato il Nutch Distributed File System (NDFS)
➢In seguito venne implementato il paradigma MapReduce che poteva essere usato anche per altri scopi, per questo motivo fu promosso come progetto a sè: Hadoop
![Page 9: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/9.jpg)
Architettura di Hadoop
➢Architettura Master-Slave
...
MASTER
SLAVES
![Page 10: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/10.jpg)
Architettura di Hadoop
➢Architettura Master-Slave
...
MASTER
SLAVES
NameNodeJobTracker
TaskTrackerDataNode
![Page 11: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/11.jpg)
Architettura di Hadoop
![Page 12: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/12.jpg)
Architettura di Hadoop
HDFS (Hadoop Distributde File System)
E' il filesystem distribuito di hadoop è stato progettato per archiviare in modo affidabile file di grandi dimensioni attraverso le macchine in un grande Cluster.
![Page 13: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/13.jpg)
Architettura di Hadoop
YARN (Yet Another Resource Negotiator)
Gestisce le risorse all'interno di Hadoop,garantendo la sicurezza e la coerenzatra le risorse del cluster
![Page 14: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/14.jpg)
Architettura di Hadoop
➢Architettura
MapReduce
Paradigma per la realizzazione di applicazioni distribuite sul clusterHadoop
![Page 15: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/15.jpg)
Architettura di Hadoop
Nell'ecosistema di Haoop esistonomoltissimi progetti che hanno unruolo nel trattamento dei dati.
![Page 16: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/16.jpg)
Ecosistema di Hadoop(alcuni esempi...)
![Page 17: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/17.jpg)
Esempi di cluster
Cluster: 15 nodiOgni nodo:
8 cores16G RAM1.4T storage
Utilizzato perIl motore di ricerca
Cluster: 150 nodiOgni nodo:
Intel xeon16G RAM800G storage
Utilizzato perETL, statistiche, ML
Cluster: 532 nodiOgni nodo:
8G RAM
Tot. Disk size: 5.3Peta
“Heavy usage of Java MapReduce,
Apache Pig, Apache Hive,
Apache HBase ”
![Page 18: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/18.jpg)
Esempi di cluster
Cluster 1: 1100 nodi8800 cores12PB
Singolo nodo:8 cores12TB
“We use Apache Hadoop to store copies
of internal log and dimension data sources and use it as a source for reporting/analytics and machine learning”
Cluster 2: 300 nodi2400 cores3PB
Singolo nodo:8 cores12TB
WTF!!!
![Page 19: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/19.jpg)
Hadoop MapReduce
MapReduce è un framework per l'elaborazione di problemi parallelizzabili attraverso enormi set di dati utilizzando un gran numero di computer ( nodi )
![Page 20: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/20.jpg)
Hadoop MapReduce(Paradigma)
Il paradigma MapReduce processa I dati manipolando coppie chiave/valore:
Map Phase
Input <k1, v1>
Output list(<k2, v2>)
Reduce Phase
Input <k2, list(v2)>
Output list(<k3, v3>)
![Page 21: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/21.jpg)
Hadoop MapReduce(esempio: wordcount)
![Page 22: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/22.jpg)
Hadoop MapReduce(esempio: wordcount)
Map Phase
Input <k1, v1>
Output list(<k2, v2>)
Map Phase
Input <INDEX, TOKEN>
Output list(<TOKEN, VALORE_ASSEGNATO>)
Map Phase (esempio)
Input <testo1.txt, Linux>
Output list(<Linux, 1>)
![Page 23: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/23.jpg)
Hadoop MapReduce(esempio: wordcount)
Reduce Phase
Input <k2, list(v2)>
Output list(<k3, v3>)
Reduce Phase
Input <TOKEN, list(1,1,1,...,1)>
Output list(<TOKEN, sum(list(1,1,1,...,1))>)
Reduce Phase (esempio)
Input <Linux, list(1,1,1,...,1)>
Output list(<Linux, 100>)
![Page 24: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/24.jpg)
Hadoop MapReduce(esempio: Analisi dei Log)
1.Caricare i log sull'HDFS
2.Scrivere un programma in MapReduce che deve:1.- Parserizzare il contenuto dei log2. - Estrarre i campi di interesse
3.Ordinare l'output
dataset di riferimento: http://ita.ee.lbl.gov/html/contrib/NASA-HTTP.html (il dataset contiene I log provenienti da Apache Web Server)
![Page 25: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/25.jpg)
Hadoop MapReduce(esempio: Analisi dei Log)
1.Caricare i log sull'HDFS
hadoop fs -put access_log_Aug95 /user/linuxday/dataset
![Page 26: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/26.jpg)
Hadoop MapReduce(esempio: Analisi dei Log)
2. Scrivere un programma in MapReduce che deve:1.- Parserizzare il contenuto dei log2. - Estrarre i campi di interesse
Esempio di un record:
in24.inetnebr.com - - [01/Aug/1995:00:00:01 -0400] "GET /shuttle/missions/sts-68/news/sts-68-mcc-05.txt HTTP/1.0" 200 1839
Chi effettua la richiesta
Quando è stata fattala richiesta
Metodo della richiesta
Risorsa richiesta Processo
PID
![Page 27: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/27.jpg)
Hadoop MapReduce(esempio: Analisi dei Log)
![Page 28: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/28.jpg)
Hadoop MapReduce(esempio: Analisi dei Log)
Main Class
Mapper Class
Reducer Class
Tipi di dati di Hadoop
![Page 29: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/29.jpg)
Hadoop MapReduce(esempio: Analisi dei Log)
![Page 30: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/30.jpg)
Hadoop MapReduce(esempio: Analisi dei Log)
Map Phase
Input <INDEX, LINE>
Output list(<TOKEN, VALORE>)
![Page 31: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/31.jpg)
Hadoop MapReduce(esempio: Analisi dei Log)
![Page 32: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/32.jpg)
Hadoop MapReduce(esempio: Analisi dei Log)
Reduce Phase
Input <TOKEN, list(1,1,1,...,1)> Output list(<TOKEN, sum(list(1,1,1,...,1))>)
![Page 33: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/33.jpg)
Hadoop MapReduce(esempio: Analisi dei Log)
3. Ordinare l'output
hadoop fs -cat /user/linuxday/dataset/output/part* | sort -n -k2 -r | head -n100 > Top-100.txt
/images/NASA-logosmall.gif 968746/images/KSC-logosmall.gif751435/images/MOSAIC-logosmall.gif 669777/images/USA-logosmall.gif666057/images/WORLD-logosmall.gif 659867/images/ksclogo-medium.gif 623047/ksc.html 433947/history/apollo/images/apollo-logo1.gif 377542...
![Page 34: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/34.jpg)
Hadoop MapReduce
Ok, MapReduce è già datato...
![Page 35: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/35.jpg)
Apache
E' un motore di calcolo estremamente veloce per il processamento di enormi moli di dati
Velocità:100X più veloce di MapReduce in memoria10X più veloce di MapReduce sul caricamento da disco
Linguaggi Supportati:JavaScalaPythonR
Librerie presenti:SparkSQLSparkStreamingMlibGraphX
![Page 36: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/36.jpg)
Apache
Perchè è meglio di MapReduce?
• Tempo per la creazione del Job• MapReduce è lento perchè ogni job deve leggere/scrivere dall'HDFS• MapReduce non è adatto ad operazioni di tipo iterativo (cicli in cui si deve trattare
lo stesso set di dati)
Introduce il concetto di Resilient Distributed Dataset (RDD)
• E' un set di dati suddiviso in partizioni che può restare in memoria o essere materializzato su disco
• E' immutabile. Lo si può modificare solo per mezzo di trasformazioni• Ogni nodo (worker) possiede una partizione dell'RDD
![Page 37: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/37.jpg)
Apache
Come funziona una elaborazione in Spark?
• L'applicazione scritta per Spark definisce un RDD iniziale partendo da un set di dati.L'applicazione eseguirà trasformazioni come map() o filters() che muteranno l'RDDin un nuovo RDD.
• Lo scheduler costruisce un grafo contenente le trasformazioni richieste dall'applicazionedeterminando il miglior modo con cui distribuire le trasformazioni sui vari nodi.
• Al termine dell'operazione lo scheduler restituisce l'output al client che ha lanciato l'applicazione.
![Page 38: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/38.jpg)
Apache
C'è già qualcosa di più ambizioso
![Page 39: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/39.jpg)
Apache Tugsten
• Il progetto parte con Apache Spark 1.4• Gestione manuale della memoria • Immagazzinare I dati nella cache della CPU• Migliori algoritmi e strutture dati
stay tuned
![Page 40: Analisi dei dati attraverso sistemi Open Source · Storia di Hadoop Nasce da un sotto progetto di Apache Lucene, Nutch (motore di ricerca Open Source). Nutch aveva problemi di scalabilità](https://reader033.vdocuments.mx/reader033/viewer/2022060303/5f08ab717e708231d4232679/html5/thumbnails/40.jpg)
#METTIALINUX
#ESCILADISTRO