Esercitazione. programmazione MapReduce con Hadoop v1.2.1

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

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

Dettagli

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

Dettagli

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

Dettagli

Memoria primaria o secondaria? DFS MapReduce Scheduling & Data flow. Map Reduce. Giambattista Amati. Università di Tor Vergata.

Memoria primaria o secondaria? DFS MapReduce Scheduling & Data flow. Map Reduce. Giambattista Amati. Università di Tor Vergata. Map Reduce, Roma Sommario 1 Memoria primaria o secondaria? 2 DFS 3 MapReduce 4 Scheduling & Data flow Alcuni numeri Jeffrey Dean, Stanford talk, November 10, 2010 Dati in-memoria o su disco? Tempi di lettura

Dettagli

Le command line di Java. Esercitazioni di Sistemi Operativi III Lezione n. 2

Le command line di Java. Esercitazioni di Sistemi Operativi III Lezione n. 2 Le command line di Java Esercitazioni di Sistemi Operativi III Lezione n. 2 Esempio 1 - Punti e Segmenti Punto 2 0..n Segmento PuntoColorato Le tre classi appartengono al package geometrie. I file sorgenti

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Introduzione a Java Creare, compilare, eseguire e distribuire un programma scritto in Java Outline Applicazione di esempio: Hello World! Ciclo di sviluppo Netbeans Compilare

Dettagli

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 matteo.camilli@unimi.it http://camilli.di.unimi.it Progettazione del Software a.a. 2012/13 1 Motivazioni Vogliamo processare

Dettagli

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

Dettagli

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

Dettagli

Soluzioni distribuite per la BioInformatica nel Virtual Data 5 Aprile Center / 33

Soluzioni distribuite per la BioInformatica nel Virtual Data 5 Aprile Center / 33 Soluzioni distribuite per la BioInformatica nel Virtual Data Center Workshop GARR 2017 - Netvolution Giuseppe Cattaneo Dipartimento di Informatica Università di Salerno, I-84084, Fisciano (SA), Italy cattaneo@unisa.it

Dettagli

Classpath e Esercizi su RMI

Classpath e Esercizi su RMI Classpath e Esercizi su RMI Esercitazione di Laboratorio di Programmazione di Rete A Daniele Sgandurra Università di Pisa 26/11/2008 Classpath Quando si avvia l interprete, esso deve localizzare le classi

Dettagli

Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso

Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso AA 2015/2016 Tutor: Vincenzo Lomonaco vincenzo.lomonaco@unibo.it Programma Introduzione al calcolatore

Dettagli

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

Dettagli

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 lorenzo.rosa@unibo.it 2 Programma Introduzione al calcolatore e Java Linguaggio Java, basi e

Dettagli

public protected private private package

public protected private private package Java nascondere l implementazione G. Prencipe prencipe@di.unipi.it Introduzione Un fattore importante nella OOP è la separazione tra le cose che possono cambiare e quelle che non devono cambiare Questo

Dettagli

Laboratorio di Programmazione Laurea in Bioinformatica

Laboratorio di Programmazione Laurea in Bioinformatica Laboratorio di Programmazione Laurea in Bioinformatica Web: http://www.scienze.univr.it/fol/main?ent=oi&id=34121 Docente: Carlo Drioli Email: drioli@sci.univr.it 2007/2008 Lucidi a cura di Nicola Drago,

Dettagli

Big Data. Big Data. data that exceeds RDBMS capabilities

Big Data. Big Data. data that exceeds RDBMS capabilities Big Data Big Data data that exceeds RDBMS capabilities Big Data Origini Il termine BigData è stato coniato da Google intorno al 2004 per descrivere una quantità di dati talmente grande da non poter essere

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

INDEXING: DISTRIBUITO O MAPREDUCE? Davide Tuccilli Algoritmi Avanzati A.A. 2011/2012

INDEXING: DISTRIBUITO O MAPREDUCE? Davide Tuccilli Algoritmi Avanzati A.A. 2011/2012 INDEXING: DISTRIBUITO O MAPREDUCE? Davide Tuccilli Algoritmi Avanzati A.A. 2011/2012 Introduzione Grandi moli di dati su cui effettuiamo ricerche quotidianamente Google indicizza per il motore di ricerca

Dettagli

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori A.A. 2009/2010

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori A.A. 2009/2010 Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori l Introduzione ai Thread in Java A.A. 2009/2010 1 Thread Un thread è un flusso sequenziale di esecuzione di istruzioni all interno

Dettagli

Agenda. Agenda. Credenziali. Configurazione del Proxy (1/2) Configurazione del Proxy (2/2) Fondamenti di Informatica T2 Modulo 2

Agenda. Agenda. Credenziali. Configurazione del Proxy (1/2) Configurazione del Proxy (2/2) Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 2 Credenziali Come si accede ai PC dei

Dettagli

Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java

Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java Programmi Un programma è un insieme di istruzioni che il computer deve seguire Usiamo programmi in continuazione

Dettagli

Programmazione Concorrente e Distribuita

Programmazione Concorrente e Distribuita Programmazione Concorrente e Distribuita Esame scritto del 22 Marzo 2012 Versione K Esercizio 1 (5 punti) Si consideri il codice seguente. 1 public c l a s s Redwood extends Tree { 2 public s t a t i c

Dettagli

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

Dettagli

Automazione di test. Si presuppone la conoscenza del documento XML.pdf. Un package per i test automatizzati

Automazione di test. Si presuppone la conoscenza del documento XML.pdf. Un package per i test automatizzati Automazione di test Si presuppone la conoscenza del documento XML.pdf. Un package per i test automatizzati Il package test (fornito completo nel file test.zip) permette di automatizzare una serie di test.

Dettagli

Eccezioni Precisazioni e approfondimenti

Eccezioni Precisazioni e approfondimenti Eccezioni Precisazioni e approfondimenti Costruttore: il parametro String definisce il messaggio di errore associato all eccezione Metodi particolarmente significativi getmessage(): ritorna l istanza di

Dettagli

Fondamenti di Informatica T2 Modulo 2. Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009. Agenda

Fondamenti di Informatica T2 Modulo 2. Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009. Agenda Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 PASSO 0 Agenda Informazioni di servizio

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario API di Java Istruzione di scrittura Istruzione di lettura 21/03/2011 2 API di Java Java è un linguaggio orientato agli oggetti basato

Dettagli

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

Dettagli

Esercizi RMI. Laboratorio di Programmazione di Rete A 5/12/2007. Esercitazione di Laboratorio

Esercizi RMI. Laboratorio di Programmazione di Rete A 5/12/2007. Esercitazione di Laboratorio Esercitazione di Laboratorio 5/12/2007 Sviluppare un applicazione RMI per la gestione di un elezione. Il server esporta un insieme di metodi: public void vota(string nome): accetta come parametro il nome

Dettagli

Varie: final, visibilità, parametri di ingresso

Varie: final, visibilità, parametri di ingresso Varie: final, visibilità, parametri di ingresso Classi e metodi final È possibile impedire la creazione di sottoclassi di una certa classe definendola final Esempio: final class C {... class C1 extends

Dettagli

Elaborazione dati parallela con map/reduce. Roberto Congiu rcongiu@yahoo.com

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

Dettagli

Programmazione Concorrente e Distribuita

Programmazione Concorrente e Distribuita Programmazione Concorrente e Distribuita Esame scritto del 10 Gennaio 2012 Versione C Esercizio 1 (5 punti) 1 public class Tenor extends S i n g e r { 2 public s t a t i c S t r i n g s i n g ( ) { 3 return

Dettagli

Compute engine generici in RMI

Compute engine generici in RMI Compute engine generici in RMI Esempio: Calcolo del prodotto scalare Un unico server offre il servizio di calcolo del prodotto scalare tra vettori di interi Un client richiede al server il calcolo del

Dettagli

Corso di Reti di Calcolatori T

Corso di Reti di Calcolatori T Università degli Studi di Bologna Scuola di Ingegneria Corso di Reti di Calcolatori T Esercitazione 7 (svolta) Java RMI e Riferimenti Remoti Un RMI Registry Remoto Luca Foschini Anno accademico 2018/2019

Dettagli

Principi, Modelli e Applicazioni per Sistemi Distribuiti M

Principi, Modelli e Applicazioni per Sistemi Distribuiti M Università degli Studi di Bologna Facoltà di Ingegneria Principi, Modelli e Applicazioni per Sistemi Distribuiti M Esercitazione 2 (svolta) Socket Java con connessione Alessandro Pernafini Architettura

Dettagli

Esercitazione n 1. Obiettivi

Esercitazione n 1. Obiettivi Esercitazione n 1 Obiettivi Introduzione all utilizzo di Java Development Kit (JDK) versione 1.3 Sviluppare programmi Java tramite linea di comando Es: javac, java, jdb, javadoc Primo esempio di programma

Dettagli

Iterazioni. L istruzione while. while (condition) istruzione

Iterazioni. L istruzione while. while (condition) istruzione Iterazioni L istruzione while while (condition) istruzione Ripete l esecuzione di istruzione fino a che la condizione resta vera while (balance < targetbalance) year++; double interest = balance * rate

Dettagli

Errata Corrige di Manuale di Java 8

Errata Corrige di Manuale di Java 8 Errata Corrige di Manuale di Java 8 pag. 43 - par. 2.5.1 - primo riquadro che riporta linee di codice public class Punto { public Punto() //metodo costruttore { deve essere corretto come di seguito: public

Dettagli

Primi programmi in Java. Lezione II

Primi programmi in Java. Lezione II Primi programmi in Java Lezione II Il processo di sviluppo Passo 1: scrivere il programma Software: un qualsiasi text editor Passo 2: compilare il programma Software: Java Development Kit (JDK) Comando:

Dettagli

Corso di Reti di Calcolatori L-A

Corso di Reti di Calcolatori L-A Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 0 (svolta) Multithreading in Java Luca Foschini Anno accademico 2009/2010 Esercitazione 0 1 Modello

Dettagli

Completa la seguente definizione di class MemAddress che realizza il tipo di dato indirizzo di memoria.

Completa la seguente definizione di class MemAddress che realizza il tipo di dato indirizzo di memoria. ESERCIZIO 1 Completa la seguente definizione di class MemAddress che realizza il tipo di dato indirizzo di memoria. class MemAddress //OVERVIEW: un indirizzo di memoria ha una base ed un offset, entrambi

Dettagli

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

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: C# versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

Dettagli

Strumenti Java. Fondamenti di informatica L-B A.A Alessandra Toninelli

Strumenti Java. Fondamenti di informatica L-B A.A Alessandra Toninelli Strumenti Java Fondamenti di informatica L-B A.A. 2006-2007 Alessandra Toninelli atoninelli@deis.unibo.it Cosa installare? J2SE SDK Software Development Kit (JDK): Contiene: tutte le classi con relativo

Dettagli

Fondamenti di Informatica T-1. Guida al LAB4 Introduzione a JDK e Eclipse

Fondamenti di Informatica T-1. Guida al LAB4 Introduzione a JDK e Eclipse Guida al LAB4 Introduzione a JDK e Eclipse 2 Tutor Tutor: e-mail: francesco.casimiro@studio.unibo.it Ricevimento studenti: al termine delle esercitazioni o previo appuntamento via e-mail Sito del corso:

Dettagli

JAVA - I/O System. Il JAVA considera tutte i flussi da e verso l esterno, come stream di byte. Questi possono essere di ingresso o di uscita:

JAVA - I/O System. Il JAVA considera tutte i flussi da e verso l esterno, come stream di byte. Questi possono essere di ingresso o di uscita: JAVA - I/O System Il JAVA considera tutte i flussi da e verso l esterno, come stream di byte. Questi possono essere di ingresso o di uscita: 1. InputStream: Flusso di byte in ingresso. Con questa classe

Dettagli

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

Dettagli

Anno Accademico 2003/04. Docente modulo 1: Annalisa De Bonis. Ripete l esecuzione di statement fino a che la condizione e` verificata

Anno Accademico 2003/04. Docente modulo 1: Annalisa De Bonis. Ripete l esecuzione di statement fino a che la condizione e` verificata Iterazioni Anno Accademico 2003/04 Docente modulo 1: Lo statement while while (condition) statement; Ripete l esecuzione di statement fino a che la condizione e` verificata while (balance < targetbalance)

Dettagli

Fondamenti di informatica 2 Claudio Biancalana. Esercitazione capitolo 19 Array

Fondamenti di informatica 2 Claudio Biancalana. Esercitazione capitolo 19 Array Fondamenti di informatica 2 Claudio Biancalana Esercitazione capitolo 19 Array Contatti claudio.biancalana@dia.uniroma3.it Contenuto esercitazione Ricerca sequenziale Progettazione e Divide et Impera 2

Dettagli

INPUT OUTPUT Programmazione in rete e laboratorio. Le operazioni di I/O avvengono attraverso stream (sequenze di byte)

INPUT OUTPUT Programmazione in rete e laboratorio. Le operazioni di I/O avvengono attraverso stream (sequenze di byte) INPUT OUTPUT 2004-05 Le operazioni di I/O avvengono attraverso stream (sequenze di byte) programma stream in lettura sorgente Programmazione in rete e laboratorio programma stream in scrittura destinazione

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA9 B3.1 Mutua esclusione 1 Prerequisiti Programmazione concorrente Sezione critica Mutua esclusione lock() e unlock() 2 1 Introduzione Si considerino le seguenti situazioni

Dettagli

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[]

Dettagli

/***************************** 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

Dettagli

Prova d Esame Compito A

Prova d Esame Compito A Prova d Esame 19.04.2005 Compito A Domanda 1 A) Si richiede di analizzare le seguenti sezioni di codice. Il candidato indichi il risultato dell esecuzione del main. public class Father { private int counter;

Dettagli

Fondamenti di Informatica T2 Modulo 2

Fondamenti di Informatica T2 Modulo 2 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)

Dettagli

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)

Dettagli

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

Dettagli

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER

Dettagli

Laboratorio di Sistemi Serializzare mediante file Java

Laboratorio di Sistemi Serializzare mediante file Java Torniamo ancora una volta sul problema della serializzazione degli oggetti e riconsideramo il seguente modello a oggetti. Fig. 1 Modello a oggetti della nostra applicazione Per semplicità supponiamo che

Dettagli

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

Dettagli

domenica 9 giugno 13 Serializzazione

domenica 9 giugno 13 Serializzazione Serializzazione A cosa serve? Ad ottenere una rappresentazione di una struttura dati che possiamo memorizzare, trasmettere via rete Cosa possiamo serializzare? OK NO Tipi primitivi, Riferimenti stringhe

Dettagli

Unità 2 I file binari

Unità 2 I file binari Dare una breve descrizione dei termini introdotti: (A) CONOSCENZA TERMINOLOGICA file binari file di tipi primitivi file di oggetti serializzazione (B) CONOSCENZA E COMPETENZA Rispondere alle seguenti domande

Dettagli

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

Dettagli

Prova d Esame Compito A

Prova d Esame Compito A DOMANDA1 Si analizzi il codice seguente e si scriva l output prodotto dai metodi main public class General { protected int value; public static boolean flag = false; public General() { value = 1; public

Dettagli

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza

Dettagli

Esercizi su Callback RMI

Esercizi su Callback RMI Esercizi su Callback RMI Esercitazione di Laboratorio di Programmazione di Rete A Daniele Sgandurra Università di Pisa 03/12/2008 Esercizio Settimana Scorsa Sviluppare un applicazione RMI per la gestione

Dettagli

System.out.print("\tATTENZIONE: hi inserito un valore non valido!\n");

System.out.print(\tATTENZIONE: hi inserito un valore non valido!\n); Creare un applicazione console che dato l indice della borsa di Milano nel giorno precedente, calcola la variazione percentuale rispetto al valore dell indice del giorno corrente. import java.io.*; public

Dettagli

Esercitazione 2: Java Thread

Esercitazione 2: Java Thread Esercitazione 2: Java Thread 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

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013 Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario Array Array monodimensionali Array bidimensionali Esercizi 16/01/2013 2 ARRAY Gli array sono oggetti utilizzati in Java per memorizzare

Dettagli

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

Dettagli

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 4 24/10/2013

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 4 24/10/2013 Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 4 24/10/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University

Dettagli

Riassunto. I mattoni di base di un programma Java. Oggi. Un programma complicato. Oggi. Perché è complicato? Stefano Mizzaro 1.

Riassunto. I mattoni di base di un programma Java. Oggi. Un programma complicato. Oggi. Perché è complicato? Stefano Mizzaro 1. I mattoni di base di un programma Java Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione, lezione 2 28 settembre

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA9 B3.2 Produttore-consumatore 1 Prerequisiti Elementi di programmazione concorrente Mutua esclusione Produttore-consumatore 2 1 Introduzione In questa Unità vediamo

Dettagli

Note ed esercizi aggiuntivi

Note ed esercizi aggiuntivi Corso di Programmazione Anno Accademico 2015 2016 Prof. Giovanni Pighizzini ed esercizi aggiuntivi 16. Stream di I/O Esempio. Visualizza sul monitor il contenuto di un file di caratteri. int i; while ((i

Dettagli

Esercizi su permessi

Esercizi su permessi Esercizi su permessi usare umask per verificare il valore corrente creare file e directory verificare i permessi cambiare umask e ripetere l esercizio verificando come cambiano i permessi creare una cartella

Dettagli

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza

Dettagli

Gestire le eccezioni. Lezione XI

Gestire le eccezioni. Lezione XI Gestire le eccezioni Lezione XI Scopo della lezione Studiare il meccanismo di gestione delle eccezioni Implementare nuove eccezioni IX-B.2 Tipi di errori Errori rilevati in fase di compilazione: errori

Dettagli

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

Dettagli

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

Dettagli

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

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 sangelini@fub.it 2 Luglio 2019 Simone Angelini (Fondazione Ugo Bordoni) Tecnologie e metodologie di

Dettagli