SlideShare a Scribd company logo
1 of 50
Download to read offline
Introduzione all’architettura
ed approcci applicativi
Messina, 21/03/2015 Dario Catalano
Qualcosa su di me…
Messina, 21/03/2015 Dario Catalano
dario@catalano.email
Linkedin
Google+
Twitter
Di cosa parleremo
Messina, 21/03/2015 Dario Catalano
• Cos’è Apache Hadoop?
• Un po’ di storia
• L’algoritmo Map-Reduce
• L’architettura
• Cloudera
• Esempio Applicativo
• Configurazione
• Amministrazione
• Sicurezza
• «Estensioni» di
Hadoop
• Bibliografia
Cosa è Hadoop?
Messina, 21/03/2015 Dario Catalano
Framework
Cluster
Big
Data
Map
Reduce
Distribuited
File System
API
Fault tollerant
Cloud
Scalable
Cost effective
Extensible
Flexibile
Java
Un po’ di storia
Messina, 21/03/2015 Dario Catalano
2003 Google File System
Un po’ di storia
Messina, 21/03/2015 Dario Catalano
2004 Google Map Reduce
Un po’ di storia
Messina, 21/03/2015 Dario Catalano
2005
Doug Cutting Mike Cafarella
Un po’ di storia
Messina, 21/03/2015 Dario Catalano
2006 2011 2013
Map Reduce » Step I
Messina, 21/03/2015 Dario Catalano
…
…
…
…
…
Mapper
Mapper
Mapper
Mapper
Datas
…
Intermediate Datas
Record
Record
Record
Record
Record
Record
Record
Partitionated Datas
Record
Record
Record
Record
Record
Record
Record
Record
Record
Map Tasks
(K1,Va) (K2,Vb)
(K3,Vc) (K4,Vd)
(K5,Ve) (K6,Vf)
…
(K1,Vc) (K5,Vc)
(K5,Vf) (K2,Vd)
(K1,Ve) (K1,Vf)
…
(K3,Va) (K2,Va)
(K1,Vc) (K7,Vd)
(K2,Vb) (K3,Vf)
…
(K4,Va) (K2,Vb)
(K8,Vc) (K7,Vf)
(K2,Ve) (K5,Vf)
Map Reduce » Step II
Messina, 21/03/2015 Dario Catalano
…
Intermediate Datas
(K1,Va) (K2,Vb)
(K3,Vc) (K4,Vd)
(K5,Ve) (K6,Vf)
…
(K1,Vc) (K5,Vc)
(K5,Vf) (K2,Vd)
(K1,Ve) (K1,Vf)
…
(K3,Va) (K2,Va)
(K1,Vc) (K7,Vd)
(K2,Vb) (K3,Vf)
…
(K4,Va) (K1,Vb)
(K8,Vc) (K7,Vf)
(K2,Ve) (K5,Vf)
K1 Va Ve
K2
K3
K4
Vf Vb
K5 Ve Vf Vc Vf
K6
K7 Vd
K8 Vc
Vc
Vb
Vc
Va Vd Ve Vb
Vc Va Vf
Vd Va
Vf
Vf
Intermediate DatasShuffle, Partitionig and Sorting
Map Reduce » Step III
Messina, 21/03/2015 Dario Catalano
K1 Va Ve
K2
K3
K4
Vf Vb
K5 Ve Vf Vc Vf
K6
K7 Vd
K8 Vc
Vc
Vb
Vc
Va Vd Ve Vb
Vc Va Vf
Vd Va
Vf
Vf
Intermediate Datas
Reducer …
Record
Record
Reducer …
Record
Record
Reduce Tasks
…
Record
Record
Record
Record
Record
Record
Record
Record
Output Datas
Map Reduce » Esempio
Messina, 21/03/2015 Dario Catalano
the, 3
brown,2
fox, 2
how, 1
now, 1
quick, 1
ate, 1
mouse, 1
cow, 1
Architettura » Visione ad alto livello
Messina, 21/03/2015 Dario Catalano
HDFS MapReduce
Java Client
Architettura » HDFS
Messina, 21/03/2015 Dario Catalano
• Distribuito
• Master/Slave
• Blocchi solitamente >= 64 Mb (grande mole
di dati)
• Ridondante (3 copie)
• Facilmente scalabile
Architettura » HDFS
Messina, 21/03/2015 Dario Catalano
Architettura » HDFS » NameNode
Messina, 21/03/2015 Dario Catalano
• Ruolo Master
• Responsabile dei Metadata
 Struttura directory, file e relativi permessi
 Posizione dei blocchi
 Stato dei files
 Identità dei DataNode caricata al boot
 Filename dei blocchi nei fs locale dei DataNode
• Dati in memoria
Architettura » HDFS » Scrittura file
Messina, 21/03/2015 Dario Catalano
Architettura » HDFS » Lettura file
Messina, 21/03/2015 Dario Catalano
Architettura » HDFS » Secondary NameNode
Messina, 21/03/2015 Dario Catalano
Architettura » HDFS » Comandi
Messina, 21/03/2015 Dario Catalano
hadoop fs –cat file:///file2
hadoop fs –mkdir /user/hadoop/dir1 
/user/hadoop/dir2
hadoop fs –copyFromLocal <fromDir> <toDir>
hadoop fs –put <localfile> 
hdfs://nn.example.com/hadoop/hadoopfile
hadoop fs –ls /user/hadoop/dir1
hadoop fs –cat hdfs://nn1.example.com/file1
hadoop fs –get /user/hadoop/file <localfile>
sudo hadoop jar <jarFileName> <method> <fromDir> 
<toDir> 
Architettura » HDFS » Affidabilità
Messina, 21/03/2015 Dario Catalano
• DataNode Heartbeat
• Trade-off replicazione blocchi (1 locale e 2 in un altro rack)
 Fattore di replicazione configurabile per file (in heartbeat)
• Checksum dei blocchi
• Cancellazione: Trash directory (6 ore) » Cancellazione fisica
• NameNode collo di bottiglia in Hadoop 1.x
 Dimensioni dei metadati
 Mancanza di replicazione
Architettura » Map Reduce v1
Messina, 21/03/2015 Dario Catalano
Architettura » Map Reduce v1
Messina, 21/03/2015 Dario Catalano
Architettura » Map Reduce v1
Messina, 21/03/2015 Dario Catalano
• Master / Slave
• TaskTracker:
 Creazione task slot-based
 JVM fork
 Heartbeat
• JobTracker:
 Responsabile/Gestore del Job
 Colloquia con il NameNode
 Effettua recovery di task falliti
 Punto debole dell’architettura
Architettura » Master / Slave
Messina, 21/03/2015 Dario Catalano
• Hdfs e MapReduce nello stesso nodo =  minore traffico di rete = maggiore 
performance
Architettura » YARN
Messina, 21/03/2015 Dario Catalano
• Container
 Unità computazionale
 Controlla CPU e RAM assegnate
• Node Manager
 Riceve richieste del RS (Slave)
 Gestisce ciclo vita dei container
 Gestisce logging e servizi ausiliari
• Resource Manager:
 Riceve richieste da AM
 Schedula con politiche variabili
(Fair, Capacity,…)
• Application Master
 Dipende dal tipo di applicazione
 Separazione delle responsabilità =
Scalabilità
Architettura » YARN
Messina, 21/03/2015 Dario Catalano
1. CL -> RM (inizio
applicazione)
2. RM -> NM (richiesta nuovo
AM)
3. AM -> RM (registrazione)
4. AM -> RM (richiesta risorse)
5. AM -> NM(s) (avvio
containers)
6. CS -> AM (containers
eseguono il codice ed inviano
checks)
7. CL -> AM (client chiede stato
applicazione)
8. AM -> RM (shutdown)
Architettura » YARN
Messina, 21/03/2015 Dario Catalano
Hadoop 1.x Hadoop 2.x
Tipo di elaborazione Solo Map Reduce Implementazioni multiple
Gestione delle risorse
e delle elaborazioni
Unica (JobTracker)
Separata (ResourceManager e 
Application Master)
Scalabilità di HDFS Singolo NameNode HDFS Federation
Affidabilità di HDFS Singolo NameNode HDFS High Availability
Limite Nodi 4.000 10.000
HostHost
Processo
Modalità di Esecuzione
Messina, 21/03/2015 Dario Catalano
Singolo Processo
NameNode
Job
Tracker
Task
Tracker
Pseudo Distribuita
Data
Node
Secondary
NameNode
Host
NN
JT
Host
DN
TT
M
Host
DN
TT
R
Distribuita
Prima del codice…
Messina, 21/03/2015 Dario Catalano
• Servizi, architetture e
formazione su Apache
Hadoop
• Apache Main Contributor
• CDH (Cloudera
Distribution with Hadoop)
Cloudera Quickstart VM
Messina, 21/03/2015 Dario Catalano
• CDH 5 è basata su Linux Centos 6.4
• Contiene:
 HDFS, MapReduce, Hadoop Common, Hbase, Hive, Pig, Oozie, Sqoop, Flume, 
ZooKeeper, Hue, Whirr, Mahout, Cloudera Manager
• Disponibile per VMWare, KVM, Oracle Virtualbox
• Requisititi Minimi:
 4 Gb RAM (8 raccomandati)
 64 bit host OS
• Scaricabile da:
 http://www.cloudera.com/content/cloudera/en/downloads/quickstart_vms/
cdh-5-3-x.html
Word Count API «vecchia»
Messina, 21/03/2015 Dario Catalano
import java.io.IOException;
...
import org.apache.hadoop.mapred.TextOutputFormat;
public class WordCountOldAPI {
public static void main(String[] args) throws Exception {
JobConf conf = new JobConf(WordCountOldAPI.class);
conf.setJobName("wordcount");
conf.setOutputKeyClass(Text.class);
conf.setOutputValueClass(IntWritable.class);
conf.setMapperClass(MyMapper.class);
conf.setCombinerClass(MyReducer.class);
conf.setReducerClass(MyReducer.class);
conf.setNumReduceTasks(1);
conf.setInputFormat(TextInputFormat.class);
conf.setOutputFormat(TextOutputFormat.class);
FileInputFormat.setInputPaths(conf, new Path(args[0]));
FileOutputFormat.setOutputPath(conf, new Path(args[1]));
JobClient.runJob(conf);
}
Word Count API «vecchia»
Messina, 21/03/2015 Dario Catalano
public static class MyMapper extends MapReduceBase implements Mapper<LongWritable, Text, Text, 
IntWritable> {
public void map(LongWritable key, Text value,OutputCollector<Text, IntWritable> output, Reporter 
reporter) throws IOException {
output.collect(new Text(value.toString()), new IntWritable(1));
}
}
public static class MyReducer extends MapReduceBase implements Reducer<Text, IntWritable, Text, 
IntWritable> {
public void reduce(Text key, Iterator<IntWritable> values, OutputCollector<Text, IntWritable> output, 
Reporter reporter) throws IOException {
int sum = 0;
while (values.hasNext()) {
sum += values.next().get();
}
output.collect(key, new IntWritable(sum));
}
}
}
La «nuova» API
Messina, 21/03/2015 Dario Catalano
• Introdotta con Hadoop 0.20 (2009)
• Nuovo package
• Più concisa e compatta
• Più pulita e leggibile
• Permette un controllo del Job più completo ed accurato
• Non confondere versione API con versione
dell’architettura (1.x o 2.x)
Word Count API «nuova»
Messina, 21/03/2015 Dario Catalano
import java.io.IOException;
...
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
public class WordCountNewAPI {
public static void main(String[] args) throws Exception {
Job job = Job.getInstance(new Configuration());
job.setJarByClass(WordCountNewAPI.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
job.setMapperClass(MyMapper.class);
job.setReducerClass(MyReducer.class);
job.setInputFormatClass(TextInputFormat.class);
job.setOutputFormatClass(TextOutputFormat.class);
FileInputFormat.setInputPaths(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
boolean status = job.waitForCompletion(true);
if (status) System.exit(0)
else System.exit(1);
}
Word Count API «nuova»
Messina, 21/03/2015 Dario Catalano
public static class MyMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
public void map(LongWritable key, Text value, Context context) throws IOException, 
InterruptedException {
String w = value.toString();
context.write(new Text(w), new IntWritable(1));
}
}
public static class MyReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
public void reduce(Text key, Iterable<IntWritable> values,Context context) throws IOException, 
InterruptedException {
int sum = 0;
for (IntWritable val : values) {
sum += val.get();
}
context.write(key, new IntWritable(sum));
}
}
}
E adesso…
Messina, 21/03/2015 Dario Catalano
…un po’ di pratica
Configurazione
Messina, 21/03/2015 Dario Catalano
• Configurazione XML per ogni nodo
• *‐default.xml nei JAR di Hadoop, *‐site.xml nella cartella di
configurazione
• 4 tipi file principali:
 core‐*.xml
 hdfs‐*.xml
 mapred‐*.xml
 yarn‐*.xml
• Precedenza delle proprietà definite in varie posizioni:
 Oggetto Job o JobConf all’interno del codice
 File *‐site.xml all’interno del nodo Client
 File *‐site.xml all’interno del nodo Slave
 File *‐default.xml nei JAR (uguali in tutti i nodi)
Amministrazione e Monitoring
Messina, 21/03/2015 Dario Catalano
• Command Line Interface
• Log files
• Interfacce Web per ogni processo
• YARN REST API
• JMX
• Manager Tools
 Cloudera Manager
 Ambari
Sicurezza
Messina, 21/03/2015 Dario Catalano
• Inizialmente trascurata (solo dati pubblici)
• Hadoop solo su reti private
• Sviluppo software di terze parti:
 Cloudera Sentry, IBM InfoSphere Optim Data Masking, Intel's secure Hadoop
distribution, DataStax Enterprise, DataGuise for Hadoop,ecc.
• Dalla versione 0.20.x:
 Autenticazione tra servizi Kerberos
 Autenticazione Web Console personalizzabile
 HDFS Permessi ed ACL
 Autenticazioni Token based per diminuire overhead
 Possibile crittazione delle connessioni
• Problemi ancora da risolvere
 HDFS non crittato
 Difficile integrazione in ambienti non Kerberos
 Regole di autorizzazione non sufficientemente flessibili
 Modello complessivo della sicurezza complicato
• Intel Project Rhino
Estensioni
Messina, 21/03/2015 Dario Catalano
HBase
Messina, 21/03/2015 Dario Catalano
• NoSql Datastore
• Chiavi multidimensionali
• Schema dinamico
• Obiettivo : massime
performance
• Visione logica: Tabelle,
righe, colonne e famiglie
di colonne
HIVE
Messina, 21/03/2015 Dario Catalano
• Database
• Data wharehouse e BI
• Linguaggio dichiarativo
• Tabelle -> File su HDFS
• SQL-like query -> MapReduce
• Tabelle (managed ed
esterne), viste, partizioni, … =
flessibilità organizzativa.
Pig
Messina, 21/03/2015 Dario Catalano
• Scripting
• Data flow e Pipelining
• ETL oriented
• Linguaggio procedurale
• LOAD, FILTER, JOIN,
GROUP, STORE,… =
controllo del dato step by
step
HCatalog
Messina, 21/03/2015 Dario Catalano
• Integrazione di varie
tecnologie Hadoop
based (HIVE, Pig,
MapReduce)
• Astrazione per rendere
uniformi BI e ETL
• REST API
Sqoop
Messina, 21/03/2015 Dario Catalano
HAMA
Messina, 21/03/2015 Dario Catalano
• Bulk Synchronous
Parallel
• Yarn-based
• Fasi
 Processing
 Exchange
Messages
 Barrier
Synchronization
Spark
Messina, 21/03/2015 Dario Catalano
• Obiettivo performance
(10x più veloce di MR)
• Scala based (Java,
Scala, Python API)
• Resilient Distributed
Dataset (Scala Seq)
• Hadoop, Mesos, Stand-
alone
Mahout
Messina, 21/03/2015 Dario Catalano
• Machine Learning (IA)
 Classificazione
 Clusterizzazione
 Fuzzy Logic
 Neural Network
 …
• Data Mininig
• 2 Fasi
 Apprendimento
 Applicazione
Bibliografia
Messina, 21/03/2015 Dario Catalano
• Libri
 Pro Hadoop Second Edition, Sameer Wadkar, Madhu Siddalingaiah, Jason Venner , Apress
 Hadoop: The Definitive Guide Third Edition, Tom White, O’ Reilly
• Web
 Apache Hadoop Official Site, https://hadoop.apache.org/
 What is Hadoop?, http://www-01.ibm.com/software/data/infosphere/hadoop/
 Cloudera, http://www.cloudera.com/
 Introduzione ad Hadoop, https://paolobernardi.wordpress.com/2011/10/09/introduzione-ad-
hadoop/
 Introduction to Hadoop 2.0 and advantages of Hadoop 2.0,
http://www.edureka.co/blog/introduction-to-hadoop-2-0-and-advantages-of-hadoop-2-0/
 The New Hadoop API 0.20.x, http://sonerbalkir.blogspot.it/2010/01/new-hadoop-api-020x.html
 Big Data Security: The Evolution of Hadoop’s Security Model,
http://www.infoq.com/articles/HadoopSecurityModel

More Related Content

What's hot

MapReduce: Simplified Data Processing on Large Clusters
MapReduce: Simplified Data Processing on Large ClustersMapReduce: Simplified Data Processing on Large Clusters
MapReduce: Simplified Data Processing on Large ClustersGiovanni Grano
 
Oltre il modello relazionale
Oltre il modello relazionaleOltre il modello relazionale
Oltre il modello relazionalefcami87
 
Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Codemotion
 
JBoss Data Grid Tech Lab
JBoss Data Grid Tech LabJBoss Data Grid Tech Lab
JBoss Data Grid Tech LabUgo Landini
 
Benchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQLBenchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQLEDB
 
Db2 11.1: l'evoluzione del Database secondo IBM
Db2 11.1: l'evoluzione del Database secondo IBMDb2 11.1: l'evoluzione del Database secondo IBM
Db2 11.1: l'evoluzione del Database secondo IBMJürgen Ambrosi
 

What's hot (9)

MapReduce: Simplified Data Processing on Large Clusters
MapReduce: Simplified Data Processing on Large ClustersMapReduce: Simplified Data Processing on Large Clusters
MapReduce: Simplified Data Processing on Large Clusters
 
Hadoop in action!
Hadoop in action!Hadoop in action!
Hadoop in action!
 
Oltre il modello relazionale
Oltre il modello relazionaleOltre il modello relazionale
Oltre il modello relazionale
 
Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015
 
Data grid
Data gridData grid
Data grid
 
JBoss Data Grid Tech Lab
JBoss Data Grid Tech LabJBoss Data Grid Tech Lab
JBoss Data Grid Tech Lab
 
The Google File System
The Google File SystemThe Google File System
The Google File System
 
Benchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQLBenchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQL
 
Db2 11.1: l'evoluzione del Database secondo IBM
Db2 11.1: l'evoluzione del Database secondo IBMDb2 11.1: l'evoluzione del Database secondo IBM
Db2 11.1: l'evoluzione del Database secondo IBM
 

Viewers also liked

Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache KafkaJeff Holoman
 
Basic Sharding in MongoDB presented by Shaun Verch
Basic Sharding in MongoDB presented by Shaun VerchBasic Sharding in MongoDB presented by Shaun Verch
Basic Sharding in MongoDB presented by Shaun VerchMongoDB
 
PresentazioneTesiSilviaMarrone1
PresentazioneTesiSilviaMarrone1PresentazioneTesiSilviaMarrone1
PresentazioneTesiSilviaMarrone1Silvia Marrone
 
Progettare e realizzare con Raspberry - Lo stretto digitale
Progettare e realizzare con Raspberry - Lo stretto digitale Progettare e realizzare con Raspberry - Lo stretto digitale
Progettare e realizzare con Raspberry - Lo stretto digitale lostrettodigitale
 
MOBILE APPS con ANDROID - Lo Stretto Digitale
MOBILE APPS con ANDROID  - Lo Stretto DigitaleMOBILE APPS con ANDROID  - Lo Stretto Digitale
MOBILE APPS con ANDROID - Lo Stretto Digitalelostrettodigitale
 
Mobile Apps con Apache Cordova - Lo Stretto Digitale
Mobile Apps con Apache Cordova - Lo Stretto DigitaleMobile Apps con Apache Cordova - Lo Stretto Digitale
Mobile Apps con Apache Cordova - Lo Stretto Digitalelostrettodigitale
 
Sviluppare apps native per iOS - Lo Stretto Digitale
Sviluppare apps native per iOS - Lo Stretto DigitaleSviluppare apps native per iOS - Lo Stretto Digitale
Sviluppare apps native per iOS - Lo Stretto Digitalelostrettodigitale
 
Alberto Degradi - Big Data: grande sfida e grande opportunità - Digital for B...
Alberto Degradi - Big Data: grande sfida e grande opportunità - Digital for B...Alberto Degradi - Big Data: grande sfida e grande opportunità - Digital for B...
Alberto Degradi - Big Data: grande sfida e grande opportunità - Digital for B...Cultura Digitale
 
Presentation of context: Web Annotations (& Pundit) during the StoM Project (...
Presentation of context: Web Annotations (& Pundit) during the StoM Project (...Presentation of context: Web Annotations (& Pundit) during the StoM Project (...
Presentation of context: Web Annotations (& Pundit) during the StoM Project (...Net7
 
#SparkNightLab 1st edition - #Iot #Spark
#SparkNightLab 1st edition - #Iot #Spark#SparkNightLab 1st edition - #Iot #Spark
#SparkNightLab 1st edition - #Iot #SparkRoberto Nocera
 
Corso di rendicontazione FP7- 7°settimo programma quadro ed.2009
Corso di rendicontazione FP7- 7°settimo programma quadro ed.2009Corso di rendicontazione FP7- 7°settimo programma quadro ed.2009
Corso di rendicontazione FP7- 7°settimo programma quadro ed.2009Domenico Dalia
 
Net7 @ Master Big Data 2017
Net7 @ Master Big Data 2017Net7 @ Master Big Data 2017
Net7 @ Master Big Data 2017Net7
 
Common and unique use cases for Apache Hadoop
Common and unique use cases for Apache HadoopCommon and unique use cases for Apache Hadoop
Common and unique use cases for Apache HadoopBrock Noland
 
Hadoop Perspectives for 2017
Hadoop Perspectives for 2017Hadoop Perspectives for 2017
Hadoop Perspectives for 2017Precisely
 
Sda bocconi andrea albanese risultati ricerca Customer experience e social ne...
Sda bocconi andrea albanese risultati ricerca Customer experience e social ne...Sda bocconi andrea albanese risultati ricerca Customer experience e social ne...
Sda bocconi andrea albanese risultati ricerca Customer experience e social ne...Andrea Albanese
 
Google Dev Fest 2016 - Roma
Google Dev Fest 2016 - RomaGoogle Dev Fest 2016 - Roma
Google Dev Fest 2016 - Romagabriele nocco
 
Le competenze che contano Ci sono un sacco di posti di lavoro che gli italia...
Le competenze che contano Ci sono un sacco di posti di lavoro  che gli italia...Le competenze che contano Ci sono un sacco di posti di lavoro  che gli italia...
Le competenze che contano Ci sono un sacco di posti di lavoro che gli italia...InSide Training
 
Presentazione bigdata Madee
Presentazione bigdata MadeePresentazione bigdata Madee
Presentazione bigdata MadeeGianluigi Cogo
 

Viewers also liked (20)

Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
Basic Sharding in MongoDB presented by Shaun Verch
Basic Sharding in MongoDB presented by Shaun VerchBasic Sharding in MongoDB presented by Shaun Verch
Basic Sharding in MongoDB presented by Shaun Verch
 
PresentazioneTesiSilviaMarrone1
PresentazioneTesiSilviaMarrone1PresentazioneTesiSilviaMarrone1
PresentazioneTesiSilviaMarrone1
 
Progettare e realizzare con Raspberry - Lo stretto digitale
Progettare e realizzare con Raspberry - Lo stretto digitale Progettare e realizzare con Raspberry - Lo stretto digitale
Progettare e realizzare con Raspberry - Lo stretto digitale
 
MOBILE APPS con ANDROID - Lo Stretto Digitale
MOBILE APPS con ANDROID  - Lo Stretto DigitaleMOBILE APPS con ANDROID  - Lo Stretto Digitale
MOBILE APPS con ANDROID - Lo Stretto Digitale
 
Mobile Apps con Apache Cordova - Lo Stretto Digitale
Mobile Apps con Apache Cordova - Lo Stretto DigitaleMobile Apps con Apache Cordova - Lo Stretto Digitale
Mobile Apps con Apache Cordova - Lo Stretto Digitale
 
Sviluppare apps native per iOS - Lo Stretto Digitale
Sviluppare apps native per iOS - Lo Stretto DigitaleSviluppare apps native per iOS - Lo Stretto Digitale
Sviluppare apps native per iOS - Lo Stretto Digitale
 
Big data overview
Big data overviewBig data overview
Big data overview
 
IOT
IOTIOT
IOT
 
Alberto Degradi - Big Data: grande sfida e grande opportunità - Digital for B...
Alberto Degradi - Big Data: grande sfida e grande opportunità - Digital for B...Alberto Degradi - Big Data: grande sfida e grande opportunità - Digital for B...
Alberto Degradi - Big Data: grande sfida e grande opportunità - Digital for B...
 
Presentation of context: Web Annotations (& Pundit) during the StoM Project (...
Presentation of context: Web Annotations (& Pundit) during the StoM Project (...Presentation of context: Web Annotations (& Pundit) during the StoM Project (...
Presentation of context: Web Annotations (& Pundit) during the StoM Project (...
 
#SparkNightLab 1st edition - #Iot #Spark
#SparkNightLab 1st edition - #Iot #Spark#SparkNightLab 1st edition - #Iot #Spark
#SparkNightLab 1st edition - #Iot #Spark
 
Corso di rendicontazione FP7- 7°settimo programma quadro ed.2009
Corso di rendicontazione FP7- 7°settimo programma quadro ed.2009Corso di rendicontazione FP7- 7°settimo programma quadro ed.2009
Corso di rendicontazione FP7- 7°settimo programma quadro ed.2009
 
Net7 @ Master Big Data 2017
Net7 @ Master Big Data 2017Net7 @ Master Big Data 2017
Net7 @ Master Big Data 2017
 
Common and unique use cases for Apache Hadoop
Common and unique use cases for Apache HadoopCommon and unique use cases for Apache Hadoop
Common and unique use cases for Apache Hadoop
 
Hadoop Perspectives for 2017
Hadoop Perspectives for 2017Hadoop Perspectives for 2017
Hadoop Perspectives for 2017
 
Sda bocconi andrea albanese risultati ricerca Customer experience e social ne...
Sda bocconi andrea albanese risultati ricerca Customer experience e social ne...Sda bocconi andrea albanese risultati ricerca Customer experience e social ne...
Sda bocconi andrea albanese risultati ricerca Customer experience e social ne...
 
Google Dev Fest 2016 - Roma
Google Dev Fest 2016 - RomaGoogle Dev Fest 2016 - Roma
Google Dev Fest 2016 - Roma
 
Le competenze che contano Ci sono un sacco di posti di lavoro che gli italia...
Le competenze che contano Ci sono un sacco di posti di lavoro  che gli italia...Le competenze che contano Ci sono un sacco di posti di lavoro  che gli italia...
Le competenze che contano Ci sono un sacco di posti di lavoro che gli italia...
 
Presentazione bigdata Madee
Presentazione bigdata MadeePresentazione bigdata Madee
Presentazione bigdata Madee
 

Similar to Hadoop - Introduzione all’architettura ed approcci applicativi

PostgreSQL - Hadoop: Why not? - PGDay.IT 2016
PostgreSQL - Hadoop: Why not? - PGDay.IT 2016PostgreSQL - Hadoop: Why not? - PGDay.IT 2016
PostgreSQL - Hadoop: Why not? - PGDay.IT 2016Miriade Spa
 
Big data stack tecnologico
Big data stack tecnologicoBig data stack tecnologico
Big data stack tecnologicoMassimo Romano
 
1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...
1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...
1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...Jürgen Ambrosi
 
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle OpenstackMySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle OpenstackPar-Tec S.p.A.
 
Business Intelligence & Analytics
Business Intelligence & AnalyticsBusiness Intelligence & Analytics
Business Intelligence & AnalyticsDavide Mauri
 
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
[ITA] SQL Saturday 264 - Put databases in ALM backgroundsAlessandro Alpi
 
Panoramica sul progetto OpenStack
Panoramica sul progetto OpenStackPanoramica sul progetto OpenStack
Panoramica sul progetto OpenStackPar-Tec S.p.A.
 
ClearOS - Linux Small Business Server
ClearOS - Linux Small Business ServerClearOS - Linux Small Business Server
ClearOS - Linux Small Business ServerFrancesco Taurino
 
Personal Cloud
Personal CloudPersonal Cloud
Personal CloudNaLUG
 
Abusing HTML 5 Client-side Storage
Abusing HTML 5 Client-side StorageAbusing HTML 5 Client-side Storage
Abusing HTML 5 Client-side Storageameft
 
Back to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizioBack to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizioMongoDB
 
Design Patterns - Enterprise Patterns (part 2)
Design Patterns - Enterprise Patterns (part 2)Design Patterns - Enterprise Patterns (part 2)
Design Patterns - Enterprise Patterns (part 2)Fabio Armani
 
Lezione 7 del 21 febbraio 2012 - CLOUD STORAGE PER USO PERSONALE
Lezione 7 del 21 febbraio 2012 - CLOUD STORAGE PER USO PERSONALELezione 7 del 21 febbraio 2012 - CLOUD STORAGE PER USO PERSONALE
Lezione 7 del 21 febbraio 2012 - CLOUD STORAGE PER USO PERSONALEGianluigi Cogo
 
Sogei - Guardigli Disaster Recovery E Business Continuity Nella It Nov 2006v2
Sogei - Guardigli Disaster Recovery E Business Continuity Nella It Nov 2006v2Sogei - Guardigli Disaster Recovery E Business Continuity Nella It Nov 2006v2
Sogei - Guardigli Disaster Recovery E Business Continuity Nella It Nov 2006v2Marco Guardigli
 
JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)jampslide
 

Similar to Hadoop - Introduzione all’architettura ed approcci applicativi (20)

PostgreSQL - Hadoop: Why not? - PGDay.IT 2016
PostgreSQL - Hadoop: Why not? - PGDay.IT 2016PostgreSQL - Hadoop: Why not? - PGDay.IT 2016
PostgreSQL - Hadoop: Why not? - PGDay.IT 2016
 
Drupal 7
Drupal 7Drupal 7
Drupal 7
 
Big data stack tecnologico
Big data stack tecnologicoBig data stack tecnologico
Big data stack tecnologico
 
1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...
1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...
1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...
 
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle OpenstackMySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
 
Quickr In Real Life - casi di successo di QuickR
 Quickr In Real Life - casi di successo di QuickR Quickr In Real Life - casi di successo di QuickR
Quickr In Real Life - casi di successo di QuickR
 
Business Intelligence & Analytics
Business Intelligence & AnalyticsBusiness Intelligence & Analytics
Business Intelligence & Analytics
 
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
 
Panoramica sul progetto OpenStack
Panoramica sul progetto OpenStackPanoramica sul progetto OpenStack
Panoramica sul progetto OpenStack
 
ClearOS - Linux Small Business Server
ClearOS - Linux Small Business ServerClearOS - Linux Small Business Server
ClearOS - Linux Small Business Server
 
Personal Cloud
Personal CloudPersonal Cloud
Personal Cloud
 
Abusing HTML 5 Client-side Storage
Abusing HTML 5 Client-side StorageAbusing HTML 5 Client-side Storage
Abusing HTML 5 Client-side Storage
 
Back to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizioBack to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizio
 
Appunti di big data
Appunti di big dataAppunti di big data
Appunti di big data
 
Clustering Magento
Clustering MagentoClustering Magento
Clustering Magento
 
Design Patterns - Enterprise Patterns (part 2)
Design Patterns - Enterprise Patterns (part 2)Design Patterns - Enterprise Patterns (part 2)
Design Patterns - Enterprise Patterns (part 2)
 
Lezione 7 del 21 febbraio 2012 - CLOUD STORAGE PER USO PERSONALE
Lezione 7 del 21 febbraio 2012 - CLOUD STORAGE PER USO PERSONALELezione 7 del 21 febbraio 2012 - CLOUD STORAGE PER USO PERSONALE
Lezione 7 del 21 febbraio 2012 - CLOUD STORAGE PER USO PERSONALE
 
Sogei - Guardigli Disaster Recovery E Business Continuity Nella It Nov 2006v2
Sogei - Guardigli Disaster Recovery E Business Continuity Nella It Nov 2006v2Sogei - Guardigli Disaster Recovery E Business Continuity Nella It Nov 2006v2
Sogei - Guardigli Disaster Recovery E Business Continuity Nella It Nov 2006v2
 
geoSDI : dal Gis allo Scenario Web Shared, di Dimitri Dello Buono
geoSDI : dal Gis allo Scenario Web Shared, di Dimitri Dello BuonogeoSDI : dal Gis allo Scenario Web Shared, di Dimitri Dello Buono
geoSDI : dal Gis allo Scenario Web Shared, di Dimitri Dello Buono
 
JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)
 

More from lostrettodigitale

Lo Stretto Digitale @ Maker DevLab 2015
Lo Stretto Digitale @ Maker DevLab 2015Lo Stretto Digitale @ Maker DevLab 2015
Lo Stretto Digitale @ Maker DevLab 2015lostrettodigitale
 
Introduzione al Semantic Web pt. II
Introduzione al Semantic Web pt. IIIntroduzione al Semantic Web pt. II
Introduzione al Semantic Web pt. IIlostrettodigitale
 
Sviluppo Mobile , quali approcci?
Sviluppo Mobile , quali approcci?Sviluppo Mobile , quali approcci?
Sviluppo Mobile , quali approcci?lostrettodigitale
 
"Big Data e vissuto quotidiano" - Andrea Nucita per lo Stretto Digitale
"Big Data e vissuto quotidiano" - Andrea Nucita per lo Stretto Digitale"Big Data e vissuto quotidiano" - Andrea Nucita per lo Stretto Digitale
"Big Data e vissuto quotidiano" - Andrea Nucita per lo Stretto Digitalelostrettodigitale
 
"Big Data e vissuto quotidiano" - Claudio Camuto per lo Stretto Digitale
"Big Data e vissuto quotidiano" - Claudio Camuto per lo Stretto Digitale"Big Data e vissuto quotidiano" - Claudio Camuto per lo Stretto Digitale
"Big Data e vissuto quotidiano" - Claudio Camuto per lo Stretto Digitalelostrettodigitale
 
"Big Data e vissuto quotidiano" - Massimo Villari per lo Stretto Digitale
"Big Data e vissuto quotidiano" - Massimo Villari per lo Stretto Digitale"Big Data e vissuto quotidiano" - Massimo Villari per lo Stretto Digitale
"Big Data e vissuto quotidiano" - Massimo Villari per lo Stretto Digitalelostrettodigitale
 
"Big Data e vissuto quotidiano" - Francesco Micali per Lo Stretto Digitale
"Big Data e vissuto quotidiano" - Francesco Micali per Lo Stretto Digitale"Big Data e vissuto quotidiano" - Francesco Micali per Lo Stretto Digitale
"Big Data e vissuto quotidiano" - Francesco Micali per Lo Stretto Digitalelostrettodigitale
 
Presentazione lo-stretto-digitale
Presentazione lo-stretto-digitalePresentazione lo-stretto-digitale
Presentazione lo-stretto-digitalelostrettodigitale
 

More from lostrettodigitale (10)

Lo Stretto Digitale @ Maker DevLab 2015
Lo Stretto Digitale @ Maker DevLab 2015Lo Stretto Digitale @ Maker DevLab 2015
Lo Stretto Digitale @ Maker DevLab 2015
 
Introduzione al Semantic Web pt. II
Introduzione al Semantic Web pt. IIIntroduzione al Semantic Web pt. II
Introduzione al Semantic Web pt. II
 
Microdata - pillole
Microdata - pilloleMicrodata - pillole
Microdata - pillole
 
CSS* per mobile
CSS* per mobileCSS* per mobile
CSS* per mobile
 
Sviluppo Mobile , quali approcci?
Sviluppo Mobile , quali approcci?Sviluppo Mobile , quali approcci?
Sviluppo Mobile , quali approcci?
 
"Big Data e vissuto quotidiano" - Andrea Nucita per lo Stretto Digitale
"Big Data e vissuto quotidiano" - Andrea Nucita per lo Stretto Digitale"Big Data e vissuto quotidiano" - Andrea Nucita per lo Stretto Digitale
"Big Data e vissuto quotidiano" - Andrea Nucita per lo Stretto Digitale
 
"Big Data e vissuto quotidiano" - Claudio Camuto per lo Stretto Digitale
"Big Data e vissuto quotidiano" - Claudio Camuto per lo Stretto Digitale"Big Data e vissuto quotidiano" - Claudio Camuto per lo Stretto Digitale
"Big Data e vissuto quotidiano" - Claudio Camuto per lo Stretto Digitale
 
"Big Data e vissuto quotidiano" - Massimo Villari per lo Stretto Digitale
"Big Data e vissuto quotidiano" - Massimo Villari per lo Stretto Digitale"Big Data e vissuto quotidiano" - Massimo Villari per lo Stretto Digitale
"Big Data e vissuto quotidiano" - Massimo Villari per lo Stretto Digitale
 
"Big Data e vissuto quotidiano" - Francesco Micali per Lo Stretto Digitale
"Big Data e vissuto quotidiano" - Francesco Micali per Lo Stretto Digitale"Big Data e vissuto quotidiano" - Francesco Micali per Lo Stretto Digitale
"Big Data e vissuto quotidiano" - Francesco Micali per Lo Stretto Digitale
 
Presentazione lo-stretto-digitale
Presentazione lo-stretto-digitalePresentazione lo-stretto-digitale
Presentazione lo-stretto-digitale
 

Recently uploaded

Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | BERTALLI+RUSSO
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | BERTALLI+RUSSOGiornata tecnica da Acque del Chiampo, 27 marzo 2024 | BERTALLI+RUSSO
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | BERTALLI+RUSSOServizi a rete
 
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | MAZZOLA Rosario
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | MAZZOLA RosarioGiornata tecnica da Acque del Chiampo, 27 marzo 2024 | MAZZOLA Rosario
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | MAZZOLA RosarioServizi a rete
 
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | FARINA Marco
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | FARINA MarcoGiornata tecnica da Acque del Chiampo, 27 marzo 2024 | FARINA Marco
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | FARINA MarcoServizi a rete
 
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | CESARO Marco
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | CESARO MarcoGiornata tecnica da Acque del Chiampo, 27 marzo 2024 | CESARO Marco
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | CESARO MarcoServizi a rete
 
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | COSTA Lucia
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | COSTA LuciaGiornata tecnica da Acque del Chiampo, 27 marzo 2024 | COSTA Lucia
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | COSTA LuciaServizi a rete
 
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | RUGIERO Pierpaolo
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | RUGIERO PierpaoloGiornata tecnica da Acque del Chiampo, 27 marzo 2024 | RUGIERO Pierpaolo
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | RUGIERO PierpaoloServizi a rete
 

Recently uploaded (6)

Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | BERTALLI+RUSSO
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | BERTALLI+RUSSOGiornata tecnica da Acque del Chiampo, 27 marzo 2024 | BERTALLI+RUSSO
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | BERTALLI+RUSSO
 
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | MAZZOLA Rosario
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | MAZZOLA RosarioGiornata tecnica da Acque del Chiampo, 27 marzo 2024 | MAZZOLA Rosario
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | MAZZOLA Rosario
 
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | FARINA Marco
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | FARINA MarcoGiornata tecnica da Acque del Chiampo, 27 marzo 2024 | FARINA Marco
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | FARINA Marco
 
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | CESARO Marco
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | CESARO MarcoGiornata tecnica da Acque del Chiampo, 27 marzo 2024 | CESARO Marco
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | CESARO Marco
 
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | COSTA Lucia
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | COSTA LuciaGiornata tecnica da Acque del Chiampo, 27 marzo 2024 | COSTA Lucia
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | COSTA Lucia
 
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | RUGIERO Pierpaolo
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | RUGIERO PierpaoloGiornata tecnica da Acque del Chiampo, 27 marzo 2024 | RUGIERO Pierpaolo
Giornata tecnica da Acque del Chiampo, 27 marzo 2024 | RUGIERO Pierpaolo
 

Hadoop - Introduzione all’architettura ed approcci applicativi

  • 1. Introduzione all’architettura ed approcci applicativi Messina, 21/03/2015 Dario Catalano
  • 2. Qualcosa su di me… Messina, 21/03/2015 Dario Catalano dario@catalano.email Linkedin Google+ Twitter
  • 3. Di cosa parleremo Messina, 21/03/2015 Dario Catalano • Cos’è Apache Hadoop? • Un po’ di storia • L’algoritmo Map-Reduce • L’architettura • Cloudera • Esempio Applicativo • Configurazione • Amministrazione • Sicurezza • «Estensioni» di Hadoop • Bibliografia
  • 4. Cosa è Hadoop? Messina, 21/03/2015 Dario Catalano Framework Cluster Big Data Map Reduce Distribuited File System API Fault tollerant Cloud Scalable Cost effective Extensible Flexibile Java
  • 5. Un po’ di storia Messina, 21/03/2015 Dario Catalano 2003 Google File System
  • 6. Un po’ di storia Messina, 21/03/2015 Dario Catalano 2004 Google Map Reduce
  • 7. Un po’ di storia Messina, 21/03/2015 Dario Catalano 2005 Doug Cutting Mike Cafarella
  • 8. Un po’ di storia Messina, 21/03/2015 Dario Catalano 2006 2011 2013
  • 9. Map Reduce » Step I Messina, 21/03/2015 Dario Catalano … … … … … Mapper Mapper Mapper Mapper Datas … Intermediate Datas Record Record Record Record Record Record Record Partitionated Datas Record Record Record Record Record Record Record Record Record Map Tasks (K1,Va) (K2,Vb) (K3,Vc) (K4,Vd) (K5,Ve) (K6,Vf) … (K1,Vc) (K5,Vc) (K5,Vf) (K2,Vd) (K1,Ve) (K1,Vf) … (K3,Va) (K2,Va) (K1,Vc) (K7,Vd) (K2,Vb) (K3,Vf) … (K4,Va) (K2,Vb) (K8,Vc) (K7,Vf) (K2,Ve) (K5,Vf)
  • 10. Map Reduce » Step II Messina, 21/03/2015 Dario Catalano … Intermediate Datas (K1,Va) (K2,Vb) (K3,Vc) (K4,Vd) (K5,Ve) (K6,Vf) … (K1,Vc) (K5,Vc) (K5,Vf) (K2,Vd) (K1,Ve) (K1,Vf) … (K3,Va) (K2,Va) (K1,Vc) (K7,Vd) (K2,Vb) (K3,Vf) … (K4,Va) (K1,Vb) (K8,Vc) (K7,Vf) (K2,Ve) (K5,Vf) K1 Va Ve K2 K3 K4 Vf Vb K5 Ve Vf Vc Vf K6 K7 Vd K8 Vc Vc Vb Vc Va Vd Ve Vb Vc Va Vf Vd Va Vf Vf Intermediate DatasShuffle, Partitionig and Sorting
  • 11. Map Reduce » Step III Messina, 21/03/2015 Dario Catalano K1 Va Ve K2 K3 K4 Vf Vb K5 Ve Vf Vc Vf K6 K7 Vd K8 Vc Vc Vb Vc Va Vd Ve Vb Vc Va Vf Vd Va Vf Vf Intermediate Datas Reducer … Record Record Reducer … Record Record Reduce Tasks … Record Record Record Record Record Record Record Record Output Datas
  • 12. Map Reduce » Esempio Messina, 21/03/2015 Dario Catalano the, 3 brown,2 fox, 2 how, 1 now, 1 quick, 1 ate, 1 mouse, 1 cow, 1
  • 13. Architettura » Visione ad alto livello Messina, 21/03/2015 Dario Catalano HDFS MapReduce Java Client
  • 14. Architettura » HDFS Messina, 21/03/2015 Dario Catalano • Distribuito • Master/Slave • Blocchi solitamente >= 64 Mb (grande mole di dati) • Ridondante (3 copie) • Facilmente scalabile
  • 15. Architettura » HDFS Messina, 21/03/2015 Dario Catalano
  • 16. Architettura » HDFS » NameNode Messina, 21/03/2015 Dario Catalano • Ruolo Master • Responsabile dei Metadata  Struttura directory, file e relativi permessi  Posizione dei blocchi  Stato dei files  Identità dei DataNode caricata al boot  Filename dei blocchi nei fs locale dei DataNode • Dati in memoria
  • 17. Architettura » HDFS » Scrittura file Messina, 21/03/2015 Dario Catalano
  • 18. Architettura » HDFS » Lettura file Messina, 21/03/2015 Dario Catalano
  • 19. Architettura » HDFS » Secondary NameNode Messina, 21/03/2015 Dario Catalano
  • 20. Architettura » HDFS » Comandi Messina, 21/03/2015 Dario Catalano hadoop fs –cat file:///file2 hadoop fs –mkdir /user/hadoop/dir1  /user/hadoop/dir2 hadoop fs –copyFromLocal <fromDir> <toDir> hadoop fs –put <localfile>  hdfs://nn.example.com/hadoop/hadoopfile hadoop fs –ls /user/hadoop/dir1 hadoop fs –cat hdfs://nn1.example.com/file1 hadoop fs –get /user/hadoop/file <localfile> sudo hadoop jar <jarFileName> <method> <fromDir>  <toDir> 
  • 21. Architettura » HDFS » Affidabilità Messina, 21/03/2015 Dario Catalano • DataNode Heartbeat • Trade-off replicazione blocchi (1 locale e 2 in un altro rack)  Fattore di replicazione configurabile per file (in heartbeat) • Checksum dei blocchi • Cancellazione: Trash directory (6 ore) » Cancellazione fisica • NameNode collo di bottiglia in Hadoop 1.x  Dimensioni dei metadati  Mancanza di replicazione
  • 22. Architettura » Map Reduce v1 Messina, 21/03/2015 Dario Catalano
  • 23. Architettura » Map Reduce v1 Messina, 21/03/2015 Dario Catalano
  • 24. Architettura » Map Reduce v1 Messina, 21/03/2015 Dario Catalano • Master / Slave • TaskTracker:  Creazione task slot-based  JVM fork  Heartbeat • JobTracker:  Responsabile/Gestore del Job  Colloquia con il NameNode  Effettua recovery di task falliti  Punto debole dell’architettura
  • 25. Architettura » Master / Slave Messina, 21/03/2015 Dario Catalano • Hdfs e MapReduce nello stesso nodo =  minore traffico di rete = maggiore  performance
  • 26. Architettura » YARN Messina, 21/03/2015 Dario Catalano • Container  Unità computazionale  Controlla CPU e RAM assegnate • Node Manager  Riceve richieste del RS (Slave)  Gestisce ciclo vita dei container  Gestisce logging e servizi ausiliari • Resource Manager:  Riceve richieste da AM  Schedula con politiche variabili (Fair, Capacity,…) • Application Master  Dipende dal tipo di applicazione  Separazione delle responsabilità = Scalabilità
  • 27. Architettura » YARN Messina, 21/03/2015 Dario Catalano 1. CL -> RM (inizio applicazione) 2. RM -> NM (richiesta nuovo AM) 3. AM -> RM (registrazione) 4. AM -> RM (richiesta risorse) 5. AM -> NM(s) (avvio containers) 6. CS -> AM (containers eseguono il codice ed inviano checks) 7. CL -> AM (client chiede stato applicazione) 8. AM -> RM (shutdown)
  • 28. Architettura » YARN Messina, 21/03/2015 Dario Catalano Hadoop 1.x Hadoop 2.x Tipo di elaborazione Solo Map Reduce Implementazioni multiple Gestione delle risorse e delle elaborazioni Unica (JobTracker) Separata (ResourceManager e  Application Master) Scalabilità di HDFS Singolo NameNode HDFS Federation Affidabilità di HDFS Singolo NameNode HDFS High Availability Limite Nodi 4.000 10.000
  • 29. HostHost Processo Modalità di Esecuzione Messina, 21/03/2015 Dario Catalano Singolo Processo NameNode Job Tracker Task Tracker Pseudo Distribuita Data Node Secondary NameNode Host NN JT Host DN TT M Host DN TT R Distribuita
  • 30. Prima del codice… Messina, 21/03/2015 Dario Catalano • Servizi, architetture e formazione su Apache Hadoop • Apache Main Contributor • CDH (Cloudera Distribution with Hadoop)
  • 31. Cloudera Quickstart VM Messina, 21/03/2015 Dario Catalano • CDH 5 è basata su Linux Centos 6.4 • Contiene:  HDFS, MapReduce, Hadoop Common, Hbase, Hive, Pig, Oozie, Sqoop, Flume,  ZooKeeper, Hue, Whirr, Mahout, Cloudera Manager • Disponibile per VMWare, KVM, Oracle Virtualbox • Requisititi Minimi:  4 Gb RAM (8 raccomandati)  64 bit host OS • Scaricabile da:  http://www.cloudera.com/content/cloudera/en/downloads/quickstart_vms/ cdh-5-3-x.html
  • 32. Word Count API «vecchia» Messina, 21/03/2015 Dario Catalano import java.io.IOException; ... import org.apache.hadoop.mapred.TextOutputFormat; public class WordCountOldAPI { public static void main(String[] args) throws Exception { JobConf conf = new JobConf(WordCountOldAPI.class); conf.setJobName("wordcount"); conf.setOutputKeyClass(Text.class); conf.setOutputValueClass(IntWritable.class); conf.setMapperClass(MyMapper.class); conf.setCombinerClass(MyReducer.class); conf.setReducerClass(MyReducer.class); conf.setNumReduceTasks(1); conf.setInputFormat(TextInputFormat.class); conf.setOutputFormat(TextOutputFormat.class); FileInputFormat.setInputPaths(conf, new Path(args[0])); FileOutputFormat.setOutputPath(conf, new Path(args[1])); JobClient.runJob(conf); }
  • 33. Word Count API «vecchia» Messina, 21/03/2015 Dario Catalano public static class MyMapper extends MapReduceBase implements Mapper<LongWritable, Text, Text,  IntWritable> { public void map(LongWritable key, Text value,OutputCollector<Text, IntWritable> output, Reporter  reporter) throws IOException { output.collect(new Text(value.toString()), new IntWritable(1)); } } public static class MyReducer extends MapReduceBase implements Reducer<Text, IntWritable, Text,  IntWritable> { public void reduce(Text key, Iterator<IntWritable> values, OutputCollector<Text, IntWritable> output,  Reporter reporter) throws IOException { int sum = 0; while (values.hasNext()) { sum += values.next().get(); } output.collect(key, new IntWritable(sum)); } } }
  • 34. La «nuova» API Messina, 21/03/2015 Dario Catalano • Introdotta con Hadoop 0.20 (2009) • Nuovo package • Più concisa e compatta • Più pulita e leggibile • Permette un controllo del Job più completo ed accurato • Non confondere versione API con versione dell’architettura (1.x o 2.x)
  • 35. Word Count API «nuova» Messina, 21/03/2015 Dario Catalano import java.io.IOException; ... import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat; public class WordCountNewAPI { public static void main(String[] args) throws Exception { Job job = Job.getInstance(new Configuration()); job.setJarByClass(WordCountNewAPI.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); job.setMapperClass(MyMapper.class); job.setReducerClass(MyReducer.class); job.setInputFormatClass(TextInputFormat.class); job.setOutputFormatClass(TextOutputFormat.class); FileInputFormat.setInputPaths(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); boolean status = job.waitForCompletion(true); if (status) System.exit(0) else System.exit(1); }
  • 36. Word Count API «nuova» Messina, 21/03/2015 Dario Catalano public static class MyMapper extends Mapper<LongWritable, Text, Text, IntWritable> { public void map(LongWritable key, Text value, Context context) throws IOException,  InterruptedException { String w = value.toString(); context.write(new Text(w), new IntWritable(1)); } } public static class MyReducer extends Reducer<Text, IntWritable, Text, IntWritable> { public void reduce(Text key, Iterable<IntWritable> values,Context context) throws IOException,  InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get(); } context.write(key, new IntWritable(sum)); } } }
  • 37. E adesso… Messina, 21/03/2015 Dario Catalano …un po’ di pratica
  • 38. Configurazione Messina, 21/03/2015 Dario Catalano • Configurazione XML per ogni nodo • *‐default.xml nei JAR di Hadoop, *‐site.xml nella cartella di configurazione • 4 tipi file principali:  core‐*.xml  hdfs‐*.xml  mapred‐*.xml  yarn‐*.xml • Precedenza delle proprietà definite in varie posizioni:  Oggetto Job o JobConf all’interno del codice  File *‐site.xml all’interno del nodo Client  File *‐site.xml all’interno del nodo Slave  File *‐default.xml nei JAR (uguali in tutti i nodi)
  • 39. Amministrazione e Monitoring Messina, 21/03/2015 Dario Catalano • Command Line Interface • Log files • Interfacce Web per ogni processo • YARN REST API • JMX • Manager Tools  Cloudera Manager  Ambari
  • 40. Sicurezza Messina, 21/03/2015 Dario Catalano • Inizialmente trascurata (solo dati pubblici) • Hadoop solo su reti private • Sviluppo software di terze parti:  Cloudera Sentry, IBM InfoSphere Optim Data Masking, Intel's secure Hadoop distribution, DataStax Enterprise, DataGuise for Hadoop,ecc. • Dalla versione 0.20.x:  Autenticazione tra servizi Kerberos  Autenticazione Web Console personalizzabile  HDFS Permessi ed ACL  Autenticazioni Token based per diminuire overhead  Possibile crittazione delle connessioni • Problemi ancora da risolvere  HDFS non crittato  Difficile integrazione in ambienti non Kerberos  Regole di autorizzazione non sufficientemente flessibili  Modello complessivo della sicurezza complicato • Intel Project Rhino
  • 42. HBase Messina, 21/03/2015 Dario Catalano • NoSql Datastore • Chiavi multidimensionali • Schema dinamico • Obiettivo : massime performance • Visione logica: Tabelle, righe, colonne e famiglie di colonne
  • 43. HIVE Messina, 21/03/2015 Dario Catalano • Database • Data wharehouse e BI • Linguaggio dichiarativo • Tabelle -> File su HDFS • SQL-like query -> MapReduce • Tabelle (managed ed esterne), viste, partizioni, … = flessibilità organizzativa.
  • 44. Pig Messina, 21/03/2015 Dario Catalano • Scripting • Data flow e Pipelining • ETL oriented • Linguaggio procedurale • LOAD, FILTER, JOIN, GROUP, STORE,… = controllo del dato step by step
  • 45. HCatalog Messina, 21/03/2015 Dario Catalano • Integrazione di varie tecnologie Hadoop based (HIVE, Pig, MapReduce) • Astrazione per rendere uniformi BI e ETL • REST API
  • 47. HAMA Messina, 21/03/2015 Dario Catalano • Bulk Synchronous Parallel • Yarn-based • Fasi  Processing  Exchange Messages  Barrier Synchronization
  • 48. Spark Messina, 21/03/2015 Dario Catalano • Obiettivo performance (10x più veloce di MR) • Scala based (Java, Scala, Python API) • Resilient Distributed Dataset (Scala Seq) • Hadoop, Mesos, Stand- alone
  • 49. Mahout Messina, 21/03/2015 Dario Catalano • Machine Learning (IA)  Classificazione  Clusterizzazione  Fuzzy Logic  Neural Network  … • Data Mininig • 2 Fasi  Apprendimento  Applicazione
  • 50. Bibliografia Messina, 21/03/2015 Dario Catalano • Libri  Pro Hadoop Second Edition, Sameer Wadkar, Madhu Siddalingaiah, Jason Venner , Apress  Hadoop: The Definitive Guide Third Edition, Tom White, O’ Reilly • Web  Apache Hadoop Official Site, https://hadoop.apache.org/  What is Hadoop?, http://www-01.ibm.com/software/data/infosphere/hadoop/  Cloudera, http://www.cloudera.com/  Introduzione ad Hadoop, https://paolobernardi.wordpress.com/2011/10/09/introduzione-ad- hadoop/  Introduction to Hadoop 2.0 and advantages of Hadoop 2.0, http://www.edureka.co/blog/introduction-to-hadoop-2-0-and-advantages-of-hadoop-2-0/  The New Hadoop API 0.20.x, http://sonerbalkir.blogspot.it/2010/01/new-hadoop-api-020x.html  Big Data Security: The Evolution of Hadoop’s Security Model, http://www.infoq.com/articles/HadoopSecurityModel