SlideShare a Scribd company logo
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 ReduceDistribuited 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

Oltre il modello relazionale
Oltre il modello relazionaleOltre il modello relazionale
Oltre il modello relazionale
fcami87
 
Introduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big DataIntroduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big Data
Vincenzo Manzoni
 
Data grid
Data gridData grid
Data grid
Ugo Landini
 
Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Codemotion
 
Ottimizzazione della gestione dei dati sul cloud
Ottimizzazione della gestione dei dati sul cloudOttimizzazione della gestione dei dati sul cloud
Ottimizzazione della gestione dei dati sul cloud
Nicolò Carandini
 
JBoss Data Grid Tech Lab
JBoss Data Grid Tech LabJBoss Data Grid Tech Lab
JBoss Data Grid Tech Lab
Ugo Landini
 
The Google File System
The Google File SystemThe Google File System
The Google File System
Alessandra Zullo
 
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
Giovanni Grano
 
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL ClusterMySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster
Par-Tec S.p.A.
 
Archeo foss 2012 slides 1
Archeo foss 2012 slides 1Archeo foss 2012 slides 1
Archeo foss 2012 slides 1
CSP Scarl
 
Benchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQLBenchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQL
EDB
 
Introduzione a google_app_engine_datastore
Introduzione a google_app_engine_datastoreIntroduzione a google_app_engine_datastore
Introduzione a google_app_engine_datastore
firenze-gtug
 
Quanto mi costa SQL Pool Serverless Synapse
Quanto mi costa SQL Pool Serverless SynapseQuanto mi costa SQL Pool Serverless Synapse
Quanto mi costa SQL Pool Serverless Synapse
Marco Pozzan
 
Introduzione al framework dl4j Antonio berti
Introduzione al framework dl4j Antonio bertiIntroduzione al framework dl4j Antonio berti
Introduzione al framework dl4j Antonio berti
Deep Learning Italia
 
Glusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileGlusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatile
Ivan Rossi
 

What's hot (15)

Oltre il modello relazionale
Oltre il modello relazionaleOltre il modello relazionale
Oltre il modello relazionale
 
Introduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big DataIntroduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big Data
 
Data grid
Data gridData grid
Data grid
 
Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015
 
Ottimizzazione della gestione dei dati sul cloud
Ottimizzazione della gestione dei dati sul cloudOttimizzazione della gestione dei dati sul cloud
Ottimizzazione della gestione dei dati sul cloud
 
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
 
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
 
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL ClusterMySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster
 
Archeo foss 2012 slides 1
Archeo foss 2012 slides 1Archeo foss 2012 slides 1
Archeo foss 2012 slides 1
 
Benchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQLBenchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQL
 
Introduzione a google_app_engine_datastore
Introduzione a google_app_engine_datastoreIntroduzione a google_app_engine_datastore
Introduzione a google_app_engine_datastore
 
Quanto mi costa SQL Pool Serverless Synapse
Quanto mi costa SQL Pool Serverless SynapseQuanto mi costa SQL Pool Serverless Synapse
Quanto mi costa SQL Pool Serverless Synapse
 
Introduzione al framework dl4j Antonio berti
Introduzione al framework dl4j Antonio bertiIntroduzione al framework dl4j Antonio berti
Introduzione al framework dl4j Antonio berti
 
Glusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileGlusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatile
 

Viewers also liked

Hug Italy- 30 Sept 2014, Milan
Hug Italy- 30 Sept 2014, MilanHug Italy- 30 Sept 2014, Milan
Hug Italy- 30 Sept 2014, Milan
Engineering Ingegneria Informatica SPA
 
Hug Milano September 2014: Hadoop Summit Europe Impressions
Hug Milano September 2014: Hadoop Summit Europe ImpressionsHug Milano September 2014: Hadoop Summit Europe Impressions
Hug Milano September 2014: Hadoop Summit Europe Impressions
Engineering Ingegneria Informatica SPA
 
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
 
How many ways to monitor oracle golden gate-Collaborate 14
How many ways to monitor oracle golden gate-Collaborate 14How many ways to monitor oracle golden gate-Collaborate 14
How many ways to monitor oracle golden gate-Collaborate 14
Bobby Curtis
 
MySQL Intro JSON NoSQL
MySQL Intro JSON NoSQLMySQL Intro JSON NoSQL
MySQL Intro JSON NoSQL
Mark Swarbrick
 
Using Hadoop and Hive to Optimize Travel Search , WindyCityDB 2010
Using Hadoop and Hive to Optimize Travel Search, WindyCityDB 2010Using Hadoop and Hive to Optimize Travel Search, WindyCityDB 2010
Using Hadoop and Hive to Optimize Travel Search , WindyCityDB 2010
Jonathan Seidman
 
How Big Data and Hadoop Integrated into BMC ControlM at CARFAX
How Big Data and Hadoop Integrated into BMC ControlM at CARFAXHow Big Data and Hadoop Integrated into BMC ControlM at CARFAX
How Big Data and Hadoop Integrated into BMC ControlM at CARFAX
BMC Software
 
Hadoop HDFS Detailed Introduction
Hadoop HDFS Detailed IntroductionHadoop HDFS Detailed Introduction
Hadoop HDFS Detailed Introduction
Hanborq Inc.
 
Hadoop HDFS Architeture and Design
Hadoop HDFS Architeture and DesignHadoop HDFS Architeture and Design
Hadoop HDFS Architeture and Design
sudhakara st
 

Viewers also liked (9)

Hug Italy- 30 Sept 2014, Milan
Hug Italy- 30 Sept 2014, MilanHug Italy- 30 Sept 2014, Milan
Hug Italy- 30 Sept 2014, Milan
 
Hug Milano September 2014: Hadoop Summit Europe Impressions
Hug Milano September 2014: Hadoop Summit Europe ImpressionsHug Milano September 2014: Hadoop Summit Europe Impressions
Hug Milano September 2014: Hadoop Summit Europe Impressions
 
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
 
How many ways to monitor oracle golden gate-Collaborate 14
How many ways to monitor oracle golden gate-Collaborate 14How many ways to monitor oracle golden gate-Collaborate 14
How many ways to monitor oracle golden gate-Collaborate 14
 
MySQL Intro JSON NoSQL
MySQL Intro JSON NoSQLMySQL Intro JSON NoSQL
MySQL Intro JSON NoSQL
 
Using Hadoop and Hive to Optimize Travel Search , WindyCityDB 2010
Using Hadoop and Hive to Optimize Travel Search, WindyCityDB 2010Using Hadoop and Hive to Optimize Travel Search, WindyCityDB 2010
Using Hadoop and Hive to Optimize Travel Search , WindyCityDB 2010
 
How Big Data and Hadoop Integrated into BMC ControlM at CARFAX
How Big Data and Hadoop Integrated into BMC ControlM at CARFAXHow Big Data and Hadoop Integrated into BMC ControlM at CARFAX
How Big Data and Hadoop Integrated into BMC ControlM at CARFAX
 
Hadoop HDFS Detailed Introduction
Hadoop HDFS Detailed IntroductionHadoop HDFS Detailed Introduction
Hadoop HDFS Detailed Introduction
 
Hadoop HDFS Architeture and Design
Hadoop HDFS Architeture and DesignHadoop HDFS Architeture and Design
Hadoop HDFS Architeture and Design
 

Similar to Apache Hadoop: Introduzione all’architettura ed approcci applicativi

Drupal 7
Drupal 7Drupal 7
DDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continuaDDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continua
Dominopoint - Italian Lotus User Group
 
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
 
MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009
Massimiliano Dessì
 
Master Informatica del Testo – Edizione elettronica - Arezzo - 2012
Master Informatica del Testo – Edizione elettronica - Arezzo - 2012Master Informatica del Testo – Edizione elettronica - Arezzo - 2012
Master Informatica del Testo – Edizione elettronica - Arezzo - 2012
Walter Volpi
 
MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009
Massimiliano Dessì
 
MongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework MeetingMongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework Meeting
guest67beeb9
 
KDE Plasma widgets
KDE Plasma widgetsKDE Plasma widgets
KDE Plasma widgets
Pietro Lerro
 
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
 
Ddive Xpage852
Ddive Xpage852Ddive Xpage852
Simple Cloud API: accesso semplificato al cloud computing
Simple Cloud API: accesso semplificato al cloud computingSimple Cloud API: accesso semplificato al cloud computing
Simple Cloud API: accesso semplificato al cloud computing
Francesca1980
 
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
azuredayit
 
JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)jampslide
 
Spring, IBatis e Transazioni Aop Nel Jug Avis Web
Spring, IBatis e Transazioni Aop Nel Jug Avis WebSpring, IBatis e Transazioni Aop Nel Jug Avis Web
Spring, IBatis e Transazioni Aop Nel Jug Avis Web
Massimiliano Dessì
 
[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
Alessandro Alpi
 
Alfresco Day Roma 2015: Big Repository
Alfresco Day Roma 2015: Big RepositoryAlfresco Day Roma 2015: Big Repository
Alfresco Day Roma 2015: Big Repository
Alfresco Software
 
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
Par-Tec S.p.A.
 
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...gwalter85
 

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

Drupal 7
Drupal 7Drupal 7
Drupal 7
 
DDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continuaDDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continua
 
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...
 
MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009
 
Master Informatica del Testo – Edizione elettronica - Arezzo - 2012
Master Informatica del Testo – Edizione elettronica - Arezzo - 2012Master Informatica del Testo – Edizione elettronica - Arezzo - 2012
Master Informatica del Testo – Edizione elettronica - Arezzo - 2012
 
MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009
 
MongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework MeetingMongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework Meeting
 
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
 
KDE Plasma widgets
KDE Plasma widgetsKDE Plasma widgets
KDE Plasma widgets
 
Design Patterns - Enterprise Patterns (part 2)
Design Patterns - Enterprise Patterns (part 2)Design Patterns - Enterprise Patterns (part 2)
Design Patterns - Enterprise Patterns (part 2)
 
Ddive Xpage852
Ddive Xpage852Ddive Xpage852
Ddive Xpage852
 
Simple Cloud API: accesso semplificato al cloud computing
Simple Cloud API: accesso semplificato al cloud computingSimple Cloud API: accesso semplificato al cloud computing
Simple Cloud API: accesso semplificato al cloud computing
 
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
 
JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)
 
Spring, IBatis e Transazioni Aop Nel Jug Avis Web
Spring, IBatis e Transazioni Aop Nel Jug Avis WebSpring, IBatis e Transazioni Aop Nel Jug Avis Web
Spring, IBatis e Transazioni Aop Nel Jug Avis Web
 
Slides marcosabatini
Slides marcosabatiniSlides marcosabatini
Slides marcosabatini
 
[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
 
Alfresco Day Roma 2015: Big Repository
Alfresco Day Roma 2015: Big RepositoryAlfresco Day Roma 2015: Big Repository
Alfresco Day Roma 2015: Big Repository
 
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
 
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...
 

Apache 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 ReduceDistribuited 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