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

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

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

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

EPL660: Information Retrieval and Search Engines Lab 5

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ

EPL451: Data Mining on the Web Lab 1

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

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

EPL 660: Lab 4 Introduction to Hadoop

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

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

ΟΔΗΓΙΕΣ ΣΥΝΔΕΣΗΣ ΣΤΟ ΔΙΚΤΥΟ ΤΟΥ ΟΠΑ ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΠΑΡΟΧΟ (ΥΠΗΡΕΣΙΑ VPN) Windows 8, Windows 7, Windows Vista, Windows XP

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

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Οδηγός σύνδεσης στο δίκτυο του ΤΕΠΑΚ μέσα από την υπηρεσία απομακρυσμένης πρόσβασης VPN Τεχνολογικό Πανεπιστήμιο Κύπρου

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

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

EPL451: Data Mining on the Web Lab 1

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

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

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

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

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

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΉΜΙΟ ΚYΠΡΟΥ

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

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

1 Εγκατάσταση Hadoop cluster

Εγκατάσταση Python και των απαραίτητων πακέτων

Οδηγός Εγκατάστασης

ΚΕΦΑΛΑΙΟ 4 ΤΟ ΕΡΓΑΛΕΙΟ SOLVER

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

Εργαστήριο 4 Ασκήσεις: Διαχείριση Δικτύου (nmap, iptables) και Προχωρημένες Εντολές Unix (grep, ps, cut, find)

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

Α. Ερωτήσεις Ανάπτυξης

ΔΙΑΔΙΚΑΣΙΑ ΑΝΑΒΑΘΜΙΣΗΣ ΚΥΠΡΙΑΚΟΥ ΧΑΡΤΗ

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

Οδηγός Χρήσης Εργαστηρίων UNIX (LINUX) B103 και 103 και απομακρυσμένης πρόσβασης με την χρήση Free NX

Τ.Ε.Ι. ΚΡΗΤΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΙΑΣ. Ασκήσεις 1-2 Εισαγωγή

Οδηγός Χρήστη. Καλώς ήλθατε στο Ηλεκτρονικό Περιβάλλον Μάθησης.

Ερωτήσεις και απαντήσεις για το e-tutoring 1

MultiBoot Οδηγός χρήσης

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΉΜΙΟ ΚYΠΡΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ

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

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

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

Ενηµερώσεις λογισµικού Οδηγός χρήσης

Οδηγός Χρήσης Εργαστηρίων UNIX (LINUX) B103 και 103 και απομακρυσμένης πρόσβασης με την χρήση X2Go

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

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ & ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΑΝΑΠΤΥΞΗΣ BloodShed Dev-C++

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

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

ΕΡΓΑΣΤΗΡΙΟ 16. Χρησιμοποιώντας τον Αποσφαλματιστή (Debugger) του Eclipse

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

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

MultiBoot. Οδηγός χρήσης

Διαδικασία εγκατάστασης και ρύθμισης AUA-VPN για Windows XP/Vista/7/8

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

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

Εγκατάσταση του SEPADesktop Client. Λήψη. ΣΕΠΑ Σύλλογος Εκτελωνιστών Πειραιώς-Αθηνών

Windows 7 Windows Vista

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών. ΤΗΜΜΥ Α.Π.Θ Πέμπτη 11 / 12 / 2014 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο

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

Δίκτυο Διακοπής Καπνίσματος

Ελληνική Έκδ ση. Εισαγωγή. Περιεχόμενα της συσκευασίας. Τεχνικές προδιαγραφές BT100. Πρόσθετες τεχνικές προδιαγραφές ΒΤ100 S W E E X.

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

Αντιµετώπιση προβληµάτων MPEG

Οδηγός εγκατάστασης προγράμματος TestDrive του Υ.Μ.Ε.

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

XEROX - ΕΛΤΙΟ ΑΣΦΑΛΕΙΑΣ XRX05-008

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΜΟΝΑΔΑ ΑΡΙΣΤΕΙΑΣ ΕΛ/ΛΑΚ

Σχηματίζοντας Γραφικές Παραστάσεις για Ημίτονο και Συνημίτονο και Ελέγχοντας Περιορισμούς σε Συστάδες Καρτών Τόμπολας

Μαθαίνω τα Νοήματα. Περιβάλλον Διδασκαλίας Βασικού Λεξιλογίου της Ελληνικής Νοηματικής Γλώσσας. Οδηγός Εγκατάστασης. Ευίτα Φωτεινέα, Ελένη Ευθυμίου

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

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

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

Εγκατάσταση Mozilla Firefox

Οδηγίες Χρήσης της MySQL

2.1 Αντικειµενοστρεφής προγραµµατισµός

Μάθημα 4ο. Προγράμματα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ231: ομές εδομένων και Αλγόριθμοι

ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΥ ΣΧΕΔΙΑΣΜΟΥ & ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΙ ΠΑΤΡΑΣ ΤΕΙ ΠΑΤΡΑΣ ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΕΠΙΧΕΙΡΗΣΙΑΚΏΝ ΠΑΙΓΝΙΩΝ- ΠΡΟΓΡΑΜΜΑ GAMBIT

ηµιουργία Αρχείου Πρότζεκτ (.qpf)

Εγχειρίδιο συμπίεσης / αποσυμπίεσης αρχείων με το λο ογισμικό WinRAR Υπηρεσία Πληροφορικών Συστημάτων Τομέας Συστημάτων ΥΠΣ ΕΔ/70 21/11/2012

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ. Το Πανεπιστήμιο Αιγαίου, βασικός παράγοντας για την οικονομική και κοινωνική ανάπτυξη του Αιγαιοπελαγίτικου χώρου

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Στο παράθυρο που θα εµφανιστεί πατήστε το κουµπί Unzip.

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

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

Οδηγός Χρήσης Η-Βιβλίων Ebrary ΒΙΒΛΙΟΘΗΚΗ & ΚΕΝΤΡΟ ΠΛΗΡΟΦΟΡΗΣΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΛΕΥΚΩΣΙΑΣ

Ελληνική Έκδ ση. Εισαγωγή. Περιεχόμενα της συσκευασίας. Τεχνικές προδιαγραφές. Πρόσθετες τεχνικές προδιαγραφές

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ

XAMPP Apache MySQL PHP javascript xampp

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών ΤΗΜΜΥ Α.Π.Θ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. DS Gomoku.

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τµήµα Πληροφορικής ΕΠΛ 646 Προχωρηµένα Θέµατα Βάσεων Δεδοµένων ΑΣΚΗΣΗ 4 Υλοποίηση Προγράµµατος Ανάλυσης Μεγάλων Δεδοµένων στο Hadoop MapReduce Ι. Στόχος Άσκησης (Επερώτηση k nearest neighbors Self-Join) Ηµεροµηνία Ανάθεσης: Πέµπτη, 19/11/2015 Ηµεροµηνία Παράδοσης: Τέταρτη, 2/12/2015 (13 ηµέρες) Διδάσκων: Δηµήτρης Ζεϊναλιπούρ (Να υποβληθεί η λύση ως ένα συµπιεσµένο αρχείο µέσω του Moodle) Ο στόχος της άσκησης είναι η εξοικείωση µε µια πλατφόρµα επεξεργασίας µεγάλων δεδοµένων. Ειδικότερα, θα κληθείτε να χρησιµοποιήσετε το Apache Hadoop για να διατυπώσετε στο Προγραµµατιστικό Μοντέλο Map Reduce την λύση της επερώτησης «Εύρεση κ κοντινότερων γειτόνων για ΟΛΑ τα σηµεία (Αll kνν)» ή αλλιώς γνωστό ως «kνν self-join». Η επίλυση του θέµατος θα πρέπει να γίνει στα πλαίσια του εικονικού µηχανήµατος το οποίο σας έχει δοθεί στο εργαστήριο. ΙI. Η Επερώτηση knn Self-Join Οι k κοντινότεροι γείτονες ενός αντικειµένου q είναι τα k αντικείµενα των οποίων τα γνωρίσµατα, π.χ., η θέση (x,y), είναι πιο κοντινά µε τα γνωρίσµατα του q χρησιµοποιώντας µια δεδοµένη µετρική απόσταση, π.χ., ευκλείδεια απόσταση µεταξύ των (x,y) θέσεων. Τυπικά, αυτό διατυπώνεται µε τον πιο κάτω ορισµό: knn(q, O): Δεδοµένου ενός πολυδιάστατου σηµείου επερώτησης q, βρες τα k αντικείµενα στο O τα οποία έχουν την µικρότερη απόσταση από το q. Η knn αναζήτηση είναι ένα από τα παλαιότερα προβλήµατα στην επιστήµη των υπολογιστών µε πολλές εφαρµογές στην υπολογιστική γεωµετρία, επεξεργασία εικόνας, χωρικές βάσεις δεδοµένων και πρόσφατα στα κοινωνικά δίκτυα. Εάν ψάχνουµε για τους knn γείτονες ΟΛΩΝ των στοιχείων στο O, τότε αναφερόµαστε στο γνωστό All knn πρόβληµα. Το συνολο των λύσεων στο εν λόγω AkNN(O) πρόβληµα (ή αλλιώς επερώτηση) διατυπώνονται ως ακολούθως: AkNN(O): Δεδοµένων τριών αντικειµένων o a o b o c, o b knn(o a, O) και o c O - knn(o a, O) ισχύει ότι dist(o a,o b ) dist(o a,o c ), όπου dist είναι µια µετρική απόσταση όπως την Ευκλείδεια απόσταση. 1 από 5

Εάν υποθέσουµε ότι το O είναι µια σχέση, όπως για παράδειγµα ένας πίνακας βάσης δεδοµένων που καταγράφει κάποια αντικείµενα µαζί µε επιπλέον γνωρίσµατα, τότε το AKNN(O) µπορεί εναλλακτικά να διατυπωθεί και ως knn Self-Join: O knn O = {(o a, o b ) o a, o b O and o b knn(o a, O)} Παράδειγµα Για να αντιληφθούµε το AkNN(O) (ή O knn O) δείτε το Σχήµα 1, όπου έχουµε 8 αντικείµενα Ο = {P 1, P 2,,P 8 } (το πλέγµα παρατίθεται για καλύτερη αναγνώριση της απόστασης µεταξύ των σηµείων). Καταρχήν παρατηρήστε, ότι ο κοντινότερος γείτονας για το σηµείο P 7 είναι ο Ρ 3 γιατί η ευκλείδεια απόσταση µεταξύ P 7 και P 3 είναι η ελάχιστη µεταξύ όλων των άλλων σηµείων. Εποµένως το 1NN(P 7,O)={P 3 }. Σχήµα 1: Διάταξη 8 αντικειµένων Εάν επεκτείνουµε το παράδειγµα για όλους τους κόµβους τότε: A1NN(O)={(P 1,P 7 ), (P 2,P 3 ), (P 7,P 3 ), (P 3,P 7 ), (P 5,P 6 ), (P 6,P 5 ), (P 4,P 8 ), (P 8,P 4 )}. Οµοίως επιχειρήστε να βρείτε το A2NN(O). ΙIΙ. Υλοποίηση Τεχνικής knn Self-Join Υπάρχει µια πλειάδα αλγορίθµων για την επίλυση του AkNN προβλήµατος σε συστήµατα βάσεων δεδοµένων. Υπάρχουν επίσης εξειδικευµένοι αλγόριθµοι επίλυσης του ΑkNN προβλήµατος στο MapReduce τους οποίους ωστόσο δεν θα δούµε. Στόχος της άσκησης είναι να εµπεδώσετε το Hadoop MapReduce, εποµένως θα υλοποιήσουµε την απλούστερη, και οµολογούµενους αργότερη, προσέγγιση επίλυσης του AkNN επερωτήµατος µε χρήση της Ευκλείδειας απόστασης. Ειδικότερα, στα πλαίσια της εργασίας καλείστε να υπολογίσετε την πιο κάτω λογική: Παράξετε το καρτεσιανό γινόµενο OxO και στη συνέχεια θα επιλέξετε τα k κοντινότερα αντικείµενα για κάθε αντικείµενο. Αφαιρετικά, καλείστε να υλοποιήσετε τον αλγόριθµο: σ top-k (O x O) 2 από 5

ΙV. Προεργασία και Εκκίνηση του Apache Hadoop Εγκαταστήστε το Hadoop αν δεν είναι ήδη εγκατεστηµένο στο Virtual Machine (VM) που σας έχει δοθεί ή στον προσωπικό σας Η/Υ. Στη συνέχεια σιγουρευτείτε ότι εγκαταστήσατε επιτυχηµένα το Hadoop ανοίγοντας το τερµατικό στο VM και εκτελώντας τις πιο κάτω εντολές. Α) Συνδεθείτε στο VPS σας από την γραµµή εντολών: ssh -l root <my-vps-name>.in.cs.ucy.ac.cy Eάν δεν είστε στο Παν. Κύπρου κάντε πρώτα VPN (δείτε http://www2.cs.ucy.ac.cy/~dzeina/courses/epl132/links.html), µετά συνδεθείτε σε κάποια µηχανή των εργαστηρίων, π.χ., 103ws1.in.cs.ucy.ac.cy ή 103ws2.in.cs.ucy.ac.cy, κτλ, και µετά το πιο πάνω. A) Εφόσον το VPS σας έχει περιορισµένους υπολογιστικούς πόρους, πριν ξεκινήσουµε το Hadoop θα απενεργοποιήσουµε κάποιες αχρείαστες διεργασίες µε την πιο κάτω εντολή: service couchdb stop service apache2 stop # Stop the CouchDB Daemon # Stop the Apache Webserver Daemon B) Βεβαιωθείτε ότι το PATH είναι ορθά ρυθµισµένο (ή ενηµερώστε το ~/.bashrc στο τέλος του για να ισχύει κάθε φορά που συνδέεστε µε το VPS σας) # Set Hadoop-related environment variables export HADOOP_HOME=/usr/local/Hadoop # Add Hadoop sbin/ bin/ directory to PATH export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin C) Εκκινήστε το HDFS και το YARN του Hadoop. Η απάντηση θα πρέπει να µοιάζει µε αυτή που ακολουθεί στο (YARN-based) Hadoop v2.7.1: $ start-dfs.sh Starting namenodes on [Ephyra] Ephyra: starting namenode, logging to /usr/local/hadoop-2.7.1/logs/hadooproot-namenode-your-vps-name.out localhost: starting datanode, logging to /usr/local/hadoop-2.7.1/logs/hadooproot-datanode-your-vps-name.out Starting secondary namenodes [0.0.0.0] 0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop- 2.7.1/logs/hadoop-root-secondarynamenode-YOUR-VPS-NAME.out # Παρακαλώ περιµένετε 1-5 λεπτά µέχρι να εµφανιστούν τα πιο πάνω!!! $ start-yarn.sh starting yarn daemons starting resourcemanager, logging to /usr/local/hadoop-2.7.1/logs/yarn-rootresourcemanager-your-vps-name.out localhost: starting nodemanager, logging to /usr/local/hadoop- 2.7.1/logs/yarn-root-nodemanager-YOUR-VPS-NAME.out 3 από 5

Σε πιο παλιές εγκαταστάσεις (YARN-less) Hadoop v0.20.2, χρειαζόταν απλά start-all.sh, όπου θα παίρνατε κάτι της µορφής: starting namenode, logging to /usr/local/hadoop/bin/../logs/hadoop-epl646- namenode-ubuntu.out localhost: starting datanode, logging to /usr/local/hadoop/bin/../logs/hadoop-epl646-datanode-ubuntu.out localhost: starting secondarynamenode, logging to /usr/local/hadoop/bin/../logs/hadoop-epl646-secondarynamenode-ubuntu.out starting jobtracker, logging to /usr/local/hadoop/bin/../logs/hadoop-epl646- jobtracker-ubuntu.out localhost: starting tasktracker, logging to /usr/local/hadoop/bin/../logs/hadoop-epl646-tasktracker-ubuntu.out Πάρτε µια σηµείωση για τα πιο πάνω αρχεία, εφόσον σε περιπτώσεις σφαλµάτων µπορεί να περιέχουν χρήσιµες πληροφορίες. D) Τα πιο κάτω δεν χρειάζονται για σκοπούς άσκησης αλλά παρατίθενται για δική σας χρήση: # Επανεκκίνηση του VPS σας shutdown -r now # Εγκατάσταση κάποιας υπηρεσίας στο VPS σας export http_proxy='http://proxy.cs.ucy.ac.cy:8008' yum install V. Εισαγωγή Δεδοµένων στο HDFS Τα απαραίτητα δεδοµένα θα τα κατεβάσετε από τη σελίδα του µαθήµατος µε όνοµα αρχείου as4- supplementary.zip. Μεταφέρετε τα αρχεία στο VPS σας και στη συνέχεια να τα εισάγετε τα στο HDFS (Hadoop Distributed File System) το οποίο βρίσκεται ρυθµισµένο µέσα στο VPS σας. Το συµπιεσµένο αρχείο as4-supplementary.zip περιέχει τα ακόλουθα CSV αρχεία: random.1000000.data.txt (25MB) random.100000.data.txt (2.4MB) random.10000.data.txt (228KB) random.10.data.txt (201B) Ο αριθµός στο όνοµα του αρχείου υποδηλώνει πόσους χρήστες (n) έχει κάθε αρχείο. Το περιεχόµενο των αρχείων αποτελείται από εγγραφές της ακόλουθης µορφής: <userid1,longitude1,latitude1>. <useridn,longituden,latituden> Μπορείτε να ανεβάσετε ένα αρχείο στο HDFS µε την εντολή: hadoop fs -put <localsrc>... <HDFS_dest_Path> π.χ., hadoop fs -put./random.10.data /user/epl646/ Για σκοπούς επίλυσης του knn self join O knn O, µπορείτε να εισάγετε κάθε αρχείο µε όνοµα «Ο» δυο φορές στο HDFS (π.χ., Ο1 και O2) και να υπολογίσετε το O1 knn O2. 4 από 5

VΙ. Δηµιουργία MapReduce Eργασιών Για να µπορέσετε να δηµιουργήσετε µια εργασία MapReduce θα πρέπει να υλοποιήσετε µια κλάση που κληρονοµεί την Mapper και υπερκαλύπτει-µεταβάλλει (override) την συνάρτηση map. Το αντίστοιχο θα πρέπει να γίνει µε την Reducer και reduce. H εκτέλεση του προγράµµατος σας θα πρέπει να γίνει ως ακολούθως: hadoop jar <filename>.jar <main-class> Λύση µε Πολλαπλούς Reducers (Σκέλος για Επιπλέον Μονάδες) Για να µπορέσετε να τρέξετε το πρόγραµµα µε πολλαπλούς reducers ενδέχεται να χρειαστεί η αλυσίδωση (chaining) πολλαπλών MapReduce εργασιών. Ειδικότερα, θα πρέπει η έξοδος της µιας MapReduce εργασίας να είναι είσοδος για την άλλη (δείτε παραδείγµατα στο εργαστήριο). Μπορείτε να ορίσετε σε πόσους Reducers µπορεί να τρέξει η εργασία µέσα από τον κώδικα σας, χρησιµοποιώντας το πιο κάτω: job.setnumreducetasks(4); // 4 reducers Επίσης όταν τρέχετε το πρόγραµµα σας µέσα από το IDE (π.χ., Eclipse) τότε το MapReduce πρόγραµµα τρέχει µόνο µε ένα Mapper και ένα Reducer. Κατά συνέπεια, θα πρέπει να δηµιουργήσετε ένα.jar αρχείο και να τρέξετε το MapReduce πρόγραµµα µε τον σωστό αριθµό των Reducers ως ακολούθως στο τερµατικό: hadoop D mapred.reduce.tasks=4 jar <filename>.jar <main-class> VI. Παραδοτέα Παραδώστε όλα τα πηγαία αρχεία σας µέσω του Moodle σε 1 συµπιεσµένο αρχείο (as4.zip): Παράδειγµα εκτέλεσης Με είσοδο το αρχείο «random.10.data.txt» όπως φαίνεται στην αριστερή στήλη και k=8, θα πρέπει να πάρετε το αποτέλεσµα στη δεξιά στήλη. Οι υπολογισµοί είναι µε την ευκλείδεια απόσταση (αντί της haversine απόστασης που χρησιµοποιείται σε long/lat υπολογισµούς). 1 -> 9 235.47984, 10 166.8724, 5 150.29001, 3 132.34007, 7 88.92536, 4 59.63813, 2 43.857162, 1 0.0 2 -> 9 198.60611, 3 129.52536, 10 125.238365, 5 106.47466, 7 57.180965, 4 51.68107, 1 43.857162, 2 0.0 3 -> 5 180.03531, 4 179.1341, 9 174.48692, 10 154.67604, 1 132.34007, 2 129.52536, 7 92.174324, 3 0.0 4 -> 9 240.15988, 3 179.1341, 10 160.2636, 5 126.36455, 7 107.28807, 1 59.63813, 2 51.68107, 4 0.0 5 -> 8 134.35233, 9 133.89711, 6 129.90901, 4 126.36455, 2 106.47466, 7 92.498665, 10 51.962746, 5 0.0 6 -> 3 237.67155, 2 225.01944, 7 185.24959, 5 129.90901, 10 100.631096, 9 75.51821, 8 51.103195, 6 0.0 7 -> 9 146.74573, 4 107.28807, 5 92.498665, 3 92.174324, 1 88.92536, 10 85.817184, 2 57.180965, 7 0.0 8 -> 2 210.98764, 3 198.19362, 7 162.42148, 5 134.35233, 10 89.06446, 6 51.103195, 9 25.730808, 8 0.0 9 -> 2 198.60611, 3 174.48692, 7 146.74573, 5 133.89711, 10 83.877144, 6 75.51821, 8 25.730808, 9 0.0 10 -> 3 154.67604, 2 125.238365, 6 100.631096, 8 89.06446, 7 85.817184, 9 83.877144, 5 51.962746, 10 0.0 Καλή Επιτυχία! 5 από 5