1. Posizionarsi in una directory creata appositamente ed eseguire $ docker-compose up Nota 1: il simbolo $ indica il prompt dell'interprete dei comandi e non deve essere ricopiato. Nota 2: quando si esegue questo comando per la prima volta, docker provvederà a scaricare le immagini delle macchine virtuali, per cui l'operazione richiederà una connessione a Internet e ci vorranno diversi minuti prima che questa fase giunga a compimento; alle esecuzioni successive invece le macchine virtuali saranno a disposizione dopo pochi secondi. 2. Quando le macchine virtuali sono in esecuzione, si avranno a disposizione le seguenti VM: - namenode (localhost:50070), contenente il namenode hadoop, - datanode (localhost:50075), contenente un datanode hadoop, - spark-master (localhost:8080), contenente il master spark, - spark-worker (localhost:8081), contenente un worker spark, - jupyter (localhost:8888), contenente il server jupyter. In particolare, la directory "jupyter" nel computer ospite sarà collegata alla directory "work" del server jupyter, permettendo di trasferire facilmente notebook dal computer ospite alla VM. 3. Per popolare il file system distribuito è possibile collegarsi direttamente al namenode eseguendo il comando $ docker exec -it namenode bash Nota: in questo modo si ottiene un accesso root al namenode, cosa che va bene per lo scopo didattico di questo materiale ma che deve assolutamente essere evitata in altri contesti. La prima operazione da fare è quella di creare una directory per l'utente root, eseguendo $ hadoop fs -mkdir -p /user/root Successivamente è necessario copiare dei dati sul namenode: useremo il testo dell'Ulysses di Joyce, liberamente accessibile tramite project gutenberg: $ wget http://www.gutenberg.org/files/4300/4300-0.txt $ mv 4300-0.txt ulysses.txt A questo punto possiamo trasferire il file scaricato su HDFS $ hadoop fs -put ulysses.txt /user/root e verificare che l'operazione sia andata a buon fine elencando i contenuti della directory precedentemente creata: $ hadoop fs -ls