EPL451: Data Mining on the Web Lab 1

Σχετικά έγγραφα
EPL451: Data Mining on the Web Lab 1

EPL660: Information Retrieval and Search Engines Lab 5

EPL 660: Lab 4 Introduction to Hadoop

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο

EPL660: Information Retrieval and Search Engines Lab 5

Big Data. CERN/LHC: 40TB/μέρα (15PB/έτος) Πολλά, πολλά ακόμα Web logs, αρχεία ομιλιών, ιατρικοί φάκελοι, κλπ. για όλους...

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τµήµα Πληροφορικής ΕΠΛ 646 Προχωρηµένα Θέµατα Βάσεων Δεδοµένων

Ατομική Διπλωματική Εργασία. Evaluating Hadoop, a MapReduce implementation, for Multicore systems. Κωνσταντίνος Χριστοφή ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ

ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ακ. έτος , 9ο Εξάμηνο ΗΜ&ΜΥ Ν. Κοζύρης Εξαμηνιαία Εργασία. Εισαγωγή στο MapReduce και στις βάσεις NoSQL

Οδηγίες για την εγκατάσταση του πακέτου Cygwin

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Βρίγκας Μιχαήλ Α.Μ.744 Μπράχος Χ. Ευάγγελος Α.Μ.795

ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ MOODLE

MapReduce Εισαγωγή. MapReduce. ηµήτρης Λεβεντέας

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1

«Μηχανή Αναζήτησης Αρχείων» Ημερομηνία Παράδοσης: 30/04/2015, 09:00 π.μ.

EPL451: Data Mining on the Web Lab 3

Web Data Mining ΕΡΓΑΣΤΗΡΙΟ 2 & 3. Prepared by Costantinos Costa Edited by George Nikolaides. EPL Data Mining on the Web

Μαζικός Παραλληλισμός λ με Map - Reduce. Μοντέλο Θέματα υλοποίησης Παραδείγματα διαχείρισης δεδομένων

ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ OPEN ECLASS

11/28/2016 Απόδοση Συστημάτων, Remote Jmeter και Dacappo

Ενημερωτικός οδηγός για τον εξυπηρετητή Ada

ARTius με PostgreSQL

ProcSim οδηγίες χρήσης.

Hancock. Ζωγραφάκης Ιωάννης Εξαρχάκος Νικόλαος. ΕΠΛ 428 Προγραμματισμός Συστημάτων

ProcSim οδηγίες χρήσης.

Διαχείριση Έργων Πληροφορικής Εργαστήριο

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

Ανάλυση Αρχείων Καταγραφής σε Υπολογιστικά Νέφη. Log File Analysis in Cloud Computing

SocialSkip Service v2.0

Users / Groups / Permissions. Πώς ξεκίνησε η ανάγκη για πολλαπλούς χρήστες σε ένα σύστημα;

Android Studio για Windows

Κατανεμημένος και Παράλληλος Προγραμματισμός. Κατανεμημένα Συστήματα. Δεύτερος παγκόσμιος πόλεμος 17/4/2017

Πληροφοριακά Συστήματα Διοίκησης

Technical FAQ. Data Encryption: 128bit έως 256Bit με επιλογή πρωτοκόλλου (AES, Triple DES, and TwoFish). Traffic Encryption: 1024bit RCA

Κατανεμημένα Συστήματα

Κεφάλαιο 4: Λογισμικό Συστήματος

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ ΓΡΑΜΜΑΤΕΙΑΚΗΣ ΕΦΑΡΜΟΓΗΣ ESCHOOL

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής

CYGWIN Οδηγίες Χρήσης (Συγγραφέας: Γιώργος ούκας)

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

Δημιουργία μιας εφαρμογής Java με το NetBeans

ΚΕΦΑΛΑΙΟ Web Services

Ενημερωτικός οδηγός για τον εξυπηρετητή Ada

MapReduce. Κατανεμημένα Συστήματα

Ανάκτηση Πληροφορίας σε Νέφη Υπολογιστών

Υπολογιστικά Νέφη. Ενότητα 12: MapReduce. Άγγελος Μιχάλας Τμήμα Μηχανικών Πληροφορικής ΤΕ

Προγραμματισμός Ι. Εργαστήριο 1 ο Περιβάλλον Εργασίας. Νικόλαος Δ. Τσελίκας Κυριακή Θ. Σεκλού

Εργαστήρια Text Mining & Sentiment Analysis με Rapid Miner

ΠΡΟΑΙΡΕΤΙΚΑ ΣΕΜΙΝΑΡΙΑ Πληροφορική και Επιστήμη Ηλεκτρονικών Υπολογιστών

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 1 17/01/2012

Το διαδίκτυο είναι ένα δίκτυο που αποτελείτε από πολλά μικρότερα δίκτυα υπολογιστών.

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ

Διδάσκων: Νεκτάριος Κοζύρης, καθηγητής

Οδηγίες εγκατάστασης και χρήσης Java σε προσωπικό υπολογιστή

Όροι Χρήσης της IBM Όροι για Συγκεκριμένες Προσφορές SaaS. IBM BigInsights on Cloud

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Εργαστήριο Εγκατάσταση Ubuntu με VirtualBox Εγκατάσταση Ubuntu με Unetbootin Απομακρυσμένη πρόσβαση με Putty/WinSCP

BHMATA ΓΙΑ ΑΝΑΒΑΘΜΙΣΗ ΣΤΟ 3S/I.T.P.

Ανοικτά Δεδομένα. Η εμπειρία του OpenDataCloud

Ο ArcCatalog χρησιμοποιείται για την πλοήγηση / διαχείριση χωρικών δεδοµένων.

Πληροφοριακά Συστήματα Διοίκησης

Εγχειρίδιο εγκατάστασης και βασικής παραμετροποίησης σεναρίου εστίασης

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Υλοποίηση αλγορίθμων ταξινόμησης μεγάλου όγκου δεδομένων με το μοντέλο MapReduce

Αποδοτική επεξεργασία ερωτημάτων κατάταξης στο Map/Reduce

$./jms console -w <jms in> -r <jms out> -o <operations file> namedpipe. (standard input).

Ξεκινώντας με το MIT Αρρ Inventor. 1 η Εργασία

Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα).

Κεφάλαιο 4. Λογισμικό Συστήματος

Αντικειμενοστρεφής Προγραμματισμός

BIG DATA ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΤΗΣ ΕΙΡΗΝΗΣ ΖΑΡΟΓΙΑΝΝΟΥ ΑΜ: 05/2872 ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: ΗΜΗΤΡΙΟΣ ΑΧΙΛ. ΕΡΒΟΣ Η ΑΝΑΓΚΗ - ΤΟ ΠΡΟΒΛΗΜΑ - Η ΤΕΧΝΟΛΟΓΙΑ

Κατανεμημένα Συστήματα

Information Technology for Business

Πώς να ανοίξω το τερματικό στους υπολογιστές της σχολής

ΜΕΛΕΤΗ ΘΕΡΜΟΚΡΑΣΙΑΣ ΠΟΛΥΠΥΡΗΝΟΥ ΕΠΕΞΕΡΓΑΣΤΗ ΜΕ ΕΦΑΡΜΟΓΕΣ PHOENIX

μ μ «μ»

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη

Οδηγίες Εγκατάστασης Πιστοποιητικών για Χρήση σε WEB Browsers

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

SocialSkip Service v1.0

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I

Υλοποίηση κατασκευής δέντρου επιθεμάτων σε Hadoop MapReduce

Διδάσκων: Νεκτάριος Κοζύρης, καθηγητής

Υπηρεσία διαμοιρασμού αρχείων

Εισαγωγή στον Προγραμματισμό Μάθημα 1: Βασική Πλοήγηση σε Linux CLI. Οκτώβριος 2016 Χ. Αλεξανδράκη

server : Ο υπολογιστής του καθηγητή που θέλουμε να ελέγχει τους υπόλοιπους του εργαστηρίου client : Οι υπολογιστές των μαθητών

VERSION 1.0 ΝΟΕΜΒΡΙΟΣ, 2016 ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΟΜΟΙΩΣΗΣ CLOUDSIM ΕΠΙΜΕΛΕΙΑ: ΒΑΣΙΛΕΙΟΣ ΤΣΑΚΑΝΙΚΑΣ

Μελέτη και Υλοποίηση Αλγορίθμων για Βιολογικές Εφαρμογές σε MapReduce Περιβάλλον

BIG DATA. Η Ανάγκη, το Πρόβληµα, η Τεχνολογία

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425

ΛΟΓΙΣΜΙΚΟ ΠΡΟΣΟΜΟΙΩΣΗΣ ANYLOGIC

MapReduce: Simplified Data Processing on Large Clusters

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής

ΕΓΚΑΤΑΣΤΑΣΗ ΕΦΑΡΜΟΓΩΝ ΓΙΑ ΠΡΟΣΩΠΙΚΟ ΥΠΟΛΟΓΙΣΤΗ (MS WINDOWS, LINUX, MACOS)

Εργαστήριο Βάσεων Δεδομένων

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Application... 4 Java Development Kit... 4 Android SDK... 5 Android Studio... 6 Genymotion... 8 ια ο Web Panel... 10

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Transcript:

EPL451: Data Mining on the Web Lab 1 Παύλος Αντωνίου Γραφείο: B109, ΘΕΕ01 University of Cyprus Department of Computer Science

General Info Πέμπτη: 18:00-20:00, Lab 103, ΘΕΕ01 Ιστοσελίδα μαθήματος και υλικό: https://www.cs.ucy.ac.cy/courses/epl451 Πληροφορίες υπεύθυνου εργαστηρίου: Email: paul.antoniou-at-cs.ucy.ac.cy, Γραφείο: Β109 (υπόγειο), Κτίριο: ΘΕΕ01

Εισαγωγή - Map Reduce MapReduce προγραμματιστικό μοντέλο επεξεργασία μεγάλων συνόλων δεδομένων (large datasets) δεδομένα σε συστοιχίες (clusters) που αποτελούνται από χιλιάδες κόμβους παράλληλη λειτουργία Πατενταρισμένο [2004] από την Google.

Υλοποιήσεις του Map Reduce Google Map Reduce Χρησιμοποιείται αποκλειστικά από την Google Δεν υπάρχουν πολλές λεπτομέρειες της υλοποίησης, μάλλον σε C++ Το Hadoop είναι η open-source υλοποίηση του MapReduce. Υλοποίηση σε Java Η υλοποίηση αυτή βασίστηκε κυρίως σε δύο άρθρα που δημοσίευσαν οι εμπνευστές του MapReduce και περιέγραφαν το μοντέλο. Συντηρείται από το Apache Foundation

Εισαγωγή - Hadoop Επιτρέπει την επεξεργασία και ανάλυση τεράστιου όγκου δεδομένων σε κλίμακα Petabyte (1 PB = 1024 TB). Σκοπός ανάλυσης: εξόρυξη χρήσιμών πληροφοριών και τάσεων. Χρησιμοποιείται από Yahoo!, Facebook, AOL, Netflix, Amazon, Apple, ebay κ.ά. Το Facebook δήλωσε τον Ιούνιο του 2012 ότι κατέχει παγκόσμια το ποιο μεγάλο Hadoop cluster με συνολικό όγκο δεδομένων ~ 100 PB και αυξάνεται κατά ~ 0.5 PB τη μέρα.

Εισαγωγή - Hadoop Τυπικό Hadoop Cluster Aggregation switch Rack switch 40 nodes/rack, 1000-4000 nodes/cluster 1 Gbps bandwidth in rack, 8 Gbps out of rack Node specs : 8-16 cores, 32 GB RAM, 8 1.5 TB disks

Εισαγωγή - Hadoop Το Hadoop Project αποτελείται από 4 modules: Αποθήκευση δεδομένων (storage) κατανεμημένο σύστημα αρχείων Hadoop Distributed File System (HDFS) Παράλληλη Επεξεργασία μεγάλων δεδομένων (processing) Προγραμματιστικό μοντέλο Map-Reduce Χρονοπρογραμματισμός εργασιών και Διαχείριση πόρων (job scheduling and resource mgmt) Hadoop YARN Common utilities για υποστήριξη των άλλων modules Hadoop Common

Εισαγωγή - Hadoop Περισσότερες Πληροφορίες: Apache Hadoop Documentation HDFS Users Guide HDFS Architecture HDFS Default Configuration

HDFS Το Hadoop βασίζεται σε ένα κατανεμημένο σύστημα αρχείων το Hadoop Distributed File System (HDFS) Εμπνευσμένο από το Google File System (GFS) το οποίο είναι φυσικά πατενταρισμένο. Σχεδιασμένο για την αποθήκευση μεγάλου όγκου δεδομένων. HDFS data block size: συνήθως 64 ή 128MΒ σχεδιασμένο να διαχειρίζεται τεράστια αρχεία αποδοτικά NTFS (Microsoft) και ext4 (Linux) block size: 4 ΚΒ!! Μικρά αρχεία (<< 64MB) αποτελούν μεγάλο πρόβλημα για το HDFS

HDFS Το HDFS παρέχει αξιοπιστία μέσω αντιγραφής των δεδομένων σε περισσότερους από 1 κόμβους/υπολογιστές (nodes). Όταν ένας κόμβος δεν είναι διαθέσιμος, τα δεδομένα μπορούν να ανακτηθούν από άλλους κόμβους (διότι υπάρχουν αντίγραφα). Το χαρακτηριστικό αυτό ονομάζεται replication.

HDFS Ο κεντρικός node (master node) στο HDFS έχει το ρόλο του NameNode. O NameNode διατηρεί διάφορες μεταπληροφορίες (metadata) για το σύστημα αρχείων όπως τον πίνακα (index) που περιγράφει πού βρίσκεται το κάθε αρχείο ή κομμάτι αρχείου (chunk), δηλ. σε ποιο node. Τα υπόλοιπα nodes έχουν τον ρόλο του DataNode δηλ. αποθηκεύουν τα δεδομένα.

HDFS: NameNode/DataNode

HDFS Interaction Αλληλεπιδρούμε με το HDFS μέσω shell-like commands της μορφής hadoop fs <args> Παραδείγματα (εκτέλεση από unix terminal) hadoop fs -ls / Παρουσίαση περιεχομένου ριζικού φακέλου (/) μέσα στο HDFS. hadoop fs -copyfromlocal /home/myfolder /myfolder Αντιγραφή του καταλόγου /home/myfolder (μαζί με τα περιεχόμενά του) που είναι στον τοπικό δίσκο, μέσα στο HDFS, σε κατάλογο που ονομάζεται myfolder (ο φάκελος αυτός βρίσκεται στον ριζικό κατάλογο του HDFS) hadoop fs -cat /user/csdeptucy/myfolder/test.java Τυπώνει στην οθόνη το περιεχόμενο του αρχείου test.java το οποίο είναι αποθηκευμένο μέσα στο HDFS

Αρχιτεκτονική Hadoop Ακολουθεί την ιδεολογία/μοντέλο master-slave. master node (κύριος κόμβος): υπεύθυνος για το καταμερισμό των εργασιών. Ρόλος στο Hadoop: job tracker εποπτεία και τον καταμερισμό των εργασίων slave nodes (υπηρέτες): εκτελούν τις εργασίες και επιστρέφουν το αποτέλεσμα στον master. Ρόλος στο Hadoop: task tracker εκτέλεση της εργασίας που ανατέθηκε από τον job tracker

Αρχιτεκτονική Hadoop MapReduce layer job tracker task tracker task tracker HDFS layer name node data node Master node data node Slave node

Αρχιτεκτονική Hadoop MapReduce layer HDFS layer job tracker task tracker Ο master μπορεί να εκτελεί και τους ρόλους task του slave (task tracker & data node) tracker ιδιαίτερα όταν έχουμε ένα μικρό cluster με περιορισμένους πόρους (resources). name Με αυτό data node node τον τρόπο θα σχεδιάσουμε και το δικό μας cluster. data node Master node Slave node

Μοντέλο Map Reduce Είσοδος: σύνολο από ζευγάρια < κλειδί εισόδου τιμή > Έξοδος: σύνολο από ζευγάρια < κλειδί εξόδου αποτέλεσμα > Δύο λειτουργίες: map & reduce Η λειτουργία map δέχεται σαν είσοδο μια λίστα με ζεύγη κλειδί-τιμή (ένα κάθε φορά) και για κάθε ζεύγος εισόδου παράγει σαν έξοδο ένα άλλο ζεύγος < ενδιάμεσο κλειδί ενδιάμεση τιμή >. Η λειτουργία reduce, μειώνει (reduces) το σύνολο ενδιάμεσων τιμών που έχουν το ίδιο ενδιάμεσο κλειδί σε ένα μικρότερο σύνολο από τιμές.

Λειτουργία Map Έστω ότι δίνεται ένα αρχείο κειμένου: Ένα αρχείο μπορεί να διαχωριστεί σε πολλαπλά records (εγγραφές) Μια εγγραφή μπορεί να ναι μια γραμμή του αρχείου Η μέθοδος map: Υλοποιείται από το χρήστη, Σε κάθε κλήση, παίρνει σαν είσοδο ένα record στη μορφή ενός ζεύγους <κλειδί,τιμή> και παράγει ένα ζεύγος <ενδιάμεσο κλειδί,ενδιάμεση τιμή>.

Λειτουργία Map map (in_key, in_value) -> (intermediate_key, intermediate_value) list

Λειτουργία Reduce To σύνολο ζευγών < ενδιάμεσο κλειδί, ενδιάμεση τιμή > παραχθέντων υπό των κλήσεων της μεθόδου map ομαδοποιούνται ως προς το ίδιο ενδιάμεσο κλειδί Όλες οι ενδιάμεσες τιμές (values) για ένα συγκεκριμένο ενδιάμεσο κλειδί (key) συνενώνονται σε μια λίστα, και δίδονται σε στον reducer. < intermediate key, <list of values with the same key>> Ο reducer εκτελεί συνάθροιση των τιμών της λίστας παράγοντας στην έξοδο ένα τελικό ζεύγος κλειδί/τιμή < out key, new_value> O Reducer περιλαμβάνει 3 κύριες φάσεις: Shuffle, Sort, Reduce που θα αναλυθούν σε άλλο εργαστήριο.

Λειτουργία Reduce reduce (intermediate_key, intermediate_value list) -> out_value list

Map & Reduce Tasks

Παράδειγμα WordCount Κλασσικό παράδειγμα για το πώς λειτουργεί το Map Reduce. Μετρά πόσες φορές εμφανίζεται η κάθε λέξη σε ένα ή περισσότερα αρχεία. Η επεξεργασία γίνεται μέσω Hadoop και άρα είναι κατανεμημένη (distributed).

Παράδειγμα WordCount Το map παίρνει σαν input ζευγάρια της μορφής <key, value> όπου: το key είναι το offset της γραμμής στο αρχείο (η θέση της γραμμής στο αρχείο). το value είναι μια ολόκληρη γραμμή από ένα από τα αρχεία Η θέση που βρίσκεται η γραμμή στο αρχείο δεν μας ενδιαφέρει γι αυτό και αγνοούμε το key. Το map κάνει tokenize («σπάει» τη γραμμή σε λέξεις) και δίνει σαν έξοδο ζευγάρια <key, value> : το key είναι κάθε μια από τις λέξεις το value είναι πάντα ο αριθμός 1 Τα πιο πάνω ζευγάρια εισάγονται στο reduce

Παράδειγμα WordCount Το reduce παίρνει σαν input ένα ζευγάρι < key, <list of values> > όπου: key είναι μια από τις λέξεις το value είναι μια λίστα που περιέχει τον αριθμό 1 τόσες φόρες όσες εμφανίζεται η λέξη που βρίσκεται στο key στα αρχεία μας. Π.χ < the, <1, 1, 1, 1> > To reduce δίνει σαν output ένα ζευγάρι <key, value> όπου: key είναι η λέξη που πήραμε σαν input value είναι το άθροισμα των άσσων στη λίστα των values.

REDUCE MAP Line 1 Παράδειγμα WordCount the government said yesterday it was on track to cover the financing needs for the next three months but for the next three years there was no choice to cover Input to map: key = 0, value = the government said yesterday [ ] Output: <the,1>, <government,1>, <said,1>, <yesterday,1>, <it,1>, <was,1>, <on,1> <choice,1>, <to,1> <cover,1> Input to reduce: key = the, value = <1,1,1,1> key = government, value = <1> Output: <the, 4>, <government, 1>, <said, 1> <to, 2>, <cover, 2>

Hands On Κατεβάστε το Virtual Machine που παρέχεται στην ιστοσελίδα του μαθήματος και περιέχει προεγκατεστημένα εργαλεία για το παρόν εργαστήριο (Hadoop, Java, Eclipse) και για τα επόμενα. Χρήσιμες πληροφορίες: Hadoop API: https://hadoop.apache.org/docs/current/api/ HDFS NameNode web interface: localhost:50070 Resource Manager (YARN) web interface: localhost:8088 MapReduce JobHistory Server web interface: localhost:19888

HDFS Namenode

Resource Manager (YARN)

Προαπαιτούμενα Εγκαταστείστε το VMware Workstation (10+) στον υπολογιστή σας Κατεβάστε το image http://www.cs.ucy.ac.cy/courses/epl451/labs/vms/ubuntucs.zip Username: csdeptucy Password: csdeptucy Αποσυμπιέστε τα περιεχόμενα του zip και ανοίξετέ το (import) με το VMware workstation Ξεκινήστε το virtual machine NOTE: σε περίπτωση που θέλετε να εγκαταστήσετε το Hadoop σε μηχανή UNIX μπορείτε να δειτε: http://www.bogotobogo.com/hadoop/bigdata_hadoop_in stall_on_ubuntu_single_node_cluster.php

Παράδειγμα WordCount Ξεκινήστε το Hadoop [Admin Commands] Πηγαίνετε στο folder /usr/local/hadoop/sbin και εκτελέστε την εντολή./start-all.sh Βεβαιωθείτε ότι το Hadoop ξεκίνησε με την εντολή jps Ανοίξτε το Eclipse IDE, και το Project Lab1 Συμπληρώστε το πρόγραμμα WordCount.java (λείπουν 2 γραμμές) /user/csdeptucy/input (HDFS folder που περιέχει τα input files) /user/csdeptucy/output (HDFS folder για να γράψει μέσα η διαδικασία MapReduce τα αποτελέσματα)

Παράδειγμα WordCount Τρέξτε το πρόγραμμα Αν το δοθέν output folder υπάρχει ήδη στο HDFS, το πρόγραμμα δεν θα τρέξει. Διαγράψετέ το με την εντολή: hadoop fs -rm -r /user/csdeptucy/output Αντιγράψτε τα Map-Reduce output file(s) από το HDFS στο τοπικό file system & δείτε περιεχόμενα: hadoop fs -copytolocal /user/csdeptucy/output/partr-00000 Τα αρχεία εξόδου ονοματίζονται με τη λογική part-x-yyyyy όπου: x είναι είτε 'm' ή 'r', αναλόγως αν το job ήταν μόνο map job, ή map και reduce yyyyy είναι το task number του mapper ή του reducer (ξεκινώντας από 0)» Ένα job που έχει 32 reducers θα έχει αρχεία εξόδου με το όνομα part-r-00000 έως partr-00031, για κάθε ένα reducer task Μπορείτε να δείτε τα περιεχόμενα του αρχείου μέσω του browser από το HDFS NameNode web interface

Παράδειγμα WordCount Μπορείτε να δείτε τις 10 πρώτες γραμμές του output file χωρίς να «κατεβάσετε» το αρχείο στο τοπικό filesystem: hadoop fs -cat output/part-r-00000 head Λεπτομερής περιγραφή του παραδείγματος WordCount σε Hadoop μπορείτε να δείτε εδώ: http://hadoop.apache.org/docs/current/hadoopmapreduce-client/hadoop-mapreduce-clientcore/mapreducetutorial.html

Hadoop Admin Commands The /usr/local/hadoop/bin directory contains some scripts used to launch Hadoop DFS and Hadoop Map/Reduce daemons. These are: start-all.sh - Starts all Hadoop daemons, the namenode, datanodes, the jobtracker and tasktrackers. stop-all.sh - Stops all Hadoop daemons. start-mapred.sh - Starts the Hadoop Map/Reduce daemons, the jobtracker and tasktrackers. stop-mapred.sh - Stops the Hadoop Map/Reduce daemons. start-dfs.sh - Starts the Hadoop DFS daemons, the namenode and datanodes. stop-dfs.sh - Stops the Hadoop DFS daemons.

Εγκατεστημένα πακέτα στο VM Ubuntu 14.04.3 Java 1.7.0_80 (Oracle, preferred by Hadoop) Apache Maven 3.3.9 (version >= 3.0 needed for Hadoop, Mahout) Apache Hadoop 2.6.3 Eclipse Mars.1 (for java developers) /opt/eclipse configured with hadoop plugin and hadoop-related jar files in classpath Apache Mahout 0.11.1 /home/csdeptucy/mahout

Εγκατεστημένα πακέτα στο VM Scala Required by Apache Spark Apache Spark 1.6.0 Pre-built for Hadoop 2.6 and later /home/csdeptucy/spark Apache Lucene 5.4.0 Apache Solr 5.4.1

Εγκατεστημένα πακέτα στο VM Apache Maven Software project management and comprehension tool Based on the concept of a project object model (POM) Manages a project's build, reporting and documentation from a central piece of information. Apache Mahout Machine Learning and Data Mining on top of Hadoop Discussed in Lab4