Esercitazione. programmazione MapReduce con Hadoop v1.2.1

Размер: px
Начинать показ со страницы:

Download "Esercitazione. programmazione MapReduce con Hadoop v1.2.1"

Транскрипт

1 Esercitazione programmazione MapReduce con Hadoop v

2 Prologo Cluster di VM accessibili tramite un gateway con reverse ssh passwordless ssh (Secure SHell) protocollo di rete per stabilire una connessione sicura alla shell di una macchina remota ssh ssh passwordless: connessione ssh con injection di una chiave ssh privata che assicura la nostra identità senza bisogno di una password ssh i /path/to/id_rsa <utente>@<ip_address>! reverse ssh tunneling: meccanismo per creare un tunnel ssh che consente l accesso alle macchine di una sottorete tramite gateway 2

3 Prologo: reverse ssh tunneling ssh -p !! gateway ip pubblico ssh -p !! master Grp1 ip: X master Grp2 ip: Y 3

4 Architettura Hadoop v1 (generale) MapReduce Runtime (coordinatore) Hadoop Distributed File System (HDFS) Jobtracker Namenode master Tasktracker Datanode slave Tasktracker Datanode slave Tasktracker Datanode slave 4

5 Architettura per l esercitazione 1 nodo master/slave e 2 slave Jobtracker Namenode Tasktracker Datanode slave Tasktracker Datanode master/slave ssh ubuntu@ x!! Tasktracker Datanode slave 5

6 Provare Loggarsi nel master :~$ ssh i id_rsa ubuntu@ p XXXXX Cambiare utente: :~$ sudo su hadoop! verificare quali processi dell architettura hadoop sono in esecuzione: :~$ jps HDFS: verificare lo stato dei datanode (slave) e il loro indirizzo ip :~$ hadoop dfsadmin -report collegarsi ad uno slave :~$ ssh ubuntu@ xx verificare quali processi sono in esecuzione :~$ jps 6

7 esempio WordCount Contare le occorrenze delle parole in un testo arbitrariamente lungo 1. Il documento è spezzettato in chunk. 2. map: per ogni parola emette <word,1>! 3. reduce: somma le occorrenze associate alla stessa chiave e emette <word,sum()> 7

8 esempio WordCount public class WordCount {! public static class TokenizerMapper extends! Mapper<Object, Text, Text, IntWritable>{ public static class IntSumReducer extends! Reducer<Text,IntWritable,Text,IntWritable>{ public static void main(string[] args) { gli oggetti spediti dai mapper ai reducer devono! implementare un protocollo di serializzazione. le chiavi devono implementare WritableComparable e i value devono implementare Writable! 8

9 esempio WordCount public static void main(string[] args) {! //controllo argomenti! Job job = new Job(new Configuration(),"word count");! //job.setnumreducetasks(2);! job.setjarbyclass(wordcount.class);! job.setmapperclass(tokenizermapper.class);! job.setreducerclass(intsumreducer.class);! job.setoutputkeyclass(text.class);! job.setoutputvalueclass(intwritable.class);! FileInputFormat.addInputPath(job, new Path(args[0]));! FileOutputFormat.setOutputPath(job, new Path(args[1]));! System.exit(job.waitForCompletion(true)? 0 : 1);! 9

10 WordCount main public static void main(string[] args) {! //controllo argomenti! Job job = new Job(new Configuration(),"word count");! //job.setnumreducetasks(2);! job.setjarbyclass(wordcount.class);! cartelle job.setmapperclass(tokenizermapper.class);! di input job.setreducerclass(intsumreducer.class);! e output job.setoutputkeyclass(text.class);! hdfs job.setoutputvalueclass(intwritable.class);! FileInputFormat.addInputPath(job, new Path(args[0]));! FileOutputFormat.setOutputPath(job, new Path(args[1]));! System.exit(job.waitForCompletion(true)? 0 : 1);! 10

11 WordCount mapper public static class TokenizerMapper! extends Mapper<Object, Text, Text, IntWritable>{! private final static IntWritable one = new IntWritable(1);! private Text word = new Text();! public void map(object key, Text val, Context context)! throws IOException, InterruptedException {! StringTokenizer itr=new StringTokenizer(val.toString());! while (itr.hasmoretokens()) {! word.set(itr.nexttoken());!! //generate itermediate key/value pair:! context.write(word, one);! 11

12 WordCount reducer public static class IntSumReducer! extends Reducer<Text,IntWritable,Text,IntWritable> {! private IntWritable result = new IntWritable();! public void reduce(text key, Iterable<IntWritable> val,! Context context) throws IOException, InterruptedException {! int sum = 0;! for (IntWritable v : val) {! sum += v.get();! result.set(sum);! context.write(key, result);! 12

13 Predisporre il test vediamo il contenuto di hdfs: :~$ hadoop dfs ls prendo un file di esempio: [Ulisse, James Joice] :~$ wget :~$ unzip 4300.zip creo una directory in hdfs: :~$ hadoop dfs mkdir indir! copio il file in hdfs: :~$ hadoop dfs put 4300.txt indir/! 13

14 Compilazione ed esecuzione compilazione: :~$ javac -classpath /usr/share/hadoop/hadoopcore jar -d wordcount_classes WordCount.java genero il jar :~$ jar -cvf wordcount.jar C wordcount_classes/. eseguo: :~$ hadoop jar wordcount.jar org.apache.hadoop.examples.wordcount indir outdir verifico l output: :~$ hadoop dfs cat outdir/part head -150! prendo i risultati da hdfs :~$ hadoop dfs get outdir/part

15 Esercizio 1 Modificare WordCount: creare un programma WordLengthCount.java che conta le occorrenze delle parole con una certa lunghezza => Il reducer deve emettere coppie <N,M> N = numero di lettere M = numero di parole con N lettere nel file di input! NB: creare un progetto eclipse e importare le librerie di hadoop per avere build automatico! poi compilazione ed esecuzione sul master 15

16 Esercizio 2 Modificare WordLegthCount: creare un programma WordByLength.java che crea un inverted index sulle parole con chiave la loro lunghezza. => Il reducer deve emettere coppie <N,S> N = numero di lettere S = stringa che contiene tutte le parole di N lettere nel file di input ( word1 word2 word3 ) 16

MapReduce: teoria e implementazione

MapReduce: teoria e implementazione MapReduce: teoria e implementazione 1 Genesi nasce nel 2004 [ MapReduce: simplified Data Processing on Large Clusters, Dean, Ghemawat. Google Inc.] nasce dall esigenza di eseguire problemi semplici su

Подробнее

Programmare Apache Hadoop con Python

Programmare Apache Hadoop con Python categoria: Programmazione Programmare Apache Hadoop con Python Hadoop è il framework Map/Reduce Operi Sourcepiù diffuso: vediamo come sfruttarlo anche con Python, riducendo i tempi di sviluppo Simone Leo

Подробнее

K-Means Data Clustering

K-Means Data Clustering Università degli Studi del Sannio Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Corso di Programmazione Concorrente PROGETTO: K-Means Data Clustering Studenti Flavio Pace

Подробнее

MapReduce. Progettazione del Software a.a. 2012/13. Università degli Studi di Milano Dept. of Computer Science. Matteo Camilli

MapReduce. Progettazione del Software a.a. 2012/13. Università degli Studi di Milano Dept. of Computer Science. Matteo Camilli Università degli Studi di Milano Dept. of Computer Science MapReduce Matteo Camilli [email protected] http://camilli.di.unimi.it Progettazione del Software a.a. 2012/13 1 Motivazioni Vogliamo processare

Подробнее

Big Data: tecnologie, metodologie e applicazioni per l analisi dei dati massivi

Big Data: tecnologie, metodologie e applicazioni per l analisi dei dati massivi Big Data: tecnologie, metodologie e applicazioni per l analisi dei dati massivi Ministero Dello Sviluppo Economico Istituto Superiore delle Comunicazioni e delle Tecnologie dell Informazione Seminario

Подробнее

Hadoop Analyzer JR. Università degli studi di salerno. Progetto di Sistemi Operativi Avanzati 2014-2015

Hadoop Analyzer JR. Università degli studi di salerno. Progetto di Sistemi Operativi Avanzati 2014-2015 Università degli studi di salerno Progetto di Sistemi Operativi Avanzati 2014-2015 Hadoop Analyzer JR Autori: Amedeo Leo Alessio Petrozziello Simone Romano Docente Giuseppe Cattaneo Supervisore: Gianluca

Подробнее

CORSO I.F.T.S TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE

CORSO I.F.T.S TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE CORSO I.F.T.S TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE Ing. Mariano Di Claudio Lezione del 15/10/2014 1 Indice 1. Processo di analisi/elaborazione dei 1. Hadoop Caratteristiche chiave Architettura

Подробнее

Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java

Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java AA 2018/2019 Tutor Lorenzo Rosa [email protected] 2 Programma Introduzione al calcolatore e Java Linguaggio Java, basi e

Подробнее

Esercitazione n.1 13 Ottobre Obiettivi:

Esercitazione n.1 13 Ottobre Obiettivi: Esercitazione n.1 13 Ottobre 2009 Obiettivi: Introduzione al laboratorio Gestione dei pthreads: creazione: pthread_create terminazione: pthread_exit join: pthread_join Gestione dei thread java : Thread

Подробнее

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso

Подробнее

POLITECNICO DI TORINO Facoltà di Ingegneria dell Informazione Corso di Laurea in Ingegneria Informatica. Tesi di Laurea

POLITECNICO DI TORINO Facoltà di Ingegneria dell Informazione Corso di Laurea in Ingegneria Informatica. Tesi di Laurea POLITECNICO DI TORINO Facoltà di Ingegneria dell Informazione Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e sviluppo di un'architettura Big Data per dati geospaziali Relatori

Подробнее

Laboratorio di Programmazione 1 [Java]

Laboratorio di Programmazione 1 [Java] Laboratorio di Programmazione 1 [Java] Prova di esame - 7 Settembre 2010 Tempo massimo: 50 minuti Si implementino in Java le classi Tavolo e Ristorante. La classe Tavolo ha i seguenti attributi: numero

Подробнее

Indice generale. Introduzione...xiii. Gli autori...xvii. I revisori...xix

Indice generale. Introduzione...xiii. Gli autori...xvii. I revisori...xix Indice generale Introduzione...xiii Struttura del libro... xiii Cosa serve per questo libro...xiv Lo scopo del libro...xiv Convenzioni...xv Codice degli esempi...xv Gli autori...xvii I revisori...xix Capitolo

Подробнее

Esplorare e modificare il file system Compilare con gcc Lanciare un programma da linea di comando

Esplorare e modificare il file system Compilare con gcc Lanciare un programma da linea di comando Eclipse: Cos è? Utilizzare Eclipse: Creare un progetto Creare file sorgenti nel progetto Compilare Lanciare il programma Strumenti alternativi agli IDE La linea di comando su Linux Esplorare e modificare

Подробнее

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Подробнее

Laboratorio di Programmazione 1 [Java]

Laboratorio di Programmazione 1 [Java] Laboratorio di Programmazione 1 [Java] Prova di esame - 26 Gennaio 2011 Tempo massimo: 50 minuti Si implementino in Java le classi Tavolo e Pizzeria. La classe Tavolo ha i seguenti attributi: nome (una

Подробнее

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura: Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata

Подробнее

Elaborazione dati parallela con map/reduce. Roberto Congiu [email protected]

Elaborazione dati parallela con map/reduce. Roberto Congiu rcongiu@yahoo.com Elaborazione dati parallela con map/reduce Roberto Congiu [email protected] Indice delle slide Introduzione a Map/Reduce Descrizione del modello Implementazione Ottimizzazioni Introduzione Map/Reduce e

Подробнее

Programmazione distribuita in Java. Socket & Client-Server

Programmazione distribuita in Java. Socket & Client-Server Programmazione distribuita in Java Socket & Client-Server 1 Strumenti per networking Libreria java.net Socket (Astrazione per una presa di comunicazione) Serializzazione Socket Per comunicare si apre una

Подробнее

Sperimentazione del file-system distribuito HDFS in ambiente GRID. III Borsista Day, Roma, 06.12.2012

Sperimentazione del file-system distribuito HDFS in ambiente GRID. III Borsista Day, Roma, 06.12.2012 Sperimentazione del file-system distribuito HDFS in ambiente GRID Tutor: Domenico Diacono Outline Use cases Hadoop Distributed File System Test di funzionalità Sviluppo di politiche di replica dei dati

Подробнее

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]

Подробнее

/***************************** FILE: Quiz.java *****************************/ public class Quiz { private String text; private int score;

/***************************** FILE: Quiz.java *****************************/ public class Quiz { private String text; private int score; Soluzione esercizio [Quiz] a. Definizione della classe base e delle sottoclassi: /***************************** FILE: Quiz.java *****************************/ public class Quiz { private String text; private

Подробнее

Installazione. Eclipse. Workspace. Primo Avvio. Fondamenti di Informatica T2 Modulo 2. Università di Bologna A.A. 2008/2009

Installazione. Eclipse. Workspace. Primo Avvio. Fondamenti di Informatica T2 Modulo 2. Università di Bologna A.A. 2008/2009 Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 Integrated Development Environment (IDE)

Подробнее

Uso del terminale in ambiente UNIX

Uso del terminale in ambiente UNIX Uso del terminale in ambiente UNIX Non sempre è disponibile un interfaccia grafica sui computer su cui si lavora In questo caso l interazione con il calcolatore avviene attraverso l interfaccia a riga

Подробнее

Server Sequenziale. Server Concorrente. Esercitazione: Socket Java con connessione

Server Sequenziale. Server Concorrente. Esercitazione: Socket Java con connessione Esercitazione: Socket Java con connessione Sviluppare un applicazione C/S che effettui il trasferimento di un file dal client al server (put) usando una connessione. In particolare nel servizio: il client

Подробнее

Università degli studi di Salerno

Università degli studi di Salerno Università degli studi di Salerno Facoltà di Scienze Matematiche, Fisiche e Naturali Laurea Magistrale in Informatica GRENITS su HADOOP Prof: Giuseppe Cattaneo Gruppo: Giovanni Esposito Luigi Fontanella

Подробнее

Esercitazione 2: Java Thread. Java Thread. Java Thread. Un thread:

Esercitazione 2: Java Thread. Java Thread. Java Thread. Un thread: Esercitazione 2: Thread Un thread è un singolo flusso sequenziale di controllo all interno di un processo Un thread (o processo leggero) è un unità di esecuzione che condivide codice e dati con altri thread

Подробнее

GESTIONE DEGLI ERRORI

GESTIONE DEGLI ERRORI GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori

Подробнее

Cosa è importante: pom.xml Goal Plug-in Repository

Cosa è importante: pom.xml Goal Plug-in Repository Cos è Maven? Maven è un software usato principalmente per la gestione di progetti Java e build automation, ma è utile anche per gestire documentazione, report, dipendenze... Cosa è importante: pom.xml

Подробнее

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali 1 Ereditarietà, polimorfismo e altri sporchi trucchi Facciamo un esempio che ci permette di comprendere come vengono utilizzate

Подробнее

Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1

Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1 Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1 Gerarchia delle classi Una sottoclasse eredita metodi, variabili, etc. dalla superclasse... Per

Подробнее

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Подробнее

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Подробнее

appunti delle lezioni Architetture client/server: applicazioni server

appunti delle lezioni Architetture client/server: applicazioni server Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture /: applicazioni 1 La logica dei Abbiamo visto che un applicazione si connette e comunica con un applicazione mediante

Подробнее

Tecnologie e metodologie di Big Data Analytics - Apache Spark

Tecnologie e metodologie di Big Data Analytics - Apache Spark Tecnologie e metodologie di Big Data Analytics - Apache Spark Simone Angelini Fondazione Ugo Bordoni [email protected] 2 Luglio 2019 Simone Angelini (Fondazione Ugo Bordoni) Tecnologie e metodologie di

Подробнее