ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Hadoop. Παπαδόπουλος Ανδρέας

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Hadoop. Παπαδόπουλος Ανδρέας"

Transcript

1 ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Hadoop Παπαδόπουλος Ανδρέας Ιανουάριος 2012

2 Ανδρέας Παπαδόπουλος 2

3 ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ... 3 ΕΙΣΑΓΩΓΗ... 5 ΤΟ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΜΟΝΤΕΛΟ MAP REDUCE... 5 ΠΑΡΑΔΕΙΓΜΑΤΑ... 5 Παράδειγμα1: WordCount... 5 Παράδειγμα2: Inverted Index... 6 Περισσότερα Παραδείγματα... 7 ΕΠΙΣΚΟΠΗΣΗ HADOOP... 7 Hadoop Distributed File System HDFS... 7 Ο μηχανισμός του Map Reduce... 9 Επισκόπηση της εκτέλεσης μιας Map Reduce εργασίας Χρήσεις του Hadoop HADOOP ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ ΧΡΗΣΗΣ HADOOP ΠΩΣ ΝΑ ΓΡΑΨΕΤΕ ΕΝΑ ΠΡΟΓΡΑΜΜΑ HADOOP ΠΩΣ ΝΑ ΤΡΕΞΕΤΕ ΕΝΑ ΠΡΟΓΡΑΜΜΑ HADOOP ΒΙΒΛΙΟΓΡΑΦΙΑ ΠΑΡΑΡΤΗΜΑ Α ΚΩΔΙΚΑΣ ΠΑΡΑΔΕΙΓΜΑΤΩΝ ΚΩΔΙΚΑΣ ΠΑΡΑΔΕΙΓΜΑΤΟΣ 1 WORD COUNT ΚΩΔΙΚΑΣ ΠΑΡΑΔΕΙΓΜΑΤΟΣ 2 INVERTED INDEX ΠΑΡΑΡΤΗΜΑ Β ΕΝΤΟΛΕΣ ΧΡΗΣΗΣ HADOOP ΕΠΙΣΚΟΠΙΣΗ Γενικές Επιλογές - Generic Options ΕΝΤΟΛΕΣ ΧΡΗΣΤΩΝ - USER COMMANDS archive distcp fs fsck jar job pipes queue version CLASSNAME ΕΝΤΟΛΕΣ ΔΙΑΧΕΙΡΙΣΤΩΝ - ADMINISTRATION COMMANDS balancer daemonlog datanode Ανδρέας Παπαδόπουλος 3

4 dfsadmin jobtracker namenode secondarynamenode tasktracker ΠΑΡΑΡΤΗΜΑ Γ HADOOP STREAMING PRACTICAL HELP Ανδρέας Παπαδόπουλος 4

5 ΕΙΣΑΓΩΓΗ ΤΟ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΜΟΝΤΕΛΟ MAP REDUCE Το Map Reduce είναι ένα μοντέλο προγραμματισμού για την επεξεργασία και παραγωγή μεγάλων συνόλων δεδομένων πάνω σε ένα δίκτυο υπολογιστών (cluster) που αρχικά προτάθηκε από το Google το Το μοντέλο είναι αρκετά απλό στη χρήση και ευρέως διαδεδομένο. Το Google έχει υλοποιήσει πάνω από προγράμματα και κατά μέσο όρο κάθε μέρα τρέχουν στα clusters του Google 1000 ξεχωριστές εργασίες Map Reduce που συνολικά επεξεργάζονται πάνω από 20 petabytes δεδομένων. Η ιδέα του MapReduce είναι να παίρνει σαν είσοδο ένα σύνολο από ζευγάρια <κλειδί εισόδου τιμή> και να παράγει στην έξοδο ένα σύνολο από ζευγάρια <κλειδί εξόδου αποτέλεσμα>. Ο προγραμματιστής εκφράζει/υλοποιεί τον αλγόριθμο σαν δύο συναρτήσεις/ μεθόδους, την map και την reduce. Η συνάρτηση map δέχεται σαν είσοδο ένα ζεύγος κλειδί-τιμή και παράγει σαν έξοδο ένα ζεύγος κλειδί-τιμή. Η έξοδος της συνάρτησης map, ταξινομημένη με βάση το κλειδί, είναι η είσοδος της συνάρτησης reduce. Η συνάρτηση reduce παίρνει σαν είσοδο την έξοδο της συνάρτησης map στην μορφή κλειδί-ενδιάμεσες τιμές και την επεξεργάζεται. Συνήθως για κάθε κλειδί έχουμε μία τιμή στην έξοδο. Για την επίλυση κάποιου προβλήματος με το Map Reduce, ο προγραμματιστής πρέπει να υλοποιήσει τουλάχιστον την συνάρτηση map. Κάποιες απλές εργασίες μπορούν να υλοποιηθούν μόνο με την χρήση της συνάρτησης map. Σχήμα 1. Αναπαράσταση Map Reduce συναρτήσεων ΠΑΡΑΔΕΙΓΜΑΤΑ ΠΑΡΑΔΕΙΓΜΑ1: WORDCOUNT Το παράδειγμα αυτό παίρνει σαν είσοδο διάφορα αρχεία κειμένου και μετρά της εμφανίσεις κάθε λέξης μέσα σε όλα τα αρχεία που έχει πάρει σαν είσοδο. Ανδρέας Παπαδόπουλος 5

6 Η map, αφού πάρει τα αρχεία, δίνει σε κάθε εμφάνιση μιας λέξης μια προσωρινή τιμή ίση με ένα. Όταν η map τελειώσει την εκτέλεση της και δώσει τα αποτελέσματα της στην reduce, τότε η reduce θα αθροίσει της αυτές της προσωρινές μεταβλητές για κάθε μοναδική λέξη και θα της δώσει πίσω σαν αποτέλεσμα τον αριθμό εμφάνισης της κάθε μοναδικής λέξης μέσα στα αρχεία. Map Input: a document Output: key=word value=1 Map(void *input) { for each word w in input EmitIntermediate(w, 1); Reduce Input: key=word values=list of values (1) Output: key=word value=occurrences (SumOfInputValues) Reduce(String key, Iterator values) { int result = 0; for each v in values result += v; Emit(w, result); Πίνακας 1. Ψευδοκώδικας WordCount Από τον ψευδοκώδικα βλέπουμε πόσο απλό είναι να λύσουμε παράλληλα το πιο πάνω πρόβλημα. Μπορούν παράλληλα να τρέχουν τόσες map συναρτήσεις όσα είναι και τα αρχεία κειμένου που έχουμε, ή ακόμα και όσες είναι οι γραμμές σε όλα τα αρχεία με μοναδικό περιορισμό το υλικό που διαθέτουμε. Παρόμοια μπορούν να τρέχουν παράλληλα τόσες reduce συναρτήσεις όσα και τα κλειδιά εξόδου των map συναρτήσεων (λέξεις). Το Hadoop παραληλλοποιεί την εργασία χωρίς ο προγραμματιστής να ανησυχεί πως θα γίνει η εκτέλεση. ΠΑΡΑΔΕΙΓΜΑ2: INVERTED INDEX Στο παράδειγμα αυτό θα δούμε πως μπορούμε εύκολα με χρήση του Map Reduce να κατασκευάσουμε ένα inverted index. Σαν είσοδο έχουμε και πάλι μια συλλογή εγγράφων στα οποία θέλουμε να κτίσουμε το ευρετήριο, δηλαδή σε ποια αρχεία βρίσκεται κάθε λέξη. Map Input: a document Output: key=word value=filename Map(void *input) { for each word w in input EmitIntermediate(w, filename); Reduce Input: key=word value=list of values(filenames) Output: key=word value=files Reduce(String key, Iterator values) { String files = ; for each v in values files += v+ - ; Emit(w, files); Πίνακας 2. Ψευδοκώδικας Inverted Index Το παράδειγμα αυτό μπορεί εύκολα να επεκταθεί ούτως ώστε στο ευρετήριο να συμπεριλάβουμε και πόσες φορές εμφανίζεται η κάθε λέξη στο κάθε αρχείο. Αυτό μπορεί να γίνει με ελάχιστη επιπλέον δουλειά στην συνάρτηση reduce. Στο παράδειγμα αυτό εάν μία λέξη Ανδρέας Παπαδόπουλος 6

7 εμφανίζεται δύο ή περισσότερες φορές στο ίδιο αρχείο τότε στην έξοδο θα έχουμε στην τιμή (files) δύο ή περισσότερες φορές την ίδια ενδιάμεση τιμή (ίδιο αρχείο). Άρα απλά μετρώντας πόσες φορές έχουμε το ίδιο αρχείο-ενδιάμεση τιμή μπορούμε να βρούμε και πόσες φορές η κάθε λέξη εμφανίζεται στο κάθε αρχείο. ΠΕΡΙΣΣΟΤΕΡΑ ΠΑΡΑΔΕΙΓΜΑΤΑ Distributed Grep Count of URL Access Frequency Reverse Web-Link Graph Distributed Sort Map Εάν μία γραμμή από την είσοδο ταιριάζει με το πρότυπο (pattern) τότε δίνει στην έξοδο την συγκεκριμένη γραμμή. Για κάθε εγγραφή (πρόσβαση σε κάποια σελίδα) στα αρχεία ιστορικού(logs) δίνει έξοδο <URL, 1> Για κάθε σύνδεσμο από μία σελίδα (source URL) προς μια άλλη σελίδα (target URL) δίνει έξοδο <target, source> Για κάθε εγγραφή βρίσκει το κλειδί και δίνει έξοδο <key, record> Reduce Αντιγράφει την έξοδο της map. Μπορεί να παραληφθεί εάν δεν θέλουμε ταξινομημένη έξοδο. Προσθέτει όλες τις τιμές και δίνει έξοδο <URL, total count> Για κάθε κλειδί (target) δίνει στην έξοδο την λίστα από τις σελίδες που έχουν σύνδεσμο προς αυτή <target, list(source)> Δίνει στην έξοδο όλα τα ζεύγη που πήρε σαν είσοδο. Πίνακας 3. Περισσότερα Παραδείγματα ΕΠΙΣΚΟΠΗΣΗ HADOOP Το Hadoop είναι ένα λογισμικό ανοιχτού κώδικα που υποστηρίζει κατανεμημένη επεξεργασία μεγάλου όγκου δεδομένων (petabytes) και παρέχει μια υλοποίηση του MapReduce. Το Hadoop βασίστηκε στο Google Map Reduce framework και το Google File System (GFS). Είναι ένα έργο του Apache Software Foundation που αναπτύσσετε και χρησιμοποιείτε από ανθρώπους από όλο τον κόσμο και κυρίως την Yahoo!. HADOOP DISTRIBUTED FILE SYSTEM HDFS Το HDFS είναι ένα κατανεμημένο σύστημα αρχείων για αποθήκευση μεγάλων αρχείων (ιδανικά μεγέθους πολλαπλάσιο του 64Mb) παρόμοιο με το Google File System(GFS). Επιτυγχάνει να είναι αξιόπιστο αποθηκεύοντας τα δεδομένα σε περισσότερους από ένα κόμβους. Οι κόμβοι επικοινωνούν μεταξύ τους για εξισορρόπηση των δεδομένων, αντιγραφή ή μετακίνηση των δεδομένων, για να κρατηθεί ψηλά ο λόγος αντιγραφής (replication). Ανδρέας Παπαδόπουλος 7

8 Το σύστημα αρχείων HDFS χρησιμοποιεί ένα κεντρικό κόμβο, τον name node, ο οποίος είναι και το μοναδικό σημείο αποτυχίας (single point of failure), που κρατά τις πληροφορίες για το που βρίσκεται κάθε δεδομένο στο HDFS. Αν αυτός δεν είναι διαθέσιμος τότε δεν υπάρχει πρόσβαση στο σύστημα αρχείων. Επιπλέον χρησιμοποιεί ακόμα ένα ακόμα κόμβο, τον Secondary Namenode, ο οποίος κρατά snapshots των φακέλων του name node και μαζί με τα αρχεία ιστορικού (logs) του name node επαναφέρει το σύστημα αρχείων μετά από αποτυχία. Οι υπόλοιποι κόμβοι ονομάζονται datanodes και απλά αποθηκεύουν δεδομένα. Σχήμα 2. Αρχιτεκρονική Hadoop Cluster Ανδρέας Παπαδόπουλος 8

9 Ο ΜΗΧΑΝΙΣΜΟΣ ΤΟΥ MAP REDUCE Σχήμα 3. Μηχανισμός MapReduce Ο μηχανισμός του Map Reduce ακολουθεί το μοντέλο αρχιτεκτονικής master/slave. O κεντρικός master server, jobtracker, αναλαμβάνει τον διαμερισμό των εργασιών στους υπόλοιπους κόμβους, slave servers tasktrackers. Ο χρήστης στέλνει τις map και reduce εργασίες του στον jobtracker, ο οποίος με πολιτική FIFO (First In First Out) τις στέλνει στους tasktrackers για εκτέλεση. Οι tasktrackers απλά εκτελούν τις εργασίες που του αναθέτει ο jobtracker. Πριν από την έκδοση 0.21 εάν ένας tasktracker αποτύγχανε τότε η αντίστοιχη εργασία έπρεπε να εκτελεστεί από την αρχή. Master Slave MapReduce jobtracker tasktracker ΗDFS namenode datanode Πίνακας 4. Master/Slave - MapReduce και DFS Ανδρέας Παπαδόπουλος 9

10 ΕΠΙΣΚΟΠΗΣΗ ΤΗΣ ΕΚΤΕΛΕΣΗΣ ΜΙΑΣ MAP REDUCE ΕΡΓΑΣΙΑΣ Αρχικά η είσοδος μοιράζεται σε Μ κομμάτια, που μπορούν να επεξεργαστούν παράλληλα, κάθε ένα από τα οποία θα πάει σε ξεχωριστή map διεργασία. Τα ενδιάμεσα κλειδιά μοιράζονται στους R Reducers με χρήση κάποιας συνάρτησης κατακερματισμού (π.χ. hash (key) mod R). Η όλη εκτέλεση παρουσιάζεται στο πιο κάτω σχήμα και οι ενέργειες γίνονται με την εξής σειρά: 1. Η βιβλιοθήκη Map Reduce διασπά την είσοδο σε Μ κομμάτια, συνήθως μεγέθους 16-64Mb, και ξεκινά αρκετά αντίγραφα του προγράμματος στους κόμβους. 2. Ο master node - jobtracker αναλαμβάνει να βρει τους ανενεργούς κόμβους, tasktrackers, και να τους αναθέσει μια εργασία map ή reduce. 3. Εάν στο κόμβο, tasktracker, έχει ανατεθεί μια εργασία map τότε διαβάζει το κομμάτι εισόδου που του αντιστοιχεί και το διαμορφώνει ως κλειδί-τιμή και το δίνει ως παράμετρο στην συνάρτηση map. Τα ενδιάμεσα αποτελέσματα κρατούνται στην μνήμη. 4. Με βάση την συνάρτηση κατακερματισμού τα ενδιάμεσα αποτελέσματα γράφονται στο τοπικό δίσκο (σε R μέρη). Οι θέσεις των αποτελεσμάτων στέλνονται στον master - jobtracker ο οποίος είναι υπεύθυνος να τις διαμοιράσει στους R reducers - tasktrackers. 5. Όταν κάποιος reducer ειδοποιηθεί για αυτές τις τοποθεσίες διαβάζει απομακρυσμένα τα δεδομένα από το δίσκο του αντίστοιχου mapper. Αφού διαβάσει όλα τα δεδομένα τα ταξινομεί με βάση το κλειδί και ομαδοποιεί τιμές που αντιστοιχούν στο ίδιο κλειδί. Εάν τα δεδομένα δεν χωράνε στην μνήμη τότε χρησιμοποιείται κάποιος αλγόριθμος εξωτερικής ταξινόμησης. 6. Τα ταξινομημένα ενδιάμεσα αποτελέσματα περνιούνται στην συνάρτηση reduce για να παραχθεί η τελική έξοδος η οποία γράφεται στο τέλος ενός αρχείου για την έξοδο της συγκεκριμένης διαμέρισης. 7. Αφού τελειώσουν όλες οι εργασίες στους tasktrackers (map και reduce) ο master - jobtracker επιστρέφει και η εκτέλεση συνεχίζεται από τον κώδικα του χρήστη. Στο κατάλογο που έχει ορισθεί για την έξοδο υπάρχουν R αρχεία (ένα για κάθε reducer). Συνήθως αυτά χρησιμοποιούνται σαν είσοδος σε κάποια άλλη Map Reduce εργασία και δεν χρειάζεται να συγχωνευτούν. Τα ονόματα των αρχείων, ο αριθμός των reducers καθώς και ο διαμερισμός της εισόδου μπορούν να οριστούν από τον χρήστη. Σε όλες τις φάσεις εκτελείτε διαχείριση σφαλμάτων και σε περίπτωση αποτυχίας το Hadoop μπορεί να επανεκκινήσει την εργασία που απέτυχε σε κάποιο άλλο κόμβο ή να ανακάμψει και να συνεχίσει την εκτέλεση (hadoop v0.21) με μικρό overhead. To hadoop επιτυγχάνει καλό load balancing λόγω του μεγάλου αριθμού tasktrackers. Ανδρέας Παπαδόπουλος 10

11 Σχήμα 4. Φάσεις εκτέλεσης μιας εργασίας MapReduce ΧΡΗΣΕΙΣ ΤΟΥ HADOOP Το Hadoop σήμερα είναι η πιο διαδεδομένη υλοποίηση του MapReduce και χρησιμοποιείται για διδακτικούς σκοπούς σε αρκετά πανεπιστήμια του κόσμου, αλλά και σε μεγάλους οργανισμούς ανά το παγκόσμιο για την επεξεργασία μεγάλων δεδομένων εισόδου. Κάποιοι από τους οργανισμούς, που διατηρούν clusters για εκτέλεση Hadoop εργασιών είναι: Yahoo!, Amazon, AOL, Alibaba, Cornell University Web Lab, ETH Zurich Systems Group, Facebook, Google, IBM, New York Times κ.α. Ανδρέας Παπαδόπουλος 11

12 HADOOP ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ ΧΡΗΣΗΣ HADOOP Για το χειρισμό του Hadoop όλες οι εντολές εκτελούνται στον κεντρικό κόμβο (master node). Σε αυτό το τμήμα παρουσιάζονται οι βασικές εντολές που πιθανόν να χρειαστούν για την λειτουργία του. Όλες οι εντολές εκτελούνται από τον κατάλογο εγκατάστασης του Hadoop. Εντολή bin/hadoop namenode -format bin/start-all.sh bin/hadoop dfs copyfromlocal [source dir] [destination dir] bin/hadoop dfs copytolocal [source dir] [destination dir] bin/hadoop dfs -ls bin/hadoop jar [hadoop program] [input] [output] bin/hadoop dfs cat [path to file] bin/hadoop dfs rmr [directory] Αποτέλεσμα και σχόλια Γίνεται format το σύστημα αρχείων. Πρέπει να εκτελεστεί αμέσως μετά την εγκατάσταση για να αρχικοποιηθεί το namenode. Δεν πρέπει να εκτελεστεί ξανά, γιατί θα χαθούν όλα τα δεδομένα από το file system. Εκκίνηση του Hadoop στο cluster. Πρέπει να εκτελεστεί ούτως ώστε να αρχίσουν να τρέχουν όλοι οι συστατικοί κόμβοι του Hadoop (namenode, datanode, jobtracker και tasktracker). Αντιγραφή δεδομένων από το τοπικό σύστημα αρχείων στο HDFS. Αντιγράφει το [source dir] από το τοπικό σύστημα αρχείων στο σύστημα αρχείων του Hadoop (HDFS) στον κατάλογο [destination dir]. Αντιγραφή δεδομένων από το HDFS στο τοπικό σύστημα αρχείων. Αντιγράφει το [source dir] από το HDFS στο τοπικό σύστημα αρχείων στον κατάλογο [destination dir]. Προβολή περιεχομένων HDFS. Μπορεί να χρησιμοποιηθεί ακριβώς όπως η εντολή ls των Unix με επιπλέον παράμετρο το όνομα ενός φακέλου του HDFS. Εκτέλεση προγράμματος Hadoop. H εντολή αυτή τρέχει το [hadoop program] πάνω στο Hadoop και χρησιμοποιεί σαν είσοδο τον κατάλογο [input] και έξοδο τον κατάλογο [output]. Kαι οι δύο κατάλογοι βρίσκονται στο HDFS. Προβολή αρχείων. Η εντολή αυτή μπορεί να χρησιμοποιηθεί για να έχει κανείς πρόσβαση στο περιεχόμενο ενός αρχείου που βρίσκεται μέσα στο HDFS. Έχει ίδια λειτουργία με την εντολή cat των Unix. Διαγραφής ενός κατάλογου από το HDFS. Η συγκεκριμένη εντολή διαγράφει τον κατάλογο [directory] από το HDFS είτε είναι άδειος είτε όχι. Πίνακας 5. Βασικές εντολές χρήσης Hadoop Πλήρης οδηγός εντολών του Hadoop βρίσκεται στο Παράρτημα Β. Ανδρέας Παπαδόπουλος 12

13 ΠΩΣ ΝΑ ΓΡΑΨΕΤΕ ΕΝΑ ΠΡΟΓΡΑΜΜΑ HADOOP Αν και το Hadoop είναι γραμμένο σε Java, τα προγράμματα τα οποία τρέχουμε σε αυτό δεν πρέπει κατά ανάγκη να είναι και αυτά γραμμένα σε Java. Μια εφαρμογή Hadoop μπορεί να είναι γραμμένη εκτός από Java σε γλώσσες όπως Python ή C++ (από την έκδοση και μετά). Στο παράδειγμα που θα περιγράψω πιο κάτω θα εξηγήσω πώς να γράψουμε το δικό μας πρόγραμμα Word Count, σε γλώσσα Python, το οποίο κάνει χρήση του HadoopStreaming API, για να μας επιτρέψει να περνούμε δεδομένα μεταξύ του mapper και του reducer κάνοντας χρήση του STDIN (standard input) και STDOUT (standard output). Πρώτα πρέπει να υλοποιήσουμε την μέθοδο map, η οποία θα μετρά τις εμφανίσεις της κάθε λέξης στο σύνολο εισόδου. Η map, η οποία θα φυλαχθεί σε ξεχωριστό αρχείο (π.χ map.py), θα γράφει τα αποτελέσματα της στο STDOUT. map.py #!/usr/bin/env python import sys # input comes from STDIN (standard input) for line in sys.stdin: # remove leading and trailing whitespace line = line.strip() # split the line into words words = line.split() # increase counters for word in words: # write the results to STDOUT (standard output); # what we output here will be the input for the # Reduce step, i.e. the input for reducer.py # tab-delimited; the trivial word count is 1 print '%s\t%s' % (word, 1) Πίνακας 6. Κώδικας της συνάρτησης map για το παράδειγμα WordCount σε Python Στην συνέχεια θα υλοποιήσουμε τη μέθοδο reduce, η οποία θα αθροίζει την κάθε εμφάνιση της κάθε λέξης και θα παρουσιάζει τα τελικά αποτελέσματα. Η reduce, η οποία θα φυλαχθεί σε ξεχωριστό αρχείο (π.χ reduce.py), θα παίρνει την είσοδο της από το STDIN. Ανδρέας Παπαδόπουλος 13

14 reduce.py #!/usr/bin/env python from operator import itemgetter import sys # maps words to their counts word2count = { # input comes from STDIN for line in sys.stdin: # remove leading and trailing whitespace line = line.strip() # parse the input we got from mapper.py word, count = line.split('\t', 1) # convert count (currently a string) to int try: count = int(count) word2count[word] = word2count.get(word, 0) + count except ValueError: # count was not a number, so silently # ignore/discard this line pass # sort the words lexigraphically; # this step is NOT required, we just do it so that our # final output will look more like the official Hadoop # word count examples sorted_word2count = sorted(word2count.items(), key=itemgetter(0)) # write the results to STDOUT (standard output) for word, count in sorted_word2count: print '%s\t%s'% (word, count) Πίνακας 7. Κώδικας της συνάρτησης reduce για το παράδειγμα WordCount σε Python Αφού αποθηκεύσουμε τα αρχεία map.py και reduce.py στον κατάλογο που έχουμε εγκαταστήσει το Hadoop, μπορούμε να δοκιμάσουμε το πρόγραμμα μας με την εντολή bin/hadoop jar contrib/streaming/hadoop streaming.jar mapper mapper.py - reducer reducer.py -input [input directory] -output [output directory] Πλήρης οδηγός για το Hadoop Streaming API βρίσκεται στο Παράρτημα Γ. ΠΩΣ ΝΑ ΤΡΕΞΕΤΕ ΕΝΑ ΠΡΟΓΡΑΜΜΑ HADOOP Για να τρέξετε ένα πρόγραμμα Hadoop πρέπει πρώτα να εγκαταστήσετε μια έκδοση του Hadoop σε ένα φάκελο της επιλογής σας. Επειδή όλα τα δεδομένα εισόδου πρέπει να είναι στο HDFS πρέπει να τα αντιγράψετε από το τοπικό σύστημα αρχείων του λειτουργικού σας. Ανδρέας Παπαδόπουλος 14

15 Πρώτα πρέπει να ξεκινήσουμε το Hadoop τρέχοντας, από τον φάκελο που το εγκαταστήσαμε, την εντολή: bin/start-all.sh Αυτή η εντολή θα ξεκινήσει τα Namenode, Datanode, Jobtracker και Tasktracker. Με την εντολή: bin/hadoop dfs -copyfromlocal [source dir] [destination dir] αντιγράφετε τα δεδομένα εισόδου στο HDFS. Για να εκτελέσετε το πρόγραμμα τρέξετε την εντολή: bin/hadoop jar [program] [input] [output] Επιπλέον παράμετροι για την συγκεκριμένη εκτέλεση μπορούν να τοποθετηθούν πριν από το όνομα του προγράμματος (π.χ. bin/hadoop jar -Dmapred.task.timeout=0 [program] [input] [output] ) Για να μεταφέρετε τα αποτελέσματα από το HDFS στο τοπικό σύστημα αρχείων του λειτουργικού σας εκτελείτε την εντολή: bin/hadoop dfs copytolocal [source dir] [destination dir] Τα αποτελέσματα μπορούν να παρουσιαστούν χωρίς να αντιγραφούν στο τοπικό σύστημα αρχείων με την εντολή: bin/hadoop dfs cat [dir]/* Ανδρέας Παπαδόπουλος 15

16 ΒΙΒΛΙΟΓΡΑΦΙΑ [ 1 ] Welcome to Apache Hadoop!, [ 2 ] Wikipedia, the free encyclopedia, [ 3 ] Dean, Jeffrey, Sanjay Ghemawat, MapReduce: Simplified Data Processing on Large Clusters, Google Inc, 2004 [ 4 ] Dilpesh Shrestha, Text mining with Lucene and Hadoop: Document clustering with feature extraction, Wakhok University, 2009 [ 5 ] Jimmy Lin, Chris Dyer, Data-Intensive Text Processing with MapReduce, University of Maryland, 2010 [ 6 ] Jason Venner, Pro Hadoop, Apress June 2009 [ 7 ] Tom White, Hadoop: The definitive guide MapReduce for the cloud, O'Reilly Media, May 2009 Ανδρέας Παπαδόπουλος 16

17 ΠΑΡΑΡΤΗΜΑ Α ΚΩΔΙΚΑΣ ΠΑΡΑΔΕΙΓΜΑΤΩΝ ΚΩΔΙΚΑΣ ΠΑΡΑΔΕΙΓΜΑΤΟΣ 1 WORD COUNT import java.io.ioexception; import java.util.*; import org.apache.hadoop.fs.path; import org.apache.hadoop.io.*; import org.apache.hadoop.mapred.*; public class WordCount { public static class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> { private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(longwritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException { String line = value.tostring(); StringTokenizer tokenizer = new StringTokenizer(line); while (tokenizer.hasmoretokens()) { word.set(tokenizer.nexttoken()); output.collect(word, one); public static class Reduce extends MapReduceBase implements Reducer<Text, IntWritable, Text, IntWritable> { public void reduce(text key, Iterator<IntWritable> values, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException { int sum = 0; while (values.hasnext()) { sum += values.next().get(); output.collect(key, new IntWritable(sum)); public static void main(string[] args) throws Exception { JobConf conf = new JobConf(WordCount.class); conf.setjobname("wordcount"); conf.setoutputkeyclass(text.class); conf.setoutputvalueclass(intwritable.class); conf.setmapperclass(map.class); Ανδρέας Παπαδόπουλος 17

18 conf.setcombinerclass(reduce.class); conf.setreducerclass(reduce.class); conf.setinputformat(textinputformat.class); conf.setoutputformat(textoutputformat.class); FileInputFormat.setInputPaths(conf, new Path("input")); FileOutputFormat.setOutputPath(conf, new Path("output")); try { JobClient.runJob(conf); catch (Exception e) { e.printstacktrace(); ΚΩΔΙΚΑΣ ΠΑΡΑΔΕΙΓΜΑΤΟΣ 2 INVERTED INDEX import java.io.ioexception; import java.util.iterator; import java.util.stringtokenizer; import org.apache.hadoop.fs.path; import org.apache.hadoop.io.longwritable; import org.apache.hadoop.io.text; import org.apache.hadoop.mapred.fileinputformat; import org.apache.hadoop.mapred.fileoutputformat; import org.apache.hadoop.mapred.filesplit; import org.apache.hadoop.mapred.jobclient; import org.apache.hadoop.mapred.jobconf; import org.apache.hadoop.mapred.mapreducebase; import org.apache.hadoop.mapred.mapper; import org.apache.hadoop.mapred.outputcollector; import org.apache.hadoop.mapred.reducer; import org.apache.hadoop.mapred.reporter; public class InvertedIndex { public static class InvertedIndexMapper extends MapReduceBase implements Mapper<LongWritable, Text, Text, Text> { private final static Text word = new Text(); private final static Text location = new Text(); public void map(longwritable key, Text val, OutputCollector<Text, Text> output, Reporter reporter) throws IOException { FileSplit filesplit = (FileSplit)reporter.getInputSplit(); String filename = filesplit.getpath().getname(); location.set(filename); Ανδρέας Παπαδόπουλος 18

19 String line = val.tostring(); StringTokenizer itr = new StringTokenizer(line.toLowerCase()); while (itr.hasmoretokens()) { word.set(itr.nexttoken()); output.collect(word, location); public static class InvertedIndexReducer extends MapReduceBase implements Reducer<Text, Text, Text, Text> { public void reduce(text key, Iterator<Text> values, OutputCollector<Text, Text> output, Reporter reporter) throws IOException { boolean first = true; StringBuilder toreturn = new StringBuilder(); while (values.hasnext()){ if (!first) toreturn.append(", "); first=false; toreturn.append(values.next().tostring()); output.collect(key, new Text(toReturn.toString())); public static void main(string[] args) { JobConf conf = new JobConf(InvertedIndex.class); conf.setjobname("invertedindex"); conf.setoutputkeyclass(text.class); conf.setoutputvalueclass(text.class); FileInputFormat.addInputPath(conf, new Path("input")); FileOutputFormat.setOutputPath(conf, new Path("output")); conf.setmapperclass(invertedindexmapper.class); conf.setreducerclass(invertedindexreducer.class); try { JobClient.runJob(conf); catch (Exception e) { e.printstacktrace(); Ανδρέας Παπαδόπουλος 19

20 ΠΑΡΑΡΤΗΜΑ Β ΕΝΤΟΛΕΣ ΧΡΗΣΗΣ HADOOP ΕΠΙΣΚΟΠΙΣΗ Όλες οι εντολές εκτελούνται από το bin/hadoop script. Εάν εκτελέσουμε το hadoop script χωρίς παραμέτρους βλέπουμε την περιγραφή όλων των εντολών. Χρήση: hadoop [--config confdir] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS] Hadoop has an option parsing framework that employs parsing generic options as well as running classes. COMMAND_OPTION --config confdir GENERIC_OPTIONS COMMAND COMMAND_OPTIONS Περιγραφή Αλλάζει το φάκελο με τις ρυθμίσεις από ${HADOOP_HOME/conf σε confdir. Συνηθισμένες εντολές που υποστηρίζονται από πολλές εντολές. Διάφορες εντολές που περιγράφονται πιο κάτω. Οι εντολές χωρίζονται σε «Εντολές Χρήστη» και «Εντολές Διαχειριστή». ΓΕΝΙΚΕΣ ΕΠΙΛΟΓΕΣ - GENERIC OPTIONS Οι πιο κάτω επιλογές υποστηρίζονται από dfsadmin, fs, fsck και job. Οι εφαρμογές πρέπει να υλοποιούν την διεπαφή Tool για να υποστηρίξουν γενικές επιλογές (GenericOptions). GENERIC_OPTION Περιγραφή -conf <configuration file> Καθορίζει το αρχείο με τις ρυθμίσεις μιας εφαρμογής. -D <property=value> Αλλάζει την τιμή μιας ιδιότητας (property). -fs <local namenode:port> Καθορίζει ένα namenode. -jt <local jobtracker:port> Καθορίζει ένα job tracker. Εφαρμόζεται μόνο σε job. -files <comma separated list of files> Καθορίζει κάποια αρχεία, χωρισμένα με κόμμα, για να αντιγραφούν στο cluster. Εφαρμόζεται μόνο σε job. -libjars <comma separated list of jars> Καθορίζει κάποια αρχεία jar, χωρισμένα με κόμμα, για να συμπεριληφθούν στο classpath. Εφαρμόζεται μόνο σε job. -archives <comma separated list of archives> Καθορίζει κάποια συμπιεσμένα αρχεία, χωρισμένα με κόμμα, για να αποσυμπιεστούν. Εφαρμόζεται μόνο σε job. Ανδρέας Παπαδόπουλος 20

21 ΕΝΤΟΛΕΣ ΧΡΗΣΤΩΝ - USER COMMANDS Εντολές που χρησιμοποιούνται από όλους τους χρήστες ενός hadoop cluster. ARCHIVE Δημιουργία ενός συμπιεσμένου αρχείου hadoop. Χρήση: hadoop archive -archivename NAME <src>* <dest> -archivename NAME src dest Όνομα του συμπιεσμένου αρχείου που θα δημιουργηθεί. Διαδρομή σε κάποια αρχεία. Δουλεύει και με κανονικές εκφράσεις. Φάκελος που θα αποθηκευτεί το νέο αρχείο. DISTCP Αντιγράφει αναδρομικά αρχεία ή φακέλους. Χρήση: hadoop distcp <srcurl> <desturl> srcurl desturl Source Url Destination Url FS Πρόσβαση στο σύστημα αρχείων. Όλες οι εντολές παίρνουν παραμέτρους διαδρομές της scheme://autority/path. Για το HDFS το scheme είναι hdfs, και για το τοπικό σύστημα αρχείων είναι file. Το scheme και το authority δεν είναι υποχρεωτικά. Οι πιο πολλές εντολές συμπεριφέρονται όπως και οι αντίστοιχες εντολές σε Unix. Πληροφορίες για σφάλματα γράφονται στο stderr και η έξοδος στο stdout. Χρήση: hadoop fs [GENERIC_OPTIONS] [COMMAND_OPTIONS] Τα COMMAND_OPTIONS είναι: CAT Χρήση: hadoop fs -cat URI [URI ] Αντιγράφει στο stdout τα αρχεία που καθορίζονται από τα URIs. CHGRP Χρήση: hadoop fs -chgrp [-R] GROUP URI [URI ] Αλλαγή της ομάδας που έχουν πρόσβαση στα αρχεία. Με την παράμετρο -R, οι αλλαγές εφαρμόζονται αναδρομικά. Ο χρήστης πρέπει να είναι ο ιδιοκτήτης των αρχείων ή super-user. CHMOD Χρήση: hadoop fs -chmod [-R] <MODE[,MODE]... OCTALMODE> URI [URI ] Ανδρέας Παπαδόπουλος 21

22 Αλλαγή των δικαιωμάτων πρόσβασης στα αρχεία. Με την παράμετρο -R, οι αλλαγές εφαρμόζονται αναδρομικά. Ο χρήστης πρέπει να είναι ο ιδιοκτήτης των αρχείων ή super-user. CHOWN Χρήση: hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ] Αλλαγή του ιδιοκτήτη των αρχείων. Με την παράμετρο -R, οι αλλαγές εφαρμόζονται αναδρομικά. Ο χρήστης πρέπει να είναι super-user. COPYFROMLOCAL Χρήση: hadoop fs -copyfromlocal <localsrc> URI Παρόμοια με την put, με την διαφορά ότι το src πρέπει να είναι στο τοπικό σύστημα αρχείων. COPYTOLOCAL Χρήση: hadoop fs -copytolocal [-ignorecrc] [-crc] URI <localdst> Παρόμοια με την get, με την διαφορά ότι το dst πρέπει να είναι στο τοπικό σύστημα αρχείων. COUNT Χρήση: hadoop fs -count [-q] <paths> Μετρά τον αριθμό των φακέλων, αρχείων και τα bytes στις διαδρομές που καθορίζονται στο paths. Οι στήλες εξόδου είναι: DIR_COUNT, FILE_COUNT, CONTENT_SIZE FILE_NAME. Με την παράμετρο -q οι στήλες εξόδου είναι: QUOTA, REMAINING_QUATA, SPACE_QUOTA, REMAINING_SPACE_QUOTA, DIR_COUNT, FILE_COUNT, CONTENT_SIZE, FILE_NAME. CP Χρήση: hadoop fs -cp URI [URI ] <dest> Αντιγραφή αρχείων από τα URIs στο dest. Για πολλά URI το dest πρέπει να είναι φάκελος. DU Χρήση: hadoop fs -du URI [URI ] Παρουσιάζει το συνολικό μέγεθος των αρχείων. DUS Χρήση: hadoop fs -dus <args> Παρουσιάζει συνοπτικά το μέγεθος των αρχείων. EXPUNGE Χρήση: hadoop fs -expunge Άδειασμα του καλάθου αχρήστων. GET Χρήση: hadoop fs -get [-ignorecrc] [-crc] <src> <localdst> Αντιγραφή αρχείων στο τοπικό σύστημα αρχείων. Εάν τα αρχείαν αποτύχουν τον έλεγχο CRC μπορούν να αντιγραφούν με την χρήση της παραμέτρου ignorecrc. Με την παράμετρο - crc αντιγράφονται τα αρχεία και τα CRCs. Ανδρέας Παπαδόπουλος 22

23 GETMERGE Χρήση: hadoop fs -getmerge <src> <localdst> [addnl] Όλα τα αρχεία στο src ενοποιούνται και αντιγράφονται στο αρχείο localdst. Με την επιλογή addnl στο τέλος κάθε αρχείου προστίθεται ο χαρακτήρας newline. LS Χρήση: hadoop fs -ls <args> Εάν το args καθορίζει κάποιο αρχείο η έξοδος είναι στατιστικά για αυτό το αρχείο της εξής μορφής: permissions number_of_replicas userid groupid filesize modification_date modification_time filename Εάν το args καθορίζει κάποιο φάκελο τότε επιστρέφεται η λίστα με τα αρχεία σε αυτό το φάκελο. Η έξοδος είναι της μορφής: permissions userid groupid modification_date modification_time dirname LSR Χρήση: hadoop fs -lsr <args> Αναδρομική ls. Ίδια με την ls R των Unix. MKDIR Χρήση: hadoop fs -mkdir <paths> Δημιουργία φακέλων. Ίδια με την mkdir p των Unix. MOVEFROMLOCAL Χρήση: dfs -movefromlocal <localsrc> <dst> Παρόμοια με την put, με την διαφορά ότι το localsrc διαγράφεται μετά την αντιγραφή. MOVETOLOCAL Χρήση: hadoop fs -movetolocal [-crc] <src> <dst> Παρουσιάζει το μήνυμα "Not implemented yet". MV Χρήση: hadoop fs -mv URI [URI ] <dest> Μεταφορά αρχείων από τα URIs στο dest. Δεν υποστηρίζει μεταφορά μεταξύ διαφορετικών συστημάτων αρχείων. PUT Χρήση: hadoop fs -put <localsrc>... <dst> Αντιγράφει τα αρχεία από το τοπικό σύστημα αρχείων στο dst. Μπορεί να διαβάσει είσοδο από το stdin π.χ. hadoop fs -put - hdfs://nn.example.com/hadoop/hadoopfile RM Χρήση: hadoop fs -rm URI [URI ] Διαγραφή αρχείων ή κενών φακέλων. Ανδρέας Παπαδόπουλος 23

24 RMR Χρήση: hadoop fs -rmr URI [URI ] Αναδρομική rm για διαγραφή όχι κενών φακέλων. SETREP Χρήση: hadoop fs -setrep [-R] <path> Αλλάζει το replication factor ενός αρχείου. Με την παράμετρο -R εφαρμόζεται αναδρομικά. STAT Χρήση: hadoop fs -stat URI [URI ] Επιστρέφει πληροφορίες για τα URIs. TAIL Χρήση: hadoop fs -tail [-f] URI Επιστρέφει το τελευταίο kilobyte του αρχείου στο stdout. Η παράμετρος -f είναι ίδια με την εντολή στα Unix. TEST Χρήση: hadoop fs -test -[ezd] URI Επιλογές: -e Επιστρέφει 0 εάν το αρχείο υπάρχει. -z Επιστρέφει 0 εάν το αρχείο είναι μηδενικού μεγέθους. -d Επιστρέφει 1 εάν το αρχείο είναι φάκελος αλλιώς 0. TEXT Χρήση: hadoop fs -text <src> Παίρνει σαν είσοδο αρχεία της μορφής zip ή TextRecordInputStream και δίνει την έξοδο σε κείμενο txt. TOUCHZ Χρήση: hadoop fs -touchz URI [URI ] Δημιουργία μηδενικού μεγέθους αρχεία. FSCK Έλεγχος του συστήματος αρχείων HDFS. Χρήση: hadoop fsck [GENERIC_OPTIONS] <path> [-move -delete -openforwrite] [-files [- blocks [-locations -racks]]] <path> -move -delete -openforwrite -files -blocks Εκκίνηση του έλεγχου από αυτό το path. Μεταφορά των corrupted αρχείων στο /lost+found Διαγραφή corrupted αρχείων. Τυπώνει ποια αρχεία είναι ανοικτά για εγγραφή. Τυπώνει ποια αρχεία ελέγχονται. Τυπώνει αναφορά για τα blocks. Ανδρέας Παπαδόπουλος 24

EPL 660: Lab 4 Introduction to Hadoop

EPL 660: Lab 4 Introduction to Hadoop EPL 660: Lab 4 Introduction to Hadoop Andreas Kamilaris Department of Computer Science MapReduce Πρόβλημα: Ανάγκη για επεξεργασία μεγάλου όγκου δεδομένων στα συστήματα ανάκτησης πληροφορίας. Λύση: κατανομή

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Web Data Mining ΕΡΓΑΣΤΗΡΙΟ 2 & 3. Prepared by Costantinos Costa Edited by George Nikolaides. EPL 451 - Data Mining on the Web EPL 451 - Data Mining on the Web Web Data Mining ΕΡΓΑΣΤΗΡΙΟ 2 & 3 Prepared by Costantinos Costa Edited by George Nikolaides Semester Project Microsoft Malware Classification Challenge (BIG 2015) More info:

Διαβάστε περισσότερα

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

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ. ΤΕΙ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΥΣ Θέμα: ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ. Εισηγητής: Δ. Ν. Καλλέργης, MSc. Φοιτήτρια: Κοντζοπούλου Παναγιώτα Εισαγωγή

Διαβάστε περισσότερα

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Αν κάπου κάνετε κάποιες υποθέσεις να αναφερθούν στη σχετική ερώτηση. Όλα τα αρχεία που αναφέρονται στα προβλήματα βρίσκονται στον ίδιο φάκελο με το εκτελέσιμο

Διαβάστε περισσότερα

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Ολοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα είναι μικρότεροι το 1000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Διάρκεια: 3,5 ώρες Καλή

Διαβάστε περισσότερα

EPL451: Data Mining on the Web Lab 1

EPL451: Data Mining on the Web Lab 1 EPL451: Data Mining on the Web Lab 1 Παύλος Αντωνίου Γραφείο: B109, ΘΕΕ01 University of Cyprus Department of Computer Science General Info Τετάρτη: 18:00-20:00, Αίθουσα 101, ΘΕΕ01 Ιστοσελίδα μαθήματος

Διαβάστε περισσότερα

[11] Υπολογιστικά συστήματα: Στρώματα. Περιεχόμενα. Εισαγωγή. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό

[11] Υπολογιστικά συστήματα: Στρώματα. Περιεχόμενα. Εισαγωγή. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό Υπολογιστικά συστήματα: Στρώματα 1 ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗς ΠΛΗΡΟΦΟΡΙΚΗΣ επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό δεδομένα Εισαγωγή στο Unix Περιεχόμενα Εισαγωγή 2 Εισαγωγή

Διαβάστε περισσότερα

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Τμημα Πληροφορικης και Τηλεματικης Τσάμη Παναγιώτα ΑΜ: 20833 ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Άσκηση 1 Αθήνα 13-12-2011 Αναφορά Ενότητα 1 A Δημιουργήστε στο φλοιό 3 εντολές (alias) που η

Διαβάστε περισσότερα

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Όλοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα μικρότεροι του 10000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Αν κάπου κάνετε κάποιες υποθέσεις

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης Περίληψη Προηγούμενου Επισκόπηση αρχείων και επεξεργασία κειμένου Εντολές file,

Διαβάστε περισσότερα

3ο Εργαστήριο Βασικές εντολές διαχείρισης αρχείων σε LINUX

3ο Εργαστήριο Βασικές εντολές διαχείρισης αρχείων σε LINUX ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τμήμα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήματα (Εργαστήριο) Διδάσκων: I. Τσακνάκης 3ο Εργαστήριο Βασικές εντολές διαχείρισης αρχείων σε LINUX Αρχικός φάκελος χρήστη Home directory

Διαβάστε περισσότερα

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

Hancock. Ζωγραφάκης Ιωάννης Εξαρχάκος Νικόλαος. ΕΠΛ 428 Προγραμματισμός Συστημάτων Hancock Ζωγραφάκης Ιωάννης Εξαρχάκος Νικόλαος Χ346339 Τ911778 ΕΠΛ 428 Προγραμματισμός Συστημάτων Ιστορική Αναδρομή Δημιουργήθηκε από την εταιρεία ΑΤ&Τ LAB Αφορμή δημιουργίας: Η ανάγκη για καθαρό και αποδοτικό

Διαβάστε περισσότερα

(C) 2010 Pearson Education, Inc. All rights reserved.

(C) 2010 Pearson Education, Inc. All rights reserved. Connectionless transmission with datagrams. Connection-oriented transmission is like the telephone system You dial and are given a connection to the telephone of fthe person with whom you wish to communicate.

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I Πιτροπάκης Νικόλαος Υποψήφιος Διδάκτορας Contact: npitrop@unipi.gr Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr If at first you don't succeed, call it version

Διαβάστε περισσότερα

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

Big Data. CERN/LHC: 40TB/μέρα (15PB/έτος) Πολλά, πολλά ακόμα Web logs, αρχεία ομιλιών, ιατρικοί φάκελοι, κλπ. για όλους... MapReduce Big Data 90% των σημερινών δεδομένων δημιουργήθηκαν τα τελευταία 2 χρόνια Νόμος του Moore: Διπλασιασμός δεδομένων κάθε 18 μήνες YouTube: 13 εκατ. ώρες και 700 δις αναπαραγωγές το 2010 Facebook:

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο input

Διαβάστε περισσότερα

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011 Διάρκεια Διαγωνισμού: 3 ώρες Απαντήστε όλες τις ερωτήσεις Μέγιστο Βάρος (20 Μονάδες) Δίνεται ένα σύνολο από N σφαιρίδια τα οποία δεν έχουν όλα το ίδιο βάρος μεταξύ τους και ένα κουτί που αντέχει μέχρι

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial Introduction Το Javadoc είναι ένα εργαλείο που παράγει αρχεία html (παρόμοιο με τις σελίδες στη διεύθυνση http://docs.oracle.com/javase/8/docs/api/index.html) από τα σχόλια

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα. Javascript LCR example

Κατανεμημένα Συστήματα. Javascript LCR example Κατανεμημένα Συστήματα Javascript LCR example Javascript JavaScript All JavaScript is the scripting language of the Web. modern HTML pages are using JavaScript to add functionality, validate input, communicate

Διαβάστε περισσότερα

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Να γραφεί πρόγραμμα το οποίο δέχεται ως είσοδο μια ακολουθία S από n (n 40) ακέραιους αριθμούς και επιστρέφει ως έξοδο δύο ακολουθίες από θετικούς ακέραιους

Διαβάστε περισσότερα

Τµήµα Πληροφορικής. Δοµές Δεδοµένων - Εργασία 1. Φθινοπωρινό Εξάµηνο Διδάσκων: E. Μαρκάκης. Στοίβες και Ουρές. Οικονοµικό Πανεπιστήµιο Αθηνών

Τµήµα Πληροφορικής. Δοµές Δεδοµένων - Εργασία 1. Φθινοπωρινό Εξάµηνο Διδάσκων: E. Μαρκάκης. Στοίβες και Ουρές. Οικονοµικό Πανεπιστήµιο Αθηνών Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα Πληροφορικής Φθινοπωρινό Εξάµηνο 2016 Δοµές Δεδοµένων - Εργασία 1 Διδάσκων: E. Μαρκάκης Στοίβες και Ουρές Σκοπός της εργασίας είναι η εξοικείωση µε βασικούς αφηρηµένους

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε

Διαβάστε περισσότερα

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

MapReduce Εισαγωγή. MapReduce. ηµήτρης Λεβεντέας Εισαγωγή MapReduce ηµήτρης Λεβεντέας 6 Μαΐου 2010 Εισαγωγή Ορισµός Τι είναι Ορισµός Το MapReduce είναι ένα framework λογισµικού που είσηχθηκε από την Google για να υποστηρίξει κατανεµηµένο υπολογισµό σε

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

Διαβάστε περισσότερα

Unix: Εντολές, οργάνωση και χειρισµός αρχείων, διεργασίες

Unix: Εντολές, οργάνωση και χειρισµός αρχείων, διεργασίες Unix: Εντολές, οργάνωση και χειρισµός αρχείων, διεργασίες Σύνταξη εντολών Περιεχόµενα Οργάνωση και χειρισµός αρχείων Μπαλαντέρ ικαιώµατα χρήσης αρχείων και οµάδες χρηστών Έλεγχος διεργασιών Σύνταξη εντολών

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

Διαβάστε περισσότερα

Μερικές άλλες χρήσιμες εντολές

Μερικές άλλες χρήσιμες εντολές 1 Μερικές άλλες χρήσιμες εντολές whoami (Εμφανίζει το όνομα του τρέχοντος χρήστη) pwd (Εμφανίζει το όνομα του τρέχοντος καταλόγου) cat text file name (Παρουσιάζει στην οθόνη το περιεχόμενο ενός αρχείου

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις 2 Ανατομία ενός προγράμματος

Διαβάστε περισσότερα

Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ FILE & PROCESS HANDLING

Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ FILE & PROCESS HANDLING Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ FILE & PROCESS HANDLING Επιλογή δομής δεδομένων Κριτήρια: Μέγεθος του προβλήματος Πως θα χρησιμοποιηθεί Ενέργειες που καθορίζουν

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 11/3/2006

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 11/3/2006 ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 11/3/26 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Ολοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα μικρότεροι το 1 εκτός αν ορίζεται διαφορετικά στη διατύπωση

Διαβάστε περισσότερα

Εργασία Μαθήματος Αξία: 40% του τελικού σας βαθμού Ανάθεση: Παράδοση:

Εργασία Μαθήματος Αξία: 40% του τελικού σας βαθμού Ανάθεση: Παράδοση: Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών ΗΥ463 Συστήματα Ανάκτησης Πληροφοριών 2009-2010 Φθινοπωρινό Εξάμηνο Εργασία Μαθήματος Αξία: 40% του τελικού σας βαθμού Ανάθεση: Παράδοση: Σκοπός αυτής της

Διαβάστε περισσότερα

Προγραµµατισµός 2 The shell

Προγραµµατισµός 2 The shell Προγραµµατισµός 2 The shell 1 CLI vs GUI! CLI (Command Line Interface) Μεγαλύτερη ευελιξία και ταχύτητα Πιο εύκολο να γίνουν πολύπλοκες λειτουργίες. find. -mtime -2 -name '*.txt' -exec sed -i.bak 's/hi/bye/g'

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΕΠΛ 451 Εξόρυξη Δεδομένων στον Παγκόσμιο Ιστό I. Στόχος ΑΣΚΗΣΗ 1 Ανάλυση συσχετίσεων ανάμεσα σε προϊόντα Διδάσκων: Γιώργος Πάλλης Υπεύθυνος Εργασίας: Παύλος Αντωνίου

Διαβάστε περισσότερα

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών Λειτουργικά Αριστείδης Ηλίας Συστήματα Ι Φ ρ ο ν τ ι σ τ ή ρ ι ο Shell Scripting Εισαγωγή Ένα shell script είναι μια λίστα εντολών που εκτελούνται ακολουθιακά Εκτελούνται ανάλογα με το κέλυφος και για

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Λειτουργικό Σύστημα:

Διαβάστε περισσότερα

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java Java Media Framework Ηβιβλιοθήκη JMF Εγκαθίσταται επιπρόσθετα στη Java Αναπαραγωγή πολυµέσων Αποστολή και λήψη πολυµέσων σε πραγµατικό χρόνο Γραφικά αντικείµενα

Διαβάστε περισσότερα

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

Διαβάστε περισσότερα

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

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο Στο φετινό εργαστήριο του μαθήματος, έχετε τη δυνατότητα να δουλέψετε σε 2 περιβάλλοντα. Ένα σε περιβάλλον UNIX μέσω απομακρυσμένης σύνδεσης σε

Διαβάστε περισσότερα

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 15: Αναδρομή (Recursion) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Η έννοια της αναδρομής Μη αναδρομικός / Αναδρομικός Ορισμός Συναρτήσεων Παραδείγματα Ανάδρομης Αφαίρεση της Αναδρομής

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07 Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 22/11/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 22/11/07 Παράδειγμα με if/else if και user input: import javautil*; public class Grades public

Διαβάστε περισσότερα

Αβδέλαρου Κωνσταντίνα

Αβδέλαρου Κωνσταντίνα ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ Αβδέλαρου Κωνσταντίνα 1 η Εργασία στο μάθημα Λειτουργικά Συστήματα Ταύρος, 9 Δεκεμβρίου 2014 Άσκηση 1.1 Το shell script που δημιουργήθηκε είναι:

Διαβάστε περισσότερα

ιαδικτυακές Εφαρµογές

ιαδικτυακές Εφαρµογές ιαδικτυακές Εφαρµογές µε Java2 Στοιχεία ικτυακής Επικοινωνίας Όροι IP address 32bit αριθµός που χρησιµοποιείται από το Internet Protocol για την παράδοση δεδοµένων στο σωστό υπολογιστή στο δίκτυο. Port

Διαβάστε περισσότερα

Shell Scripts: loops / if / test

Shell Scripts: loops / if / test Shell Scripts: loops / if / test Loops with for while until for variable in list_of_values ne while εντολή (επιτυχής) ne until εντολή (επιτυχής) ne For in exi times apo ayti ti lista in 1 2 alla kai alles

Διαβάστε περισσότερα

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

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Εισαγωγή στη γλώσσα προγραμματισμού JAVA Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Το πρώτο φλιτζάνι Java Λίστα με τα απαραίτητα Το πρώτο μου πρόγραμμα(hello World) Συνεχίζοντας

Διαβάστε περισσότερα

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2012-2013 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη Project 2012-2013 Υλοποίηση ενός chat server-client Παράδοση: 7/2/2013

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Συναρτήσεις Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Συναρτήσεις Ως τώρα γράφαμε όλα τα προγράμματα μας μέσα στην main..1

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Είσοδος Χρησιμοποιούμε την κλάση Scanner της Java import java.util.scanner; Αρχικοποιείται με το ρεύμα εισόδου: Scanner in = new Scanner(System.in);

Διαβάστε περισσότερα

Βασικές Έννοιες Δοµών Δεδοµένων

Βασικές Έννοιες Δοµών Δεδοµένων Δοµές Δεδοµένων Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος Βασικές Έννοιες

Διαβάστε περισσότερα

MapReduce: Simplified Data Processing on Large Clusters

MapReduce: Simplified Data Processing on Large Clusters MapReduce: Simplified Data Processing on Large Clusters Jeffrey Dean, Sanjay Ghemawat Commun. ACM 51(1), 2008 and OSDI 2004 Επιμέλεια παρουσίασης: Κωλέτσου Ευτυχία 2 Θεματολογία 3 Θεματολογία Επισκόπηση

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 Κατασκευαστές (Constructors) Ειδικός τύπος μεθόδων, οι οποίες: - είναι public και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες

Διαβάστε περισσότερα

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Python & NLTK: Εισαγωγή

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Python & NLTK: Εισαγωγή ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ Python & NLTK: Εισαγωγή Εισαγωγή Γιατί Python? Παρουσίαση NLTK Πηγές και χρήσιμα εργαλεία Φροντιστήριο σε Python Στο φροντιστήριο: Εισαγωγή στην Python Ζητήματα προγραμματισμού για

Διαβάστε περισσότερα

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP) ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP) Γιάννης Σαμωνάκης 1 Περιεχόμενα Τι είναι η PHP Που μπορεί να χρησιμοποιηθεί

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Λύβας Χρήστος chrislibas@ssl-unipi.gr Μανουσόπουλος Χρήστος cman@unipi.gr Αρχική επιμέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΔΟΜΗ ΚΑΤΑΛΟΓΩΝ (1/5) +- / Ριζικός κατάλογος

Διαβάστε περισσότερα

ΑΝΑΘΕΣΗ ΘΕΜΑΤΩΝ ΣΕΜΙΝΑΡΙΟΥ

ΑΝΑΘΕΣΗ ΘΕΜΑΤΩΝ ΣΕΜΙΝΑΡΙΟΥ ΑΝΑΘΕΣΗ ΘΕΜΑΤΩΝ ΣΕΜΙΝΑΡΙΟΥ 1) Υλοποίηση εφαρμογής σε android μήνυμα που να σας καλωσορίζει στο ΤΕΙ ΛΑΜΙΑΣ. ΗΜΗΤΡΙΟΥ ΣΤΑΥΡΟΣ ΑΜ.1802, ΚΟΝΤΑΞΗΣ ΘΑΝΑΣΗΣ ΑΜ 1690, ΠΑΠΠΑΣ ΗΜΗΤΡΗΣ ΑΜ 1731 Μια εφαρµογή που να

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στο Λ.Σ. UNIX

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στο Λ.Σ. UNIX Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στο Λ.Σ. UNIX Εργαστηριακές Σημειώσεις Εισαγωγή στο UNIX Αρμοδιότητες των Λ.Σ. Διαχείριση πόρων o o Συσκευές I/O (disk, keyboard, mouse, terminal) Μνήμη Διαχείριση

Διαβάστε περισσότερα

Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort

Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Ο αλγόριθμος ταξινόμησης Radix Sort -Δυο εκδοχές: Most Significant Digit (MSD) και Least Significant

Διαβάστε περισσότερα

Λειτουργικό Σύστημα: διαχείριση πόρων. Διαχείριση αρχείων. Τι είναι ένα αρχείο ; Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικό Σύστημα: διαχείριση πόρων. Διαχείριση αρχείων. Τι είναι ένα αρχείο ; Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικό Σύστημα: διαχείριση πόρων Εισαγωγή Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Επικοινωνία με χρήστη

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II Strings Η κλάση String είναι προκαθορισμένη κλάση της Java που μας επιτρέπει να χειριζόμαστε αλφαριθμητικά. Ο τελεστής + μας επιτρέπει

Διαβάστε περισσότερα

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

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,

Διαβάστε περισσότερα

Physical DB Design. B-Trees Index files can become quite large for large main files Indices on index files are possible.

Physical DB Design. B-Trees Index files can become quite large for large main files Indices on index files are possible. B-Trees Index files can become quite large for large main files Indices on index files are possible 3 rd -level index 2 nd -level index 1 st -level index Main file 1 The 1 st -level index consists of pairs

Διαβάστε περισσότερα

Δομές Δεδομένων - Εργαστήριο 2. Λίστες

Δομές Δεδομένων - Εργαστήριο 2. Λίστες Λίστες Λίστες (Lists) : Συλλογή δεδομένων σε δυναμικά δεσμευμένους κόμβους. Κάθε κόμβος περιέχει συνδέσεις προς άλλους κόμβους. Προσπέλαση -στού κόμβου διατρέχοντας όλους τους προηγούμενους. Πολλές παραλλαγές

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ Κων. Κόκκινος ΠΙΝΑΚΕΣ (ARRAYS) Είναι χώροι της μνήμης για προσωρινή αποθήκευση δεδομένων του ίδιου τύπου. Οι πίνακες είναι δομές δεδομένων που τις

Διαβάστε περισσότερα

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record) Διαχείριση Αρχείων Αρχεία Για να είναι δυνατή η επεξεργασία μεγάλου αριθμού δεδομένων τα δεδομένα είναι αποθηκευμένα σε ψηφιακά μέσα κατάλληλα οργανωμένα. Η αποθήκευση γίνεται σε αρχεία. Πολλά προγράμματα

Διαβάστε περισσότερα

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions) Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions) Αυγερινός Αραμπατζής avi@ee.duth.gr www.aviarampatzis.com Βάσεις Δεδομένων Stored Procedures 1 Stored Routines (1/2) Τμήματα κώδικα τα

Διαβάστε περισσότερα

Προγραμματισμός Διαχείρισης Συστημάτων Ι

Προγραμματισμός Διαχείρισης Συστημάτων Ι Προγραμματισμός Διαχείρισης Συστημάτων Ι Μάθημα 2ο Βασικές Εντολές Διαχείρισης Αρχείων και Καταλόγων Μιχαηλίδης Παναγιώτης Περιεχόμενα Σύστημα αρχείων Αρχεία και κατάλογοι Διαδρομές αρχείων και καταλόγων

Διαβάστε περισσότερα

Συλλογές, Στοίβες και Ουρές

Συλλογές, Στοίβες και Ουρές Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση οποιουδήποτε στοιχείου. Συλλογή (bag) : Επιστρέφει

Διαβάστε περισσότερα

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο Τετάρτη, 30 Οκτωβρίου 2013 Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο Λύστε στο Visual Basic Express 2010 τις παρακάτω ασκήσεις: 1. Να δημιουργήσετε ένα νέο Project του είδους Console

Διαβάστε περισσότερα

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης 14. Δικτύωση με Java Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να δημιουργείτε έναν ελάχιστο εξυπηρέτη TCP/IP σε Java Να δημιουργείτε έναν ελάχιστο εξυπηρετούμενο TCP/IP σε Java Να κατανοείτε πώς υλοποιούνται

Διαβάστε περισσότερα

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή ονάδα Δικτύων και Επικοινωνιών ΗΥ Τομέας Πληροφορικής, αθηματικών και Στατιστικής ΓΕΩΠΟΙΚΟ ΠΑΕΠΙΣΤΗΙΟ ΑΘΗΩ Εισαγωγή στην Επιστήμη των ΗΥ άθημα-4 url: http://openeclass.aua.gr (AOA0) Λογισμικό Υπολογιστή

Διαβάστε περισσότερα

Πτυχιακή Εργασία. Θέμα: Υπολογισμός ερωτημάτων κορυφογραμμής 2 διαστάσεων σε κατανεμημένο περιβάλλον με τη βοήθεια της πλατφόρμας λογισμικού Hadoop.

Πτυχιακή Εργασία. Θέμα: Υπολογισμός ερωτημάτων κορυφογραμμής 2 διαστάσεων σε κατανεμημένο περιβάλλον με τη βοήθεια της πλατφόρμας λογισμικού Hadoop. Πτυχιακή Εργασία Θέμα: Υπολογισμός ερωτημάτων κορυφογραμμής 2 διαστάσεων σε κατανεμημένο περιβάλλον με τη βοήθεια της πλατφόρμας λογισμικού Hadoop. Πλιάκης Ιωάννης Α.Ε.Μ.: 1137 Υπεύθυνος καθηγητής: Παπαδόπουλος

Διαβάστε περισσότερα

Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών ΗΥ463 Συστήματα Ανάκτησης Πληροφοριών 2009-2010 Χειμερινό Εξάμηνο

Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών ΗΥ463 Συστήματα Ανάκτησης Πληροφοριών 2009-2010 Χειμερινό Εξάμηνο Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών ΗΥ463 Συστήματα Ανάκτησης Πληροφοριών 2009-2010 Χειμερινό Εξάμηνο 2 η Σειρά Ασκήσεων Αξία: 5% του τελικού σας βαθμού Bzr (Bazaar) Το Bazaar (ή bzr) είναι

Διαβάστε περισσότερα

ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο Δεύτερη Προγραμματιστική Εργασία

ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο Δεύτερη Προγραμματιστική Εργασία ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2015-2016 Δεύτερη Προγραμματιστική Εργασία Γενική περιγραφή Στη δεύτερη προγραμματιστική εργασία καλείστε να υλοποιήσετε ένα διομότιμο σύστημα (Peer-to-

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Έλεγχος ισότητας για Strings: Διαβάζουμε το String option και θέλουμε ένα loop να συνεχίσει

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Μάθημα 1: Βασική Πλοήγηση σε Linux CLI. Οκτώβριος 2016 Χ. Αλεξανδράκη Εισαγωγή στον Προγραμματισμό Μάθημα 1: Βασική Πλοήγηση σε Linux CLI Οκτώβριος 2016 Χ. Αλεξανδράκη Command Line Interface Τα περισσότερα λειτουργικά συστήματα είναι φτιαγμένα ώστε να παρέχουν δύο περιβάλλοντα

Διαβάστε περισσότερα

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Υπολογιστικό Σύστημα Λειτουργικό Σύστημα Αποτελεί τη διασύνδεση μεταξύ του υλικού ενός υπολογιστή και του χρήστη (προγραμμάτων ή ανθρώπων). Είναι ένα πρόγραμμα (ή ένα σύνολο προγραμμάτων)

Διαβάστε περισσότερα

Right Rear Door. Let's now finish the door hinge saga with the right rear door

Right Rear Door. Let's now finish the door hinge saga with the right rear door Right Rear Door Let's now finish the door hinge saga with the right rear door You may have been already guessed my steps, so there is not much to describe in detail. Old upper one file:///c /Documents

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα Ασκήσεις.

Κατανεμημένα Συστήματα Ασκήσεις. Κατανεμημένα Συστήματα Ασκήσεις 2016-2017 http://www.cslab.ece.ntua.gr/courses/distrib Άσκηση 1 3 διεργασίες, η P1, η P2 και η P3 στέλνουν μεταξύ τους multicast μηνύματα. Σε περίπτωση που θέλουμε να εξασφαλίσουμε:

Διαβάστε περισσότερα

SOAP API. https://bulksmsn.gr. Table of Contents

SOAP API. https://bulksmsn.gr. Table of Contents SOAP API https://bulksmsn.gr Table of Contents Send SMS...2 Query SMS...3 Multiple Query SMS...4 Credits...5 Save Contact...5 Delete Contact...7 Delete Message...8 Email: sales@bulksmsn.gr, Τηλ: 211 850

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System) 2.1.1 Εισαγωγή στη διαχείριση αρχείων Οι Η/Υ αποθηκεύουν τα δεδομένα και τα επεξεργάζονται. Εφαρμογή Προγράμματος C:\Documents and Settings\user\Τα έγγραφά μου\leitourgika.doc Λ.Σ. File System Γι αυτό

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 6: Αφαιρετικότητα, Βιβλιοθήκες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αφαιρετικότητα -Βιβλιοθήκες (packages) Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός

Διαβάστε περισσότερα

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Στοίβες Ουρές Στοίβες: Βασικές Έννοιες. Ουρές: Βασικές Έννοιες. Βασικές Λειτουργίες. Παραδείγματα. Στοίβες Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή πρώτη

Διαβάστε περισσότερα

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade Για να ελέγξετε το λογισμικό που έχει τώρα η συσκευή κάντε κλικ Menu > Options > Device > About Device Versions. Στο πιο κάτω παράδειγμα η συσκευή έχει έκδοση λογισμικού 6.0.0.546 με πλατφόρμα 6.6.0.207.

Διαβάστε περισσότερα

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

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 4 Λογισμικό συστήματος Καραμαούνας Πολύκαρπος 1 4.1 Λογισμικό συστήματος (application software) Καραμαούνας Πολύκαρπος 2 Λογισμικό εφαρμογών (application software): προγράμματα για την αντιμετώπιση

Διαβάστε περισσότερα

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

«Μηχανή Αναζήτησης Αρχείων» Ημερομηνία Παράδοσης: 30/04/2015, 09:00 π.μ. ΕΡΓΑΣΙΑ 4 «Μηχανή Αναζήτησης Αρχείων» Ημερομηνία Παράδοσης: 30/04/2015, 09:00 π.μ. Στόχος Στόχος της Εργασίας 4 είναι να η εξοικείωση με την αντικειμενοστρέφεια (object oriented programming). Πιο συγκεκριμένα,

Διαβάστε περισσότερα

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:01 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

PERL. Δήμος Παύλου Δημήτρης Κουζαπάς

PERL. Δήμος Παύλου Δημήτρης Κουζαπάς PERL Δήμος Παύλου Δημήτρης Κουζαπάς Perl Η Perl είναι μια διερμηνευομένη δυναμική γλώσσα προγραμματισμού. Συνδυάζει χαρακτηριστικά από διάφορες γλώσσες. (C/C++, Awk, Lisp κλπ) Διαδόθηκε λόγω της μεγάλης

Διαβάστε περισσότερα

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview Εργαστήριο Λειτουργικών Συστημάτων Minix Overview Σύνοψη 5ης ιάλεξης Λειτουργικό Σύστημα Minix Οργάνωση του Λειτουργικού Συστήματος Οργάνωση πηγαίου κώδικα Minix recompilation Σύνοψη Μαθήματος Σύνοψη Μαθήματος

Διαβάστε περισσότερα

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

Βρίγκας Μιχαήλ Α.Μ.744 Μπράχος Χ. Ευάγγελος Α.Μ.795 Βρίγκας Μιχαήλ Α.Μ.744 Μπράχος Χ. Ευάγγελος Α.Μ.795 Περιεχόμενα Εισαγωγή Εγκατάσταση Δημιουργία νέου project Java Editor Perspectives Δημιουργία source folders Προσθήκη νέου αρχείου στο project Εισάγωντας

Διαβάστε περισσότερα

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

Διαβάστε περισσότερα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων

Διαβάστε περισσότερα

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE) EPL 603 TOPICS IN SOFTWARE ENGINEERING Lab 5: Component Adaptation Environment (COPE) Performing Static Analysis 1 Class Name: The fully qualified name of the specific class Type: The type of the class

Διαβάστε περισσότερα

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι Ιατρική Πληροφορική Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio103/ https://eclass.teiath.gr/courses/tio100/

Διαβάστε περισσότερα

Δίκτυα Η/Υ στην Επιχείρηση

Δίκτυα Η/Υ στην Επιχείρηση Δίκτυα Η/Υ στην Επιχείρηση Εισαγωγή στο λειτουργικό σύστημα Unix Γκάμας Βασίλειος, Εργαστηριακός Συνεργάτης Λειτουργικό Σύστημα (ΛΣ) Λογισμικό συστήματος, το οποίο αποτελεί τη διασύνδεση μεταξύ του υλικού

Διαβάστε περισσότερα

Κατανεμημένος και Παράλληλος Προγραμματισμός. Hadoop and MapReduce 28/5/2016. Από: Apache Hadoop:http://hadoop.apache.org/

Κατανεμημένος και Παράλληλος Προγραμματισμός. Hadoop and MapReduce 28/5/2016. Από: Apache Hadoop:http://hadoop.apache.org/ Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Αναπληρωτής Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr Hadoop and MapReduce Download Install - Configure

Διαβάστε περισσότερα