Ε νικό Μετσό ιο Πο υτε νείο Σ ο ή Η εκτρο ό ν Μη ανικών και Μη ανικών Υπο ο ιστών Τομέας Τε νο ο ίας Π ηροφορικής και Υπο ο ιστών. Διπ ματική Ερ ασία



Σχετικά έγγραφα
Ε νικό Μετσό ιο Πο υτε νείο Σ ο ή Η εκτρο ό ν Μη ανικών και Μη ανικών Υπο ο ιστών Τομέας Τε νο ο ίας Π ηροφορικής και Υπο ο ιστών. Διπ ματική Ερ ασία

Παρά η η Δια είριση Δεδομέν ν

Α όρι μοι και Πο υπ οκότητα 1η Σειρά Γραπτών Ασκήσε ν

Το Διανυσματικό Μοντέ ο

Το Λο ικό Μοντέ ο. Περιε όμενα Κεφα αίου

Κανονισμός Εκτε εστικής Επιτροπής

Κανονισμός Οικονομικής Δια είρισης

Κανονισμός Εποπτικού Συμ ου ίου

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

Ανάκτηση Π ηροφορίας. Συ ραφή Απόστο ος Ν. Παπαδόπου ος Ι άννης Μαν όπου ος Κ νσταντίνος Τσί ας. Κριτικός Ανα νώστης Δημήτριος Κατσαρός

Ο Αντεστραμμένος Κατά ο ος

Ο Κατά ο ος Υπο ραφών

Ανάκτηση Π ηροφορίας στον Πα κόσμιο Ιστό

Κανονισμός Διοικητικού Συμ ου ίου

Ανάπτυξη Βι ιο ήκης Γραφικών ια Ενσ ματ μένο Σύστημα

Ε νικό Μετσό ιο Πο υτε νείο Σ ο ή Η εκτρο ό ν Μη ανικών και Μη ανικών Υπο ο ιστών Τομέας Η εκτρικής Ισ ύος. Διπ ματική Ερ ασία

Επέκταση του συστήματος ανοι τού κώδικα Pig

Εισα ή στην Ανάκτηση Π ηροφορίας

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Απ ή υ οποίηση α ορί μου Fast Multipole Method ανεξάρτητου συνάρτησης πυρήνα

Αποτίμηση Αποτε εσματικότητας

Το Πι ανοκρατικό Μοντέ ο

Ε νικό Μετσό ιο Πο υτε νείο

Ορ ανισμός Εσ τερικής Υπηρεσίας

Ανάπτυξη Συστήματος Συστάσε ν Συνερ ατικής Διή ησης με ρήση Ιεραρ ικών Α ορί μ ν Κατάταξης

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Π Ε Δ (Π.Ε.Δ.) Ι Ν ΠΕΔ. Κανονισμοί. ΟΕΥ Προσωπικού Διοικητικού Συμβουλίου Εκτελεστικής Επιτροπής Οικονομικής Διαχείρισης Εποπτικού Συμβουλίου

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

ἔστω Ο...πισινός μας! American Bar το καναμε για όλους μας. * * * κι από τη Σκιά τους. σε κάθε νησί;

Ε νικό Μετσό ιο Πο υτε νείο. Διπ ματική Ερ ασία

Ε νικό Μετσό ιο Πο υτε νείο Σ ο ή Χημικών Μη ανικών. Με έτη και σ εδιασμός με όδ ν Εξόρυξης Δεδομέν ν και εφαρμο ές σε προ ήματα Μετα ο ομικής

Ε νικό Μετσό ιο Πο υτε νείο. Πρακτικά Συστήματα Συ ο ιστικής ια Εκφραστικές Ασαφείς Περι ραφικές Λο ικές

Ανάπτυξη συντακτικού ανα υτή φυσικής ώσσας με ρήση του φορμα ισμού LFG. Πανα ιώτης Μίνος

Ε νικό Μετσό ιο Πο υτε νείο. Α όρι μοι Επανε ραφής Τροποποιημέν ν Ερ τημάτ ν ια Βατές Περι ραφικές Λο ικές

Ε νικό Μετσό ιο Πο υτε νείο

Σ εδιασμός Συστημάτ ν Ε έ ου

Εξόρυξη νώσης από μέσα κοιν νικής δικτύ σης: Με έτη περίπτ σης στο Twitter.

Ε νικό Μετσό ιο Πο υτε νείο Σ ο ή Η εκτρο ό ν Μη ανικών και Μη ανικών Υπο ο ιστών Τομέας Επικοιν νιών, Η εκτρονικής και Συστημάτ ν Π ηροφορικής

Υ οποίηση αντα α ής κ ειδιού DH και ψηφιακών υπο ραφών ασισμένη σε ε ειπτικές καμπύ ες

ΕΠΑΝΑΛΗΠΣΙΚΕ ΑΚΗΕΙ ΜΙΓΑΔΙΚΟΤ-ΟΡΙΑ-ΤΝΕΧΕΙΑ

ΚΑΝΟΝΙΣ ΜΟ Ι ΙΕΞΑΓΩΓΗΣ ΑΓΩΝΩΝ 1 / 8 SCALE IC TRA CK ΕΛ. Μ. Ε

20/5/ /5/ /5/ /5/2005

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

JEAN-CHARLES BLATZ 02XD RE52755

Η Αρ ιτεκτονική αναφοράς Μα ησιακών Χώρ ν CROP - Μια πρώτη προσέ ιση

Πα κ έ τ ο Ε ρ γ α σ ί α ς 4 Α ν ά π τ υ ξ η κ α ι π ρ ο σ α ρ µ ο γ ή έ ν τ υ π ο υ κ α ι η λ ε κ τ ρ ο ν ι κ ο ύ ε κ π α ι δ ε υ τ ι κ ο ύ υ λ ι κ ο

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

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

Tη λ.: +30 (210) Fax: +30 (210)

Η κ άσση L A TEX dithesis

Ε.Ε. Π α ρ.ι(i), Α ρ.3932, 10/12/2004 Ο ΠΕΡΙ ΚΟΙΜΗΤΗΡΙΩΝ (ΤΑΦΗ ΚΑΙ ΕΚΤΑΦΗ) ΝΟΜΟΣ. H Βουλή των Αντιπροσώπων ψηφίζει ως ακολούθως:


Θέ α: ωσ ή ια ροφή και άσκηση ια ο ς εφήβο ς.

αναλυτικός απλός 1 Ο αναλυτικός βλέπει τον κόσμο σαν να αποτελείται από πολλά μικρά κομμάτια.

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

Ε νικό και Καποδιστριακό Πανεπιστήμιο Α ηνών. Δι οτομίες Πο υπ οκότητας σε Προ ήματα Μέτρησης

ΣΥΜΒΑΣΗ ΜΕΤΑΞΥ ΠΑΡΟΧΟΥ ΚΑΤΑΡΤΙΣΗΣ- ΜΕΛΟΣ ΤΟΥ ΜΗΤΡΩΟΥ ΠΑΡΟΧΩΝ, ΩΦΕΛΟΥΜΕΝΟΥ- ΜΕΛΟΣ ΤΟΥ ΜΗΤΡΩΟΥ ΩΦΕΛΟΥΜΕΝΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΗΣ ΠΡΑΚΤΙΚΗΣ ΑΣΚΗΣΗΣ

ΣΧΟΛΗ ΜΗΧΑΝΙΚΩΝ ΟΡΥΚΤΩΝ ΠΟΡΩΝ. Κανονισμός Προγράμματος Διδακτορικών Σπουδών

Π α σα πνο η αι νε σα τω τον Κυ ρι. Π α σα πνο η αι νε σα α τω τον. Ἕτερον. Τάξις Ἑωθινοῦ Εὐαγγελίου, Ὀ Ν Ψαλµός. Μέλος Ἰωάννου Ἀ. Νέγρη.

Κεφάλαιο 5 ο : Αλγόριθµοι Σύγκρισης Ακολουθιών Βιολογικών εδοµένων


Πρι τ αρακτηρ οτικ λαπλ ουοτηματα μικρ ετ εξεργατ δ π υ τ

α κα ρι ι ο ος α α νηρ ος ου ουκ ε πο ρε ε ευ θη εν βου λη η η α α σε ε ε βων και εν ο δω ω α α µαρ τω λω ων ουουκ ε ε ε

Παράλληλος προγραμματισμός περιστροφικών αλγορίθμων εξωτερικών σημείων τύπου simplex ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ

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

( THN & JEAN-ROCH LICARI . 05AV

ΤΜΗΜΑ ΦΩΚΑ/ΤΕΤΑΡΤΗ

FAX : spudonpe@ypepth.gr) Φ. 12 / 600 / /Γ1

ΘΕΜΑ: ΔΙΑΡΘΡΩΤΙΚΑ ΧΑ ΡΑ ΚΤ ΗΡ ΙΣ ΤΙ ΚΑ ΤΗΣ ΑΝΕΡΓΙΑΣ - ΠΤΥΧΙΑΚΗ ΕΡΓΑ ΣΙ Α - ΚΑΡΑ ΣΑ ΒΒ ΟΓ ΠΟ Υ ΑΝ ΑΣΤΑΣΙΟΣ

14/5/ /12/ /5/ /5/2007

11:30-12:00 ιά ι α 12:00-14:00 ία: Α αιο ο ία αι α ς Α έ ος. ο ισ ς: ά ο ιο. οβο ή βί α ι έ ο ή ο Αθ αίω, Α φιθέα ο «Α ώ ς ί σ ς» Α α ίας

ΟΙΚΟΝΟΜΟΤΕΧΝΙΚΗ ΑΝΑΛΥΣΗ ΕΝΟΣ ΕΝΕΡΓΕΙΑΚΑ ΑΥΤΟΝΟΜΟΥ ΝΗΣΙΟΥ ΜΕ Α.Π.Ε

ΚΒΑΝΤΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ

Αρ έ ονα αρυτικά κύματα από τον κοσμο ο ικό π η ρισμό και CMB

1.2.3 ιαρ θρω τι κές πο λι τι κές Σύ στη μα έ λεγ χου της κοι νής α λιευ τι κής πο λι τι κής...37


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

Α Α Α Α Α Α Α Α Α Α Α Ο

31/12/ /12/2005 (36) (109) (36) (126) (36) (126)

Tηλ.: +30 (210) Fax: +30 (210)


Περιεχόµ εν α. Εισαγω γή. Επ ισκόπ ηση υπ ο βο λής φακέλω ν (IUCLID 5) Επ ισκόπ ηση υπ ο βο λής φακέλω ν (Reach-IT) Ερω τήσεις καιαπ αν τήσεις

Ανάπτυξη διαδικτυακής διαδραστικής εκπαιδευτικής εφαρμογής σε λειτουργικό σύστημα Android

ΘΕΜΑ: Οδηγίες για την αποστολή στοιχείων απλήρωτων υποχρεώσεων & ληξιπρόθεσµων οφειλών του Προγράµµατος ηµοσίων Επενδύσεων

Αντισταθμιστική ανάλυση

Εικονογραφημένο Λεξικό Το Πρώτο μου Λεξικό

20/5/ /5/ /5/ /5/2006


Τ τμημα Ηλεκτρ Λ γ α ργ ΨηφιακΦ Συα ημ τω Α αθμ Σκ π τη κη η Σκ π τηζ κη η ε αι α ρησ μ π ε π υδαα η Λ γ κθζ π Λε π ΛΛΦ ε δω α α δε ξε τ τρ π με π γ ε

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

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

d u d dt u e u d dt e u d u 1 u dt e 0 2 e

ΗΛΙΑΣ Γ. ΚΑΡΚΑΝΙΑΣ - ΕΦΗ Ι. ΣΟΥΛΙΩΤΟΥ ΤΕΤΡΑΔΙΟ ΠΡΩΤΗΣ ΓΡΑΦΗΣ. τ... μαθητ... ΤΑΞΗ Α ΣΧΟΛΙΚΟ ΕΤΟΣ... Β Τεύχος

ΑΔΑ: 6ΓΜΒ465ΦΘ3-8ΔΗ. α ούσι, 26/06/2015 Α / 26917/ ς. αθ ός Ασφα ίας: -----

Ανάπτυξη Οντολογικής Γνώσης για Τεκμηρίωση Οπτικοακουστικού Περιεχομένου ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

1 Θέμα Γενική Περι ραφή Θέματος Υ ικά Εξαρτήματα και Τε νο ο ίες Συνδεσμο ο ία... 2

ΚΩ ΔΙΚΟ Σ Δ Ε Ξ ΙΟ Τ Η Τ Α Φ ΥΣΗ ΔΕΞΙΟ ΤΗΤΑΣ. Ε λά χ ισ το ς α ρ ιθ μ ό ς α π α ιτο ύ μ εν ω ν δ εξιο τή τω ν : 11

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

LAFARGE BETON A.B.E.E

ΣΤΟ ΧΟΣ- Ε ΠΙ ΔΙΩ ΞΗ ΠΛΑΙ ΣΙΟ ΧΡΗ ΜΑ ΤΟ ΔΟ ΤΗ ΣΗΣ

Transcript:

Ε νικό Μετσό ιο Πο υτε νείο Σ ο ή Η εκτρο ό ν Μη ανικών και Μη ανικών Υπο ο ιστών Τομέας Τε νο ο ίας Π ηροφορικής και Υπο ο ιστών Με έτη και Υ οποίηση Α ορί μ ν ια Βιο ο ικές Εφαρμο ές σε MapReduce Περι ά ον Διπ ματική Ερ ασία της ΔΑΝΑΗΣ Μ. ΚΟΥΤΡΑ Επι έπ ν: Τιμο έ ν Σε ής Κα η ητής Ε.Μ.Π. Ερ αστήριο Συστημάτ ν Βάσε ν Γνώσε ν και Δεδομέν ν Α ήνα, Ιού ιος 2010

Ε νικό Μετσό ιο Πο υτε νείο Σ ο ή Η εκτρο ό ν Μη ανικών και Μη ανικών Υπο ο ιστών Τομέας Τε νο ο ίας Π ηροφορικής και Υπο ο ιστών Ερ αστήριο Συστημάτ ν Βάσε ν Γνώσε ν και Δεδομέν ν Με έτη και Υ οποίηση Α ορί μ ν ια Βιο ο ικές Εφαρμο ές σε MapReduce Περι ά ον Διπ ματική Ερ ασία της ΔΑΝΑΗΣ Μ. ΚΟΥΤΡΑ Επι έπ ν: Τιμο έ ν Σε ής Κα η ητής Ε.Μ.Π. Ε κρί ηκε από την τριμε ή εξεταστική επιτροπή τη 12η Ιου ίου 2010.......... Τιμο έ ν Σε ής Νεκτάριος Κοζύρης Δημήτριος Φ τάκης Κα η ητής Ε.Μ.Π. Αναπ. Κα η ητής Ε.Μ.Π. Λέκτορας Ε.Μ.Π. Α ήνα, Ιού ιος 2010

... Δανάη Κούτρα Διπ ματού ος Η εκτρο ό ος Μη ανικός και Μη ανικός Υπο ο ιστών Ε.Μ.Π. 2010 All rights reserved

Ε νικό Μετσό ιο Πο υτε νείο Σ ο ή Η εκτρο ό ν Μη ανικών και Μη ανικών Υπο ο ιστών Τομέας Τε νο ο ίας Π ηροφορικής και Υπο ο ιστών Ερ αστήριο Συστημάτ ν Βάσε ν Γνώσε ν και Δεδομέν ν Copyright All rights reserved Δανάη Κούτρα, 2010. Με επιφύ αξη παντός δικαιώματος. Απα ορεύεται η αντι ραφή, απο ήκευση και διανομή της παρούσας ερ ασίας, εξ ο οκ ήρου ή τμήματος αυτής, ια εμπορικό σκοπό. Επιτρέπεται η ανατύπ ση, απο ήκευση και διανομή ια σκοπό μη κερδοσκοπικό, εκπαιδευτικής ή ερευνητικής φύσης, υπό την προϋπό εση να αναφέρεται η πη ή προέ ευσης και να διατηρείται το παρόν μήνυμα. Ερ τήματα που αφορούν τη ρήση της ερ ασίας ια κερδοσκοπικό σκοπό πρέπει να απευ ύνονται προς τον συ ραφέα.

Ευ αριστίες Θα ή ε α να εκφράσ τις ερμές μου ευ αριστίες στον επι έποντά μου κα η ητή κ. Τιμο έοντα Σε ή που μου έδ σε την ευκαιρία να εκπονήσ τη διπ ματική μου στο ερ- αστήριο Συστημάτ ν Βάσε ν Γνώσε ν και Δεδομέν ν σε συνερ ασία με το Ινστιτούτο Π ηροφοριακών Συστημάτ ν και Προσομοί σης (ΙΠΣΥΠ) του Ερευνητικού Κέντρου Καινοτομίας στις Τε νο ο ίες της Π ηροφορίας, τ ν Επικοιν νιών και της Γνώσης Α ηνά. Επίσης, α ή ε α να τον ευ αριστήσ ια την πο ύτιμη οή ειά του και τις συζητήσεις μας ια τα με οντικά μου ήματα. Νιώ ακόμη την ανά κη να ευ αριστήσ τον υποψήφιο διδάκτορα Θανάση Βερ ού η και το Διδάκτορα Θοδ ρή Δα αμά κα ια την κα οδή ησή τους όσον αφορά τις πρακτικές και ε ρητικές τε νικές που ρησιμοποίησα στη διπ ματική μου και ια την εξαιρετική συνερ ασία που εί αμε. Επιπ έον, οφεί ιδιαίτερες ευ αριστίες στον κ. Σπύρο Σκιαδόπου ο, επίκουρο κα η ητή του Τμήματος Επιστήμης και Τε νο ο ίας Υπο ο ιστών στο Πανεπιστήμιο Πε οποννήσου, που μερίμνησε ώστε να καταστεί δυνατό το στήσιμο Hadoop cluster σε ερ αστήριο του τμήματός του και ήταν πάντα πρό υμος να οη ήσει με τα προ ήματα που προέκυπταν ό της εξ αποστάσε ς ειτουρ ίας του cluster. Χ ρίς τη οή ειά του η εκτέ εση τ ν πειραμάτ ν της παρούσας διπ ματικής δεν α ήταν δυνατή. Τέ ος, ευ αριστώ την οικο ένειά μου ια την αμέριστη στήριξη που μου παρεί αν κα ό η τη διάρκεια τ ν σπουδών μου. 1

Περί ηψη Η σημασία της επεξερ ασίας και ανά υσης του ενετικού κώδικα τ ν ορ ανισμών και η αναπαράσταση τ ν ιο ο ικών δεδομέν ν σε ψηφιακή μορφή που είναι επεξερ άσιμη από τους υπο ο ιστές οδή ησε στη συνερ ασία ιο ό ν και επιστημόν ν της π ηροφορικής ια την επί υση διάφορα ερ τημάτ ν που έτουν οι πρώτοι. Ένα από τα πιο σημαντικά προ ήματα τ ν ιο ό ν είναι η με έτη του προσε ιστικού ταιριάσματος ακο ου ιών, δη αδή ο εντοπισμός μικρών ακο ου ιών μέσα σε ακο ου ίες αναφοράς με ανο ή ενός ορίου διαφορών. Το πρό ημα αυτό στη ενική περίπτ ση είναι ιδιαίτερα απαιτητικό σε ρόνο και μνήμη και οι ιο ό οι καταφεύ ουν στη ρήση προσε ιστικών α ορί μ ν, όπ ς αυτοί της οικο ένειας BLAST, που εντοπίζουν τα πιο σημαντικά ταιριάσματα. Ωστόσο, υπάρ ουν ιο ο ικές εφαρμο ές στις οποίες απαιτείται η εύρεση τ ν έ τιστ ν ταιριασμάτ ν και σε αυτές τις περιπτώσεις οι προσε ιστικοί α όρι μοι δεν επαρκούν. Επιπρόσ ετα, η ανάπτυξη τ ν νέ ν τε νο ο ιών ακο ου ιοποίησης ιο ο ικών δεδομέν ν και η διενέρ εια ερευνητικών έρ ν που αποσκοπούν στην ακο ου ιοποίηση του DNA κά ε ατόμου με σ ετικά μικρό κόστος (Personal Genome Project) αναμένεται να οδη ήσουν σε σημαντική αύξηση του ό κου τ ν δεδομέν ν που ρησιμοποιούνται στις ιοεπιστήμες. Φαίνεται, οιπόν, ότι ια την τα εία ανά υση τ ν δεδομέν ν αυτών η κατανομή τ ν υπο ο- ισμών σε πο ούς επεξερ αστές είναι αναπόφευκτη. Στό οι της διπ ματικής ερ ασίας είναι: (α) η ι ιο ραφική με έτη τ ν ιο ο ικών εφαρμο ών που έ ουν ήδη αναπτυ εί στο προ ραμματιστικό μοντέ ο MapReduce που επιτρέπει κατανεμημένο προ ραμματισμό, ( ) η απόκτηση τε νο ν σίας σ ετικά με το MapReduce και την πιο διαδεδομένη ανοι τού κώδικα υ οποίηση του, το Hadoop, και ( ) η ανάπτυξη προ ραμμάτ ν, τα οποία επι ύουν το πρό ημα προσε ιστικού ταιριάσματος ακο ου ιών εντοπίζοντας ό α τα δυνατά ταιριάσματα, στο περι ά ον MapReduce και η αξιο ό ησή τους. Λέξεις Κ ειδιά Προσε ιστικό ταίριασμα ακο ου ιών, Στοί ιση ακο ου ιακών δεδομέν ν, MapReduce, Hadoop, α όρι μος Fredriksson, Δυναμικός προ ραμματισμός, Α όρι μος φι τραρίσματος 3

Abstract The significance of processing and analysing the organisms genetic codes and the representation of biological data in digital form which can be processed by computers raised the need for close cooperation of biologists and computer scientists in order to solve a variety of biological problems. One of the most important problems is mapping reads -short sequences of DNA- to reference sequences to find locations where each read occurs, allowing for a small number of errors. In general, this problem is time-consuming and memory-demanding and thus biologists often use approximate algorithms, such as BLAST-like algorithms, which detect the most significant sequence similarities. However, there are some biological applications that require the best matches to be found and in these cases heuristic algorithms are not sufficient. Moreover, the next-generation high-throughput DNA sequencing technologies and projects like the Personal Genome Project which aim at sequencing the DNA of every individual at low cost, are changing the scale and scope of genomics and are expected to increase substantially the data that is used in biosciences. Therefore, it seems that the distribution of data storage and computation among numerous processors is inevitable. This diploma thesis aims to: (a) the study of existing biological applications implemented in MapReduce, a framework that supports parallel distributed execution of data intensive applications, (b) gaining knowledge on the MapReduce programming model and its most commonplace open-source version, Hadoop, and (c) the implementation and evaluation of MapReduce algorithms which solve the approximate sequence matching problem by detecting all the existing matches. Keywords Approximate sequence matching, MapReduce, Hadoop, Fredriksson s algorithm, Dynamic programming, Filtering Algorithm 5

Περιε όμενα Ευ αριστίες 1 Περί ηψη 3 Abstract 5 Περιε όμενα 9 Κατά ο ος σ ημάτ ν 12 Κατά ο ος πινάκ ν 13 1 Εισα ή 15 1.1 Αντικείμενο της διπ ματικής.......................... 16 1.2 Συνεισφορά.................................... 19 1.3 Ορ άν ση του τόμου............................... 20 2 Το πρό ημα ταιριάσματος ακο ου ιακών δεδομέν ν 21 2.1 Ορο ο ίες..................................... 21 2.1.1 Ταίριασμα ακο ου ιών (sequence alignment).............. 21 2.1.2 Ο ικό και τοπικό ταίριασμα ακο ου ιών (global and local alignment)................................ 22 2.1.3 Πο απ ό ταίριασμα ακο ου ιών (multiple string matching)..... 23 2.2 Οι σημαντικότεροι α όρι μοι ια ταίριασμα ακο ου ιών............ 23 2.2.1 Α όρι μοι Δυναμικού Προ ραμματισμού................ 24 2.2.2 Α όρι μοι ασισμένοι σε αυτόματα................... 26 2.2.3 Α όρι μοι με bit παρα η ισμό (Bit-Parallelism)........... 27 2.2.4 Α όρι μοι Φι τραρίσματος....................... 27 2.2.5 Προσε ιστικοί Α όρι μοι....................... 28 2.2.6 Α όρι μοι πο απ ού ταιριάσματος ακο ου ιών............ 30 2.3 Εφαρμο ή α ορί μ ν ταιριάσματος σε ιο ο ικά δεδομένα.......... 32 2.3.1 Είδη αρ εί ν ια την απο ήκευση DNA ακο ου ιών.......... 34 2.3.2 XML Sequence Format.......................... 35 7

8 Περιεχόμενα 2.3.3 GenBank DNA Sequence Entry..................... 36 2.3.4 Genetics Computer Group Sequence Format.............. 36 2.3.5 Βάσεις με ιο ο ικά δεδομένα...................... 36 3 Το Περι ά ον MapReduce 39 3.1 MapReduce.................................... 39 3.1.1 Προ ραμματιστικό Μοντέ ο....................... 39 3.1.2 Ροή δεδομέν ν στο MapReduce..................... 41 3.1.3 Π εονεκτήματα του προ ραμματιστικού μοντέ ου MapReduce.... 42 3.2 MapReduce ή ι ιο ήκη (MPI/OpenMP) ια παρα η οποίηση προ ραμμάτ ν;....................................... 44 3.3 MapReduce ή Παρά η ες Βάσεις Δεδομέν ν;................. 45 3.4 Hadoop...................................... 48 3.4.1 HDFS................................... 49 3.4.2 Η αρ ιτεκτονική του HDFS....................... 49 3.4.3 Αντί ραφα δεδομέν ν στο HDFS.................... 52 3.4.4 Επι ο ή αντι ράφ ν........................... 53 4 Α όρι μοι Προσε ιστικού Ταιριάσματος ακο ου ιακών δεδομέν ν στο περι ά ον MapReduce 55 4.1 Παρα η οποίηση του α ορί μου δυναμικού προ ραμματισμού........ 55 4.2 Παρα η οποίηση α ορί μου ια πο απ ό ταίριασμα ακο ου ιών...... 60 4.3 Α όρι μος Φι τραρίσματος........................... 64 4.3.1 Πρώτος κύκ ος MapReduce....................... 65 4.3.2 Δεύτερος κύκ ος MapReduce...................... 67 5 Πειραματική Αξιο ό ηση 69 5.1 Επι ο ή cluster ια την εκτέ εση τ ν προ ραμμάτ ν............. 69 5.2 Δεδομένα..................................... 71 5.3 Πειράματα..................................... 72 5.3.1 Επεκτασιμότητα με το μέ ε ος τ ν δεδομέν ν εισόδου......... 73 5.3.2 Επεκτασιμότητα με τον αρι μό τ ν προτύπ ν.............. 76 5.3.3 Επίδραση του μήκους τ ν προτύπ ν................... 78 5.3.4 Επίδραση του ό ου α ών α (error ratio)............... 80 5.3.5 Επεκτασιμότητα με τον αρι μό τ ν κόμ ν............... 82 6 Σ ετικές Ερ ασίες 85 6.1 BlastReduce.................................... 85 6.2 CloudBurst.................................... 88 6.3 Παρα η οποίηση του α ορί μου tblastx................... 91 6.4 CloudBlast.................................... 93 6.5 Αναζήτηση SNPs................................. 95

Περιεχόμενα 9 7 Επί ο ος 99 7.1 Συμπεράσματα................................... 99 7.2 Με οντικές Επεκτάσεις............................. 100 Αʹ Οδη ίες Εκτέ εσης Προ ραμμάτ ν 103 Αʹ.1 Προετοιμασία Δεδομέν ν............................. 103 Αʹ.1.1 Ακο ου ίες αναφοράς........................... 103 Αʹ.1.2 Ακο ου ίες-πρότυπα........................... 104 Αʹ.2 Οδη ίες εκτέ εσης τ ν MapReduce Προ ραμμάτ ν.............. 104 Αʹ.2.1 Δυναμικός Προ ραμματισμός...................... 105 Αʹ.2.2 Α όρι μος του Fredriksson....................... 105 Αʹ.2.3 Α όρι μος Φι τραρίσματος....................... 105 Αʹ.2.4 Παράδει μα Εκτέ εσης του Α ορί μου Φι τραρίσματος........ 106 Βʹ Μεταφράσεις Ξέν ν όρ ν 111 Βι ιο ραφία 112

Κατά ο ος σ ημάτ ν 1.1 Ο ικό και τοπικό ταίριασμα ακο ου ιών..................... 17 1.2 Προσε ιστικό ημι-τοπικό ταίριασμα ακο ου ιών με όριο α ών k=6: Παρουσιάζονται οι περιο ές στις οποίες οι δύο ακο ου ίες ταιριάζουν. Στην ακο ου- ία αναφοράς το κρι ρώμα αντιστοι εί στους κοινούς αρακτήρες τ ν δύο ακο ου ιών, ενώ τα τρία ά α ρώματα αντιπροσ πεύουν τα τρία είδη α ών, δη αδή εισα ή, δια ραφή και αντικατάσταση................. 17 2.1 Ο ικό και τοπικό ταίριασμα ακο ου ιακών δεδομέν ν............. 23 2.2 Υπο ο ισμός της συντακτικής απόστασης τ ν έξε ν surgery και survey.. 24 2.3 Δυναμικός Προ ραμματισμός ια το ταίριασμα του προτύπου survey στην ακο ου ία αναφοράς surgery.......................... 25 2.4 Δυναμικός προ ραμματισμός με την ευριστική του cutoff ια k=2....... 26 2.5 NFA ια το προσε ιστικό ταίριασμα του προτύπου survey στην ακο ου ία αναφοράς surgery με k=2............................ 26 2.6 Α όρι μος του Fredriksson - παράδει μα κατασκευής του πίνακα D κατά την προεπεξερ ασία.................................. 30 2.7 Α όρι μος του Fredriksson - Παράδει μα μετακίνησης του παρα ύρου πάν στην ακο ου ία αναφοράς. Οι παράμετροι του προ ήματος είναι: m=10, k=1 και l=2....................................... 31 2.8 Μοριακή δομή του DNA και αναπαράσταση της μίας α υσίδας του σε ψηφιακή μορφή....................................... 32 2.9 Κώδικας αναπαράστασης άσε ν ακο ου ιών DNA............... 35 2.10 Παράδει μα αρ είου FASTA........................... 35 2.11 Κώδικας αναπαράστασης άσε ν ακο ου ιών DNA............... 36 3.1 Το MapReduce πρό ραμμα WordCount..................... 41 3.2 Εκτέ εση MapReduce προ ράμματος και ροή δεδομέν ν............ 41 3.3 Διαφορές μεταξύ κ ασικών σ εσιακών Βάσε ν Δεδομέν ν και MapReduce. 46 3.4 Εκτέ εση MapReduce προ ράμματος από το Hadoop............. 51 3.5 Η αρ ιτεκτονική του HDFS............................ 52 3.6 Η πο ιτική αντι ράφ ν του HDFS........................ 53 11

12 Κατάλογος σχημάτων 4.1 Προσέ ιση του α ορί μου δυναμικού προ ραμματισμού στο MapReduce περι ά ον..................................... 56 4.2 Κατανομή τ ν αρ εί ν εισόδου και του αρ είου με τις ακο ου ίες-πρότυπα σε ένα cluster 3 κόμ ν............................... 59 4.3 Α όρι μος Fredriksson στο MapReduce.................... 63 4.4 Α όρι μος φι τραρίσματος........................... 65 4.5 1ος κύκ ος MR: φάση map σε κόμ ο του cluster............... 67 5.1 Χρόνος εκτέ εσης GREP σε μετα ητό μέ ε ος εισόδου.......... 74 5.2 Χρόνοι εκτέ εσης τ ν υ οποιήσε ν ια μετα ητό μέ ε ος δεδομέν ν εισόδου 75 5.3 Επιτά υνση Fredriksson/Φι τράρισμα ια μετα ητό μέ ε ος δεδομέν ν εισόδου....................................... 76 5.4 Χρόνοι και επιτά υνση ια μετα ητό αρι μό προτύπ ν............. 78 5.5 Χρόνοι και επιτά υνση ια μετα ητό μήκος ακο ου ιών............ 80 5.6 Χρόνοι και επιτά υνση ια μετα ητό ποσοστό α ών............. 81 5.7 Χρόνοι και επιτά υνση ια μετα ητό π ή ος κόμ ν............. 84 6.1 BlastReduce α όρι μος............................. 86 6.2 Load pattern σε μη άνημα που ανήκει σε cluster 69 υπο ο ιστών...... 92 6.3 Παρα η οποίηση του BLAST2......................... 94 6.4 MapReduce φάσεις του προ ράμματος Crossbow................ 96 Αʹ.1 Γραφικό περι ά ον εκτέ εσης ερ ασίας στο Hadoop............. 109 Αʹ.2 Γραφικό περι ά ον ανά υσης ερ ασίας στο Hadoop.............. 110

Κατά ο ος πινάκ ν 5.1 Χρόνος προεπεξερ ασίας ακο ου ιών αναφοράς................. 72 5.2 Χρόνος αναζήτησης ταιριασμάτ ν ια μετα ητό μέ ε ος δεδομέν ν εισόδου. 73 5.3 Στοι εία ια τον α όρι μο φι τραρίσματος ια διάφορα με έ η εισόδου... 76 5.4 Χρόνος αναζήτησης ταιριασμάτ ν ια μετα ητό αρι μό προτύπ ν....... 77 5.5 Στοι εία ια τον α όρι μο φι τραρίσματος ια μετα ητό αρι μό προτύπ ν. 78 5.6 Χρόνος αναζήτησης ταιριασμάτ ν ια μετα ητό μήκος προτύπ ν....... 79 5.7 Στοι εία ια τον α όρι μο φι τραρίσματος ια μετα ητό μήκος ακο ου ιών 80 5.8 Χρόνος αναζήτησης ταιριασμάτ ν ια μετα ητό ποσοστό α ών....... 81 5.9 Στοι εία ια τον α όρι μο φι τραρίσματος ια μετα ητό ποσοστό α ών.. 82 5.10 Χρόνος αναζήτησης ταιριασμάτ ν ια μετα ητό μέ ε ος του cluster..... 83 13

Κεφά αιο 1 Εισα ή Μετά την ανακά υψη της δομής του DNA (δεοξυρι ονουκ εϊκό οξύ) το 1953 από τους D.Watson και F.Crick ο τομέας της ιο ο ίας άρ ισε να παρουσιάζει ρα δαία ανάπτυξη. Η ανάπτυξη αυτή οδή ησε στη δημιουρ ία νέ ν ζητημάτ ν και ερ τημάτ ν που σταδιακά προσέ κυσαν το ενδιαφέρον επιστημόν ν και ά ν περιο ών με αποτέ εσμα τη δημιουρ ία διαφόρ ν διεπιστημονικών πεδί ν, όπ ς η ιοπ ηροφορική (Bioinformatics). Η ιοπ ηροφορική είναι η περιο ή που ασ ο είται με την εφαρμο ή α ορί μ ν και στατιστικών με όδ ν ια την ερμηνεία, κατη οριοποίηση και κατανόηση τ ν ιο ο ικών δεδομέν ν. Με τη δημιουρ ία και πρόοδο τ ν άσε ν δεδομέν ν, τ ν α ορί μ ν, τ ν υπο ο ιστικών και στατιστικών τε νικών, α ά και της ε ρητικής π ηροφορικής, η ιοπ ηροφορική επι ειρεί να ύσει πρακτικά προ ήματα που προκύπτουν από τη δια είριση και ανά υση τ ν ιο ο ικών δεδομέν ν. Σ ετίζεται με τη μοριακή ιο ο ία, δη αδή τη με έτη νουκ εϊκών οξέ ν (DNA, RNA) και πρ τεϊνών, α ά τα ερευνητικά αποτε έσματα πο ές φορές ξεφεύ ουν από τα όρια της μοριακής ιο ο ίας και ρίσκουν εφαρμο ή ενικά σε ιο ο ικά δεδομένα. Ανάμεσα στις εφαρμο ές που ανήκουν στην περιο ή αυτή είναι η σύ κριση ομό ο- ν ακο ου ιών, η εύρεση ονιδί ν, η στοί ιση ακο ου ιών DNA και πρ τεϊνών, η πρό εψη της έκφρασης ονιδί ν και η δημιουρ ία και με έτη της τρισδιάστατης δομής τ ν πρ τεϊνών. Στην ανάπτυξη του τομέα της ιοπ ηροφορικής συνετέ εσε η ανακά υψη μη ανημάτ ν, τ ν ακο ου ιοποιητών (sequencers), τα οποία μετατρέπουν στο ερ αστήριο τις πρα ματικές ακο ου ίες σε ψηφιακή μορφή που είναι επεξερ άσιμη από τους υπο ο ιστές. Όπ ς ό α τα πειράματα στο ερ αστήριο, έτσι κι η διαδικασία της ακο ου ιοποίησης ενέ ει σφά ματα τα οποία α πρέπει να αμ άνονται υπόψη κατά την επεξερ ασία τ ν δεδομέν ν. Αυτό προσ έτει δυσκο ία στην προσέ ιση τ ν α ορί μ ν και αυξάνει την πο υπ οκότητά τους. Τα τε ευταία ρόνια συνδυασμένες εξε ίξεις της ονιδιακής και ενικότερα της μοριακής έρευνας, α ά και η ανάπτυξη τ ν τε νο ο ιών π ηροφορίας έ ουν οδη ήσει στην παρα ή τεράστιου ό κου δεδομέν ν που σ ετίζονται με τη μοριακή ιο ο ία. Συ κεκριμένα, οι τε- νο ο ίες επόμενης ενιάς που ακο ου ιοποιούν το DNA (next-generation high-throughput DNA sequencing technologies) έ ουν α άξει ριζικά τη με έτη τ ν νουκ εοτιδικών ακο ου- ιών, κα ώς επιτρέπουν τη αρτο ράφηση του DNA σε πο ύ μικρότερο ρόνο και κόστος από ό,τι οι πα ιότερες τε νο ο ίες. Η ακο ου ιοποίηση του DNA ενός αν ρώπου έ ει μει εί 15

16 Κεφάλαιο 1. Εισαγωγή από πο ά ρόνια σε μερικούς μήνες και παρά η α έ ει επιτευ εί μεί ση του κόστους της διαδικασίας. Υπο ο ίζεται ότι σύντομα κά ε άτομο α μπορεί να αρτο ραφήσει το DNA του με κόστος περίπου $1000 και να εκμετα ευτεί τα οφέ η της αρτο ράφησης: ενημέρ ση ια κινδύνους ασ ενειών, εξατομικευμένη ιατρική και φαρμακευτική, νώση ια τους προ όνους του (Personal Genome Project). Όταν α είναι δυνατό κά ε άτομο να αρτο ραφήσει το DNA του με μικρό σ ετικά κόστος, α παρά εται τεράστιος ό κος π ηροφοριών και α απαιτούνται νέες τε νικές δια είρισης, απο ήκευσης και ανά υσης τ ν ιο ο ικών δεδομέν ν. Διαφαίνεται ότι η κατανομή της π ηροφορίας και τ ν υπο ο ισμών σε πο ούς υπο ο ιστές είναι μονόδρομος προκειμένου να επιτα υν εί η ανά υση τ ν ιο ο ικών δεδομέν ν. Ένα από τα επικρατέστερα υπο ο ιστικά μοντέ α που ρησιμοποιούνται ια κατανεμημένους υπο ο ισμούς είναι το MapReduce, το οποίο δημιούρ ησε η Google ια να επι ύσει προ ήματα που παρουσιάζονταν στις κα ημερινές της εφαρμο ές. Το μοντέ ο αυτό απ οποιεί τον κατανεμημένο προ ραμματισμό, κα ώς ανα αμ άνει τη δια είριση και επικοιν νία τ ν υπο ο ιστών του cluster, επιτρέποντας έτσι στον προ ραμματιστή να επικεντρ εί στην υ οποίηση τ ν α ορί μ ν. Επιπρόσ ετα, οι ανοι τού κώδικα εκδόσεις του μοντέ ου, η πιο διαδεδομένη εκ τ ν οποί ν είναι το Hadoop, το κα ιστούν ιδιαίτερα δημοφι ές αφού μειώνουν σημαντικά το κόστος εκτέ εσης κατανεμημέν ν υπο ο ισμών. Το MapReduce έ ει σ εδιαστεί έτσι ώστε να μπορεί να ειρίζεται αποδοτικά ό κο δεδομέν ν της τάξης τ ν PBs. Ιδιαίτερα οι εφαρμο ές τ ν οποί ν τα δεδομένα δεν παρουσιάζουν εξαρτήσεις ταιριάζουν στο προ ραμματιστικό μοντέ ο. Με δεδομένο τον αναμενόμενο με ά ο ό κο τ ν ιο ο ικών δεδομέν ν και την ανεξαρτησία που παρουσιάζουν μεταξύ τους, είναι φανερό ότι το MapReduce μπορεί να ρησιμοποιη εί α ανάπτυξη και εκτέ εση ιο ο ικών εφαρμο ών σε κατανεμημένο περι ά ον. 1.1 Αντικείμενο της διπ ματικής Ένα από τα σημαντικότερα ερ τήματα που έτουν οι ιο ό οι είναι η αναζήτηση ταιριασμάτ ν σε ακο ου ιακά δεδομένα, κα ώς αυτά μπορούν να συμ ά ουν στην κατανόηση τ ν μη ανισμών της κ ηρονομικότητας, α ά και στην εξα ή συμπερασμάτ ν ια τη ειτουρ- ία, τη δομή και έκφραση ά ν στ ν ακο ου ιών. Ο όρος ταίριασμα αναφέρεται στον τρόπο με τον οποίο μπορούν να στοι ιστούν, η μία κάτ από την ά η, δύο ακο ου ίες αρακτήρ ν από ένα πεπερασμένο α φά ητο Σ, έτσι ώστε οι κοινοί τους αρακτήρες να είναι στοι ισμένοι. Στο Σ ήμα 1.1 φαίνεται ένα παράδει μα ο ικού και τοπικού ταιριάσματος ακο ου ιών. Η πιο ενδιαφέρουσα κατη ορία του προ ήματος ταιριάσματος ακο ου ιακών δεδομέν ν είναι τα προσε ιστικά ταιριάσματα, δη αδή τα ταιριάσματα που επιτρέπουν να ίνει η στοί ιση τ ν ακο ου ιών με ανο ή ενός αρι μού α ών. Ένα παράδει μα προσε ιστικού ημι-τοπικού ταιριάσματος παρουσιαζεται στο Σ ήμα 1.2. Αυτή η κατη ορία έ ει πρακτικό ενδιαφέρον: από τη μία μεριά, η ακο ου ιοποίηση τ ν ιο ο ικών δεδομέν ν, δη αδή η μετατροπή τ ν ακο ου ιών σε ψηφιακή μορφή, δεν είναι από υτα ακρι ής και μά ιστα η ακρί εια ε αττώνεται με τη μεί ση του ρόνου της διαδικασίας. Από την ά η μεριά, διάφοροι φυσικοί

1.1 Αντικείμενο της διπλωματικής 17 Σ ήμα 1.1: Ο ικό και τοπικό ταίριασμα ακο ου ιών παρά οντες μπορεί να συντε έσουν στην α α ή κάποι ν νουκ εοτιδί ν τ ν ακο ου ιών DNA, οπότε η εύρεση αυτών τ ν ακο ου ιών που έ ουν μικρές διαφορές από τις ακο ου ίες που αναζητούνται είναι εξίσου σημαντική με την εύρεση τ ν ακρι ών ταιριασμάτ ν. 3 2 6 : Ακολουθία αναφοράς μήκους n : Ακολουθία-πρότυπο μήκους m< n Σ ήμα 1.2: Προσε ιστικό ημι-τοπικό ταίριασμα ακο ου ιών με όριο α ών k=6: Παρουσιάζονται οι περιο ές στις οποίες οι δύο ακο ου ίες ταιριάζουν. Στην ακο ου ία αναφοράς το κρι ρώμα αντιστοι εί στους κοινούς αρακτήρες τ ν δύο ακο ου ιών, ενώ τα τρία ά α ρώματα αντιπροσ πεύουν τα τρία είδη α ών, δη αδή εισα ή, δια ραφή και αντικατάσταση. Στο π αίσιο της διπ ματικής ερ ασίας, ασ ο η ήκαμε με το πρό ημα του προσε ιστικού ταιριάσματος ακο ου ιών και πώς αυτό μπορεί να αντιμετ πιστεί με τε νικές Map- Reduce. Για το σκοπό αυτό υ οποιή ηκαν τρεις ν στές οικο ένειες α ορί μ ν, οι οποίες και προσαρμόστηκαν στο υπο ο ιστικό μοντέ ο MapReduce: δυναμικός προ ραμματισμός: Οι α όρι μοι που ανήκουν σε αυτή την κατη- ορία είναι οι πιο πα ιοί στην περιο ή του ταιριάσματος ακο ου ιών και στην πράξη μόνο ί οι από αυτούς είναι αντα νιστικοί. Αν και δεν είναι ιδιαίτερα αποδοτικοί, προσαρμόζονται ευκο ότερα από ά ους σε διάφορες συναρτήσεις απόστασης. Έστ η ακο ου ία-πρότυπο x 1 x m και η ακο ου ία αναφοράς y 1 y n. Στη ασική του μορφή ο α όρι μος δυναμικού προ ραμματισμού ασίζεται στη συμπ ήρ ση ενός mxn πίνακα C με άση τους παρακάτ τύπους: C i,0 = i C 0,j = 0 C i,j = if (x i = y j ) then C i 1,j 1 else 1 + min(c i 1,j, C i,j 1, C i 1,j 1 )

18 Κεφάλαιο 1. Εισαγωγή Ο α όρι μος επιστρέφει τις έσεις j της ακο ου ίας αναφοράς στις οποίες ταιριάζουν οι συ κρινόμενες ακο ου ίες, δη αδή αυτές ια τις οποίες ικανοποιείται η συν ήκη C m,j < k. πο απ ό ταίριασμα ακο ου ιών: Το πρό ημα πο απ ού ταιριάσματος ακο- ου ιών ορίζεται ς το ταυτό ρονο ταίριασμα s προτύπ ν με την ακο ου ία αναφοράς. Η περιο ή αυτή είναι η νεότερη και έ ει τη μικρότερη ανάπτυξη από ό ες τις περιο ές που ασ ο ούνται με το προσε ιστικό ταίριασμα ακο ου ιών. Το πρό ημα του πο - απ ού ταιριάσματος ακο ου ιών δεν έ ει τρα ήξει τόση προσο ή όση το ταίριασμα μίας ακο ου ίας-προτύπου με ακο ου ίες αναφοράς, ό της δυσκο ίας που παρουσιάζει. Κατά καιρούς έ ουν προτα εί α όρι μοι οι οποίοι κάνουν πο απ ό ταίριασμα ακο ου ιών κάτ από αυστηρούς περιορισμούς, όπ ς όριο α ών ίσο με 1 ή αναζήτηση μικρού αρι μού ακο ου ιών-προτύπ ν ή πρότυπα μικρού μήκους. Σε αυτή την κατη ορία ξε ρίζει ο α όρι μος τ ν Fredriksson & Navarro [8], ο οποίος στις περισσότερες περιπτώσεις είναι αποδοτικότερος από τους ά ους και παρουσιάζει ανο ή στο επίπεδο τ ν α ών α=k/m, όπου m το μήκος τ ν προτύπ ν και k το επιτρεπτό όριο α ών. Ο α όρι μος του Fredriksson, ασιζόμενος στη ο ική τ ν α ορί μ ν ακρι ούς ταιριάσματος, ε έ ει αν οι ακο ου ίες ικανοποιούν μία απαραίτητη συν ήκη ια ύπαρξη ταιριασμάτ ν και απορρίπτει κάποια τμήματα της ακο ου ίας αναφοράς όπου αποκ είεται να υπάρ ουν ταιριάσματα. Για όποια τμήματα δεν μπορούν να απορριφ ούν ρησιμοποιεί κάποιον α όρι μο ά ης κατη ορίας, όπ ς α όρι μο δυναμικού προ ραμματισμού, προκειμένου να εντοπίσει τις έσεις τ ν ταιριασμάτ ν. φι τράρισμα: Ο α όρι μος αυτός συνδυάζει τις κατη ορίες φι τραρίσματος και πο απ ού ταιριάσματος ακο ου ιών και αποτε είται από δύο στάδια. Για την επιτά- υνση του προ ήματος εύρεσης ταιριασμάτ ν, εκτε εί αρ ικά ένα φι τράρισμα ια να αποκ είσει περιο ές οι οποίες δεν μπορεί να περι αμ άνουν κάποιο ταίριασμα. Το φι τράρισμα που πρα ματοποιούμε σε αυτόν τον α όρι μο ασίζεται στην παρατήρηση ότι υπάρ ουν κάποια ακρι ή ταιριάσματα σε περιο ές όπου μία ακο ου ία-πρότυπο παρουσιάζει υψη ή ομοιότητα με μία ακο ου ία αναφοράς. Κατά το πρώτο στάδιο, ο α όρι μος κα ορίζει ποιες ακο ου ίες-πρότυπα πρέπει να αναζητη ούν σε κά ε τμήμα της ακο ου ίας αναφοράς. Στο δεύτερο στάδιο εκτε είται ο α όρι μος του Fredriksson ο οποίος αναζητά σε κά ε τμήμα της ακο ου ίας αναφοράς το υποσύνο ο τ ν προτύπ ν που είναι πι ανό να υπάρ ουν προσε ιστικά σε αυτό. Ο α όρι μος φι τραρίσματος εκμετα εύεται την ενικά κα ή επίδοση του α ορί μου Fredriksson και σε πο ές περιπτώσεις μειώνει το ρόνο εκτέ εσής του άρη στο μικρό ποσοστό προτύπ ν που πρέπει τε ικά να εξεταστεί. Η υ οποίηση τ ν προ ραμμάτ ν έ ινε στο MapReduce προ ραμματιστικό μοντέ ο και συ κεκριμένα στην έκδοση 0.20.2 του Hadoop, μία ε εύ ερα δια έσιμη υ οποίηση του Map- Reduce.

1.2 Συνεισφορά 19 1.2 Συνεισφορά Η συνεισφορά της διπ ματικής συνοψίζεται ς εξής: 1. Με ετήσαμε τη ι ιο ραφία και αποτυπώσαμε τις τε ευταίες εξε ίξεις στην υ οποίηση ιο ο ικών εφαρμο ών -κυρί ς του προ ήματος προσε ιστικού ταιριάσματος ακο ου ιών- στο προ ραμματιστικό μοντέ ο MapReduce. 2. Υ οποιήσαμε τρεις α όρι μους ια το προσε ιστικό ημι-τοπικό ταίριασμα ακο ου- ιών (semi-local alignment). Αρ ικά, έ ινε υ οποίηση τ ν σειριακών α ορί μ ν και στη συνέ εια η προσαρμο ή τους στο προ ραμματιστικό μοντέ ο MapReduce. Συνή- ς, σε ιο ο ικές εφαρμο ές (π.. BLAST - Basic Local Alignment Search Tool) ρησιμοποιούνται παρα α ές τ ν α ορί μ ν αυτών οι οποίες και στο εύουν στον εντοπισμό μόνο σημαντικών ταιριασμάτ ν με άση μετρικές που κα ορίζουν τη σημαντικότητα αυτή (προσε ιστικές τε νικές). Αυτό σημαίνει ότι δεν δίνουν απαραίτητα το έ τιστο ταίριασμα. Υπάρ ουν, όμ ς, περιπτώσεις στις οποίες η εύρεση ό ν τ ν ταιριασμάτ ν, και άρα και τ ν έ τιστ ν, είναι κα οριστική. Επιπρόσ ετα οι α όρι μοι BLAST εντοπίζουν τοπικά, και ό ι ημι-τοπικά, ταιριάσματα ακο ου ιών. 3. Η υ οποίηση που έ ινε είναι ικανή να ανταπεξέ ει στη δια είριση πο ύ με ά ου ό κου δεδομέν ν, δη αδή πάρα πο ά GBs ή ακόμη και TBs. Το μέ ε ος τ ν δεδομέν ν που μπορούν να επεξερ αστούν και ο ρόνος εκτέ εσής τους εξαρτώνται κυρί ς από το μέ ε ος του cluster, δη αδή τον αρι μό τ ν υπο ο ιστών που συνερ άζονται ια την εκτέ εση τ ν προ ραμμάτ ν, κα ώς και από τα αρακτηριστικά τους. 4. Στήσαμε ιδι τικό cluster Hadoop 13 κόμ ν στο Πανεπιστήμιο Πε οποννήσου και κατα ράψαμε την τε νο ν σία που αποκτή ηκε και τα προ ήματα που αντιμετ πίσαμε μαζί με τις ύσεις τους σε wiki [12]. 5. Πρα ματοποιήσαμε εκτενή πειραματική αξιο ό ηση τ ν με όδ ν μας. Τα αποτε έσματα έδειξαν ότι ο α όρι μος δυναμικού προ ραμματισμού είναι ο ι ότερο αποδοτικός, ενώ την κα ύτερη επίδοση παρουσιάζει ο α όρι μος φι τραρίσματος ο οποίος προσ έτει ένα στάδιο φι τραρίσματος πριν από τον α όρι μο που κάνει πο απ ό ταίριασμα ακο ου- ιών. Συ κεκριμένα, είδαμε ότι ο α όρι μος φι τραρίσματος είναι αποδοτικότερος ια με ά ο π ή ος και μήκος προτύπ ν, α ά ια μικρό επιτρεπτό όριο α ών. Επομέν ς, η ρήση του α ορί μου αυτού κα ίσταται κατά η η ια την ανά υση τ ν ιο ο ικών δεδομέν ν που παρά ονται με με ά ο ρυ μό άρη στις νέες τε νο ο ίες ακο ου ιοποίησης. Πιο ρήσιμος είναι σε περιπτώσεις όπου απαιτούνται μεταξύ τ ν ά ν και τα έ τιστα ταιριάσματα, οπότε οι π έον διαδεδομένοι προσε ιστικοί α όρι μοι της οικο ένειας BLAST δεν επαρκούν.

20 Κεφάλαιο 1. Εισαγωγή 1.3 Ορ άν ση του τόμου Η διπ ματική ερ ασία είναι ορ αν μένη σε επτά κεφά αια. Στο Κεφά αιο 2 παρουσιάζονται οι ορισμοί που είναι απαραίτητοι ια την κατανόηση του αντικειμένου της ερ ασίας, οι σημαντικότεροι α όρι μοι που ρησιμοποιούνται ια το πρό ημα ταιριάσματος ακο ου- ιακών δεδομέν ν, κα ώς και οι εφαρμο ές τ ν α ορί μ ν αυτών σε ιο ο ικά δεδομένα. Το Κεφά αιο 3 ανα ύει το περι ά ον MapReduce και το Hadoop που ρησιμοποιή ηκε ια την ανάπτυξη τ ν προ ραμμάτ ν και αναφέρεται στις διαφορές αυτού του περι ά οντος από τις παρά η ες άσεις δεδομέν ν. Στο κεφά αιο 4 παρουσιάζουμε τους α όρι μους που υ οποιήσαμε και τον τρόπο με τον οποίο τους προσαρμόσαμε στο κατανεμημένο περι ά ον. Το Κεφά αιο 5 περι αμ άνει τα πειράματα που έ ιναν και την αξιο ό ηση τ ν α ορί μ ν, κα ώς και στοι εία ια το cluster και τα δεδομένα που ρησιμοποιήσαμε ς είσοδο στα πειράματά μας. Ερ ασίες σ ετικές με το αντικείμενο της διπ ματικής παρουσιάζονται στο Κεφά αιο 6. Στο Κεφά αιο 7 ίνεται σύνοψη τ ν αποτε εσμάτ ν της διπ ματικής και προτείνονται ιδέες ια με οντικές επεκτάσεις. Οι οδη ίες ια την εκτέ εση τ ν προ ραμμάτ ν που υ οποιή ηκαν παρατί ενται στο Παράρτημα Α.

Κεφά αιο 2 Το πρό ημα ταιριάσματος ακο ου ιακών δεδομέν ν Στο κεφά αιο αυτό παρουσιάζονται οι ορισμοί που είναι απαραίτητοι ια την κατανόηση του αντικειμένου της ερ ασίας, οι σημαντικότεροι α όρι μοι που ρησιμοποιούνται ια το πρό ημα ταιριάσματος ακο ου ιακών δεδομέν ν, κα ώς και π ηροφορίες ια την εφαρμο ή τέτοι ν α ορί μ ν σε ιο ο ικά δεδομένα. 2.1 Ορο ο ίες 2.1.1 Ταίριασμα ακο ου ιών (sequence alignment) Έστ ένα πεπερασμένο α φά ητο Σ με έ ους Σ =σ, μία ακο ου ία αναφοράς T = t 1 t 2...t n και μία ακο ου ία πρότυπο (pattern) P = p 1 p 2...p m. Το ταίριασμα ακο ου ιών είναι η διαδικασία κατά την οποία τοπο ετούμε το πρότυπο κάτ από την ακο ου ία αναφοράς με τέτοιο τρόπο ώστε τα κοινά σύμ ο ά τους να είναι στοι ισμένα. Στη ενική μορφή, το πρό ημα έ κειται στη δή ση τ ν έσε ν στις οποίες το πρότυπο ταιριάζει με την ακο ου ία αναφοράς με ά η ι ότερα από ένα όριο, το οποίο συμ ο ίζεται με το k. Στην περίπτ ση που το k=0, το ταίριασμα ακο ου ιών έ εται ακρι ές και δεν επιτρέπεται η ύπαρξη α ών. Η περίπτ ση στην οποία επιτρέπονται k 0 ά η αποτε εί πιο ενδιαφέρον πρό ημα και έ ει εφαρμο ές σε πο ές περιο ές: ανάκτηση κειμένου (text retrieval): αναζήτηση κειμένου όπου μπορεί να υπάρ ουν ορ ο ραφικά ή τυπο ραφικά ά η. ιοπ ηροφορική (bioinformatics): εύρεση ακο ου ιών ιομορί ν που μπορεί να έ ουν τροποποιη εί. επεξερ ασία σημάτ ν (signal processing): ανάκτηση πρ τότυπου ή ου που έ ει α - οι εί ό ορύ ου κατά τη μετάδοση. Προ ήματα που ασίζονται στο προσε ιστικό ταίριασμα ακο ου ιών εντοπίζονται και σε 21

22 Κεφάλαιο 2. Το πρόβλημα ταιριάσματος ακολουθιακών δεδομένων ά ες περιο ές, όπ ς στη συμπίεση εικόν ν, την εξόρυξη δεδομέν ν, τον εντοπισμό ιών, την οπτική ανα νώριση αρακτήρ ν και την ανανέ ση της ο όνης. Το προσε ιστικό ταίριασμα ακο ου ιών αποτε εί μία οικο ένεια προ ημάτ ν τα οποία διαφέρουν στο μοντέ ο ά ους (error model), μία συνάρτηση που μετράει πόσο διαφέρει το πρότυπο από την ακο ου ία αναφοράς. Το μοντέ ο ά ους δίνει την απόσταση (distance) του προτύπου από την ακο ου ία αναφοράς με τέτοιο τρόπο ώστε να ε α ιστοποιείται όταν οι συ κρινόμενες ακο ου ίες παρουσιάζουν ι ότερες διαφορές. Η πιο συνη ισμένη μετρική είναι η απ ή συντακτική απόσταση (edit distance), η οποία δίνει τον αρι μό τ ν εισα ών, δια ραφών και αντικαταστάσε ν που πρέπει να ίνουν ώστε το πρότυπο να μετασ ηματιστεί στην ακο ου ία αναφοράς. Επέκταση της απ ής συντακτικής απόστασης, όπου το κόστος κά ε ειτουρ ίας είναι 1, είναι η ενικευμένη συνακτική απόσταση (general edit distance) η οποία αντιστοι εί διαφορετικά κόστη σε κά ε ειτουρ ία. Δύο ακόμη διαδεδομένες μετρικές είναι η μέ ιστη κοινή υπακο ου ία (longest common subsequence) που επιτρέπει εισα ές και δια ραφές και μετράει το π ή ος ταυτίσε ν τ ν αρακτήρ ν και η απόσταση Hamming (Hamming distance), η οποία επιτρέπει μόνο αντικαταστάσεις. 2.1.2 Ο ικό και τοπικό ταίριασμα ακο ου ιών (global and local alignment) Το πρό ημα του προσε ιστικού ταιριάσματος ακο ου ιών διακρίνεται σε δύο ασικές κατη ορίες: το ο ικό και το τοπικό ταίριασμα. Το πρό ημα του ο ικού ταιριάσματος ακο- ου ιών ρίσκει την κα ύτερη στοί ιση σε ό ο το μήκος τ ν δύο συ κρινόμεν ν ακο ου ιών και προϋπο έτει ότι οι ακο ου ίες παρουσιάζουν με ά η ομοιότητα. Ο όρος κα ύτερη στοί- ιση αναφέρεται στην ο ική στοί ιση που αρακτηρίζεται από τη μέ ιστη συνο ική ομοιότητα μεταξύ τ ν συ κρινόμεν ν ακο ου ιών. Έτσι, το πρό ημα ο ικού ταιριάσματος μπορεί να μην δη ώσει κάποιες περιο ές στο εσ τερικό τ ν ακο ου ιών που παρουσιάζουν με ά η ομοιότητα. Ο πιο ν στός α όρι μος ια το ο ικό ταίριασμα είναι η παρα α ή τετρα νικού ρόνου του α ορί μου τ ν Needleman-Wunsch [27]. Από την ά η μεριά, το πρό ημα του τοπικού ταιριάσματος εντοπίζει περιο ές όπου οι συ κρινόμενες ακο ου ίες μοιάζουν σε σημαντικό α μό, α νοώντας τις υπό οιπες περιο ές τ ν ακο ου ιών. Έτσι, σε αυτήν την περίπτ ση εντοπίζονται υπακο ου ίες που έ ουν τη με α ύτερη πυκνότητα ταιριασμάτ ν. Για το τοπικό ταίριασμα ρησιμοποιείται συνή ς ο α όρι μος Smith-Waterman [32], α ά και ο προσε ιστικός α όρι μος BLAST. Για την κατανόηση τ ν παραπάν όρ ν ακο ου εί ένα παράδει μα [25]. Έστ οι ακο ου- ίες A=LGPSSKQTGKGSSRIWDN και Β=LNITKSAGKGAIMRLGDA. Στο Σ ήμα 2.1 παρουσιάζεται το ο ικό και το τοπικό ταίριασμα τ ν ακο ου ιών Α και Β. Εκτός από αυτές τις δύο κατη ορίες ταιριασμάτ ν υπάρ ει και το ημι-τοπικό ή ημι-ο ικό ταίριασμα (semi-local ή semi-global alignment), το οποίο προκύπτει από το συνδυασμό του τοπικού και του ο ικού ταιριάσματος. Πιο ανα υτικά, το πρό ημα του ημι-τοπικού ταιριάσματος εντοπίζει περιο ές της ακο ου ίας αναφοράς στις οποίες μπορεί να στοι ιστεί ο όκ ηρη η ακο ου ία-πρότυπο με το πο ύ k ά η. Είναι φανερό ότι το πρό ημα ταιριάσματος είναι το-

2.2 Οι σημαντικότεροι αλγόριθμοι για ταίριασμα ακολουθιών 23 Σ ήμα 2.1: Ο ικό και τοπικό ταίριασμα ακο ου ιακών δεδομέν ν πικό ια την ακο ου ία αναφοράς και ο ικό ια την ακο ου ία-πρότυπο και ότι ια να εφαρμοστεί πρέπει η ακο ου ία αναφοράς να είναι πιο με ά η σε μήκος από την ακο ου ία-πρότυπο. Ο κ ασικός α όρι μος δυναμικού προ ραμματισμού ια αυτό το πρό ημα προτά ηκε από τον Sellers [31] και αποτε εί παρα α ή του α ορί μου Smith-Waterman. Η επι ο ή της με όδου ια το πρό ημα ταιριάσματος εξαρτάται από το α μό ομοιότητας τ ν δύο ακο ου ιών, το σ ετικό τους μέ ε ος και το είδος της αναζήτησης που έ ουμε να κάνουμε. Για παράδει μα, αν αναζητάμε τμήματα DNA που επανα αμ άνονται μέσα στην ακο ου ία αναφοράς με πι ανά ά η, τότε δεν α πάρουμε τα αναμενόμενα αποτε έσματα εφαρμόζοντας το ο ικό ή το τοπικό ταίριασμα. 2.1.3 Πο απ ό ταίριασμα ακο ου ιών (multiple string matching) Έστ το α φά ητο Σ που ορίστηκε παραπάν και η ακο ου ία αναφοράς Τ μήκους n. Έστ ακόμη οι ακο ου ίες-πρότυπα P 1,, P s. Το πρό ημα πο απ ού ταιριάσματος ακο- ου ιών ορίζεται ς το ταυτό ρονο ταίριασμα τ ν s προτύπ ν με την ακο ου ία αναφοράς. Προφανώς, σκοπός του συ κεκριμένου προ ήματος είναι να επιτευ εί κα ύτερη επίδοση από το σειριακό ταίριασμα τ ν ακο ου ιών με την ακο ου ία Τ και αυτό ίνεται με την εκμετά ευση τ ν επικα ύψε ν που μπορεί να παρουσιάζουν οι ακο ου ίες-πρότυπα P j. Το πρό ημα πο απ ού ταιριάσματος ακο ου ιών δεν α πρέπει να συ έεται με την πο απ ή στοί ιση (multiple alignment) κατά την οποία ίνεται σύ κριση μεταξύ ό ν τ ν ακο ου- ιών που εξετάζονται ώστε να ρε ούν τα κοινά τμήματά τους. Ένας από τους κα ύτερους α ορί μους που έ ουν προτα εί ια αυτό το πρό ημα είναι ο α όρι μος τ ν Fredriksson & Navarro [8]. 2.2 Οι σημαντικότεροι α όρι μοι ια ταίριασμα ακο- ου ιών Σε αυτήν την ενότητα α παρουσιαστούν οι κυριότερες κατη ορίες α ορί μ ν προσε - ιστικού ταιριάσματος που δεν κάνουν προεπεξερ ασία του κειμένου T δημιουρ ώντας σε αυτό κάποιο ευρετήριο (index).

24 Κεφάλαιο 2. Το πρόβλημα ταιριάσματος ακολουθιακών δεδομένων 2.2.1 Α όρι μοι Δυναμικού Προ ραμματισμού Οι α όρι μοι αυτοί είναι οι πιο πα ιοί στην περιο ή του ταιριάσματος ακο ου ιών και στην πράξη μόνο ί οι από αυτούς είναι αντα νιστικοί. Αν και δεν είναι ιδιαίτερα αποδοτικοί, οι α όρι μοι αυτοί προσαρμόζονται ευκο ότερα από ά ους σε διάφορες συναρτήσεις απόστασης. Εδώ παρουσιάζεται η ασική ιδέα του δυναμικού προ ραμματισμού, ρίς τις ε τιστοποιήσεις που έ ουν προτα εί κατά καιρούς. Για μια π ηρέστερη εικόνα τ ν ε τιστοποιήσε ν μπορεί κανείς να δια άσει την αναφορά του G.Navarro [26]. Το πρό ημα του προσε ιστικού ταιριάσματος με την τε νική του δυναμικού προ ραμματισμού ασίζεται στην ιδέα υπο ο ισμού της συντακτικής απόστασης (edit distance). Ο υπο ο ισμός της συντακτικής απόστασης δύο ακο ου ιών x 1 x m και y 1 y n ίνεται με τη συμπ ήρ ση ενός πίνακα C 0..m,0..n με άση τους παρακάτ τύπους: C i,0 = i C 0,j = j C i,j = if (x i = y j ) then C i 1,j 1 else 1 + min(c i 1,j, C i,j 1, C i 1,j 1 ) Η υπο ο ιστική απόσταση αντιστοι εί στο στοι είο C n,m του πίνακα. Τα στοι εία C i,0 και C 0,j αντιστοι ούν στη συντακτική απόσταση μεταξύ ακο ου ιών μήκους i ή j και του κενού string. Για τα υπό οιπα στοι εία του πίνακα η συμπ ήρ ση ίνεται έτσι ώστε να προ ράμε με τον κα ύτερο τρόπο, δη αδή τις ι ότερες τροποποιήσεις που απαιτούνται ια το μετασ ηματισμό της ακο ου ίας x 1 x i 1 στην y 1 y j 1. Αν οι αρακτήρες που συ κρίνουμε είναι ίδιοι, τότε το κόστος παραμένει όπ ς εί ε υπο ο ιστεί ς εκείνο το σημείο. Αν οι αρακτήρες δεν είναι ίδιοι, τότε εφαρμόζουμε τον τε ευταίο τύπο που αντιστοι εί είτε σε δια ραφή του x i ώστε να μετατραπεί το x 1 x i 1 στο y 1 y j, είτε εισα ή του y j στο τέ ος του x 1 x i ώστε να μετατραπεί το x 1 x i στο y 1 y j 1, είτε αντικατάσταση του x i από το y j ώστε να μετασ ηματιστεί το x 1 x i 1 στο y 1 y j 1. Στο Σ ήμα 2.2 φαίνεται το κ ασικό παράδει μα υπο ο ισμού της συντακτικής απόστασης τ ν έξε ν surgery και survey. Σ ήμα 2.2: Υπο ο ισμός της συντακτικής απόστασης τ ν έξε ν surgery και survey Το προσε ιστικό ταίριασμα ακο ου ιών με όριο α ών k ίνεται όπ ς ο υπο ο ισμός της συντακτικής απόστασης με μόνη διαφορά ότι επιτρέπουμε η ακο ου ία-πρότυπο που αναζητάμε στην ακο ου ία αναφοράς να ξεκινάει από οποιοδήποτε σημείο της ακο ου ίας

2.2 Οι σημαντικότεροι αλγόριθμοι για ταίριασμα ακολουθιών 25 αναφοράς. Αυτό επιτυ άνεται αντικα ιστώντας στους παραπάν τύπους το δεύτερο με τον C 0,j = 0. Τα ταιριάσματα αντιστοι ούν στις έσεις j της ακο ου ίας αναφοράς ια τις οποίες ισ ύει C m,j < k. Ο α όρι μος αυτός έ ει ρονική πο υπ οκότητα O(mn) και απαιτεί ώρο O(m), κα ώς αρκεί η απο ήκευση μόνο δύο στη ών του πίνακα. Στο Σ ήμα 2.3 φαίνεται ο πίνακας που προκύπτει από το προσε ιστικό ταίριασμα τ ν ακο ου ιών surgery και survey με k=2. Όπ ς είναι φανερό τα σημεία που οι ακο ου ίες ταιριάζουν είναι οι 5, 6 και 7 του surgery. Αξίζει να σημει εί ότι, συ νά, ια το πρό ημα του προσε ιστικού ταιριάσματος είναι αρκετό να επιστραφούν οι θέσεις στις οποίες ταιριάζουν οι δύο ακο ου ίες και ό ι ο τρόπος με τον οποίο ίνεται η στοί ιση τ ν ακο ου ιών. Αυτό συμ αίνει ια να μει ούν οι απαιτήσεις ρονικής πο υπ οκότητας τ ν αντίστοι ν α ορί μ ν. Στην περίπτ ση που απαιτείται ο τρόπος στοί ισης, αυτός μπορεί να ανακτη εί μέσ της διαδικασίας οπισ οδρόμησης (backtracking) [11]. Σ ήμα 2.3: Δυναμικός Προ ραμματισμός ια το ταίριασμα του προτύπου survey στην ακο- ου ία αναφοράς surgery Μία από τις ε τιστοποιήσεις του α ορί μου δυναμικού προ ραμματισμού είναι η ευριστική cut-off του Ukkonen [33] που ασίζεται στην παρατήρηση ότι οι δια ώνιοι του πίνακα δυναμικού προ ραμματισμού έ ουν τιμές που αυξάνονται μονότονα. Έτσι, αν κάποιο κε ί έ ει τιμή με α ύτερη από το k, τότε ο υπο ο ισμός τ ν κε ιών που ρίσκονται δεξιά και κάτ από αυτό είναι άσκοπος, κα ώς αποκ είεται να ρε εί ταίριασμα στη στή η δεξιά του κε ιού ή ισοδύναμα δεν μπορεί στη στή η αυτή να προκύψει στην τε ευταία ραμμή τιμή μικρότερη ή ίση του k ώστε να υπάρ ει ταίριασμα. Στο Σ ήμα 2.4 φαίνεται ο πίνακας δυναμικού προ ραμματισμού ια την ακο ου ία αναφοράς surgery και την ακο ου ία-πρότυπο survey και k=2. Tα ραμμοσκιασμένα κε ιά αντιστοι ούν στα κε ιά που δεν υπο ο ίζονται με άση την ευριστική cut-off. Η σημασία της με όδου δυναμικού προ ραμματισμού ια την ανά υση και σύ κριση ακο- ου ιών έ κειται στο ότι ρίσκει το έ τιστο ταίριασμα και ιδιαίτερα στον τομέα της ιο- ο ίας παρέ ει ρήσιμες π ηροφορίες ια προ έψεις σ ετικά με τη δομή, τη ειτουρ ία και την εξέ ιξη τ ν νουκ εοτιδικών ακο ου ιών. Το πρό ημα της εύρεσης προσε ιστικών τοπικών ταιριασμάτ ν μοιάζει με το προσε - ιστικό ταίριασμα ακο ου ιών με k ά η, α ά επιτρέπουμε επιπ έον να ταιριάξουμε την ακο ου ία-πρότυπο P με την ακο ου ία αναφοράς T αρ ίζοντας από οποιοδήποτε σημείο του προτύπου. Έτσι, στους τύπους του δυναμικού προ ραμματισμού έ ουμε εκτός από τον τύπο

26 Κεφάλαιο 2. Το πρόβλημα ταιριάσματος ακολουθιακών δεδομένων Σ ήμα 2.4: Δυναμικός προ ραμματισμός με την ευριστική του cutoff ια k=2 C 0,j = 0 και τον C i,0 = 0. Επιπ έον, στο πρό ημα αυτό ρησιμοποιείται συνή ς κάποιο μέτρο ομοιότητας αντί ια τη συντακτική απόσταση. Ο α όρι μος που περι ράφτηκε είναι στην πρα ματικότητα ο α όρι μος τ ν Smith-Waterman [32]. 2.2.2 Α όρι μοι ασισμένοι σε αυτόματα Το πρό ημα του ταιριάσματος ακο ου ιών μπορεί να μοντε οποιη εί με μη-ντετερμινιστικά αυτόματα (Non-deterministic automaton, NFA). Η ρήση ντετερμινιστικού αυτόματου προτά ηκε το 1985 [33] και ρησιμοποιή ηκε ια πρώτη φορά σε μη-ντετερμινιστική μορφή το 1992 [36]. Στο Σ ήμα 2.5 φαίνεται το μη-ντετερμινιστικό αυτόματο ια το προσε ιστικό ταίριασμα του προτύπου survey στην ακο ου ία αναφοράς surgery με k=2 και με ρήση της συντακτικής απόστασης (edit distance) ς συνάρτηση κόστους. Σ ήμα 2.5: NFA ια το προσε ιστικό ταίριασμα του προτύπου survey στην ακο ου ία αναφοράς surgery με k=2 Κά ε ραμμή δη ώνει τον αρι μό α ών που έ ουν ρε εί, δη αδή η 1η ραμμή αντιστοι εί σε 0 ά η, η 2η σε 1 ά ος κ.ο.κ, ενώ κά ε στή η αντιπροσ πεύει ταίριασμα με ένα πρό εμα του προτύπου. Στη συνέ εια, δίνεται η ερμηνεία ια τα διάφορα είδη ε ών που εμφανίζονται στο NFA: Οριζόντια έ η αντιστοι ούν σε ταίριασμα ενός αρακτήρα. Κά ετα έ η αντιπροσ πεύουν εισα ή ενός αρακτήρα στο πρότυπο ή, ισοδύναμα,

2.2 Οι σημαντικότεροι αλγόριθμοι για ταίριασμα ακολουθιών 27 δια ραφή στην ακο ου ία αναφοράς. Συμπα ή δια ώνια έ η αντικα ιστούν ένα αρακτήρα. Διακεκομμένα δια ώνια έ η αντιπροσ πεύουν δια ραφή ενός αρακτήρα από το πρότυπο και συμ ο ίζονται με ε-μετα άσεις. Το loop που υπάρ ει στην αρ ική κατάσταση εξασφα ίζει ότι επιτρέπεται να αρ ίσει η ακο ου ία-πρότυπο από οποιοδήποτε σημείο της ακο ου ίας αναφοράς. Το αυτόματο δη ώνει ταίριασμα όποτε είναι ενερ ή κάποια από τις δεξιότερες καταστάσεις. Η προσέ ιση του προ ήματος του προσε ιστικού ταιριάσματος με NFA μπορεί να προσαρμοστεί και σε διαφορετικές συναρτήσεις κόστους δια ράφοντας κάποια από τα έ η που παρουσιάστηκαν πιο πάν. Επίσης, είναι δυνατόν να αμ άνονται υπόψη διαφορετικά κόστη ια κά ε ειτουρ ία φροντίζοντας κατά η α της μετα άσεις. Αν ια παράδει μα οι εισα ές έ ουν κόστος δύο τότε οι κατακόρυφες μετα άσεις α πρέπει να ίνονται από τη ραμμή i στην i+2. Η περιο ή αυτή είναι ιδιαίτερα πα ιά και παρουσιάζει ενδιαφέρον ιατί δίνει τον κα ύτερο α όρι μο στη ειρότερη περίπτ ση. Ωστόσο, ο ρόνος και ο ώρος παρουσιάζουν εκ ετική εξάρτηση από το μέ ε ος του προτύπου και το όριο τ ν α ών περιορίζει επίσης σημαντικά την πρακτικότητα τ ν α ορί μ ν αυτής της κατη ορίας [26]. 2.2.3 Α όρι μοι με bit παρα η ισμό (Bit-Parallelism) Η περιο ή αυτή είναι πιο καινούρια από τις προη ούμενες και επιπ έον είναι ιδιαίτερα ενερ ή. Οι α όρι μοι που ανήκουν σε αυτή την κατη ορία εκμετα εύονται τον παρα η- ισμό που υπάρ ει στις ειτουρ ίες bit μέσα σε μία έξη του υπο ο ιστή. Η τε νική του παρα η ισμού στο bit εφαρμόζεται τόσο στους α όρι μους δυναμικού προ ραμματισμού, όσο και σε αυτούς που ρησιμοποιούν μη ντετερμινιστικά αυτόματα. Γενικά, οι α όρι μοι προσε ιστικού ταιριάσματος που παρα η οποιούνται με αυτή την τε νική είναι αποδοτικοί από πρακτική άποψη ανεξάρτητα από το όριο α ών k και παρουσιάζουν τις κα ύτερες επιδόσεις όταν τα πρότυπα που συ κρίνονται με την ακο ου ία αναφοράς είναι μικρά σε μήκος. Αν ίνει κατά η α εκμετά ευση του εσ τερικού παρα η ισμού που ίνεται στους υπο ο ιστές, οι ειτουρ ίες που εκτε εί ένας α όρι μος μπορούν να ε αττ ούν κατά ένα παρά οντα w, ο οποίος αντιστοι εί στο μέ ε ος της έξης. Δεδομένου ότι στις σημερινές αρ ιτεκτονικές το μέ ε ος της έξης είναι 32 ή 64, η επιτά υνση που προσφέρει αυτή η τε νική είναι σημαντική και ε τιώνεται με την τε νο ο ική πρόοδο. Περισσότερες επτομέρειες ια την τε νική αυτή α πρέπει να αναζητη ούν στη σ ετική ι ιο ραφία [26]. 2.2.4 Α όρι μοι Φι τραρίσματος Αυτή η περιο ή είναι εξίσου νέα με την περιο ή του bit παρα η ισμού και ιδιαίτερα ενερ ή. Περι αμ άνει α όρι μους οι οποίοι αρ ικά κάνουν ένα σ ετικά ρή ορο πέρασμα της ακο ου ίας αναφοράς ώστε να απορρίψουν κομμάτια όπου αποκ είεται να υπάρ ουν ταιριάσματα. Πρακτικά οι α όρι μοι φι τραρίσματος είναι αποδοτικοί, α ά μόνο ια μικρό επίπεδο

28 Κεφάλαιο 2. Το πρόβλημα ταιριάσματος ακολουθιακών δεδομένων α ών α=m/k (error level). Επιπρόσ ετα, οι α όρι μοι αυτοί μετά την απόρριψη περιο ών της ακο ου ίας αναφοράς ρησιμοποιούν κάποιον α όρι μο ά ης κατη ορίας προκειμένου να εντοπιστούν ταιριάσματα στις υπό οιπες περιο ές. Οι α όρι μοι φι τραρίσματος στηρίζονται στην αναζήτηση τμημάτ ν της ακο ου ίαςπροτύπου με τη ρήση κάποιου α όρι μου ακρι ούς ταιριάσματος, κα ώς η εύρεση ακρι ών ταιριασμάτ ν είναι πο ύ πιο ρή ορη από την εύρεση προσε ιστικών. Επειδή, όμ ς, οι α όρι μοι αυτοί δεν μπορούν να εντοπίσουν τις έσεις τ ν ταιριασμάτ ν, ρησιμοποιούν κάποιον ά ο α όρι μο που ε έ ει ό ες τις έσεις εκείνες που ο α όρι μος φι τραρίσματος δεν μπόρεσε να απορρίψει κατά το πρώτο πέρασμα της ακο ου ίας αναφοράς. Συνή ς, αρκεί η ρήση του δυναμικού προ ραμματισμού ια τη φάση αναζήτησης τ ν ταιριασμάτ ν, παρό ο που οι α όρι μοι αυτοί δεν είναι οι αποδοτικότεροι ια το πρό ημα τ ν προσε ιστικών ταιριασμάτ ν. Γενικά, αρκεί ο α όρι μος που α επι ε εί ια τη φάση αυτή να παρουσιάζει κα ή συμπεριφορά ια μικρές ακο ου ίες, κα ώς οι ακο ου ίες που προκύπτουν από τη φάση του φι τραρίσματος είναι ενικά μικρές, αν το φι τράρισμα ήταν αποδοτικό. Το αρνητικό τ ν α όρι μ ν φι τραρίσματος είναι η ευαισ ησία τους στο επίπεδο α ών α και το ε ονός ότι η π ειονότητά τους δου εύει κα ά ια μικρά μόνο επίπεδα, ενώ παρουσιάζουν πο ύ κακή επίδοση ια με ά α. Αυτό συμ αίνει επειδή το επίπεδο α ών επηρεάζει το τμήμα του κειμένου που μπορεί να α νοη εί κατά τη φάση φι τραρίσματος. Επομέν ς, στη αξιο ό ηση τ ν α ορί μ ν αυτής της κατη ορίας έ ει σημασία ό ι μόνο ο ρόνος που απαιτείται κατά την εκτέ εσή τους, α ά και η ανο ή τους στα ά η. Οι α όρι μοι φι τραρίσματος διακρίνονται σε αυτούς που ειρίζονται πρότυπα μέτριου μήκους και αυτούς που ειρίζονται πρότυπα πο ύ με ά ου μήκους. Σε ενικές ραμμές, οι α όρι μοι φι τραρίσματος διαφέρουν ια αυτά τα δύο είδη προτύπ ν, κα ώς με α ύτερη α ορι μική πο υπ οκότητα αξίζει μόνο ια με ά α πρότυπα. Περισσότερες επτομέρειες ια υ οποιήσεις α ορί μ ν αυτής της κατη ορίας α πρέπει να αναζητη ούν σε σ ετική ι ιο ραφία [26], κα ώς ξεφεύ ουν από τα όρια της διπ ματικής. 2.2.5 Προσε ιστικοί Α όρι μοι Οι α όρι μοι που ανα ύ ηκαν ς αυτό το σημείο ρίσκουν ό α τα έ τιστα ταιριάσματα του προτύπου με την ακο ου ία αναφοράς. Ωστόσο, ιδιαίτερα στα ιο ο ικά δεδομένα, πο ές φορές προτιμώνται προσε ιστικοί α όρι μοι οι οποίοι είναι πο ύ πιο ρή οροι. Ένας από τους α όρι μους αυτής της κατη ορίας που ρησιμοποιείται ευρέ ς από τους ιο ό ους είναι ο BLAST (Basic Local Alignment Search Tool) [2], κα ώς και διάφορες παρα α ές του. Όπ ς είναι φανερό από το όνομα του α ορί μου, επι ύει το πρό ημα προσε ιστικού τοπικού ταιριάσματος. Η ρησιμότητα του α ορί μου BLAST ια τους ιο- ό ους αποδεικνύεται και από το ε ονός ότι πο οί δικτυακοί τόποι παρέ ουν τη δυνατότητα αναζήτησης σε άσεις δεδομέν ν ρησιμοποιώντας τον BLAST, κα ώς και από την ύπαρξη πο ών παρα α ών και ε τιστοποιήσε ν του α ορί μου. Ο BLAST είναι ένας ευριστικός α όρι μος ο οποίος αρ ικά εντοπίζει μικρές ακο ου ίες που παρουσιάζουν ομοιότητες και στη συνέ εια τις επεκτείνει ια να ρει τα τοπικά ταιριά-

2.2 Οι σημαντικότεροι αλγόριθμοι για ταίριασμα ακολουθιών 29 σματα με α μό ομοιότητας με α ύτερο από κάποιο όριο που κα ορίζεται από το ρήστη. Αξίζει να σημει εί ότι ο BLAST αναπτύ ηκε αρ ικά στο NCBI, στην Ε νική Φαρμακευτική Βι ιο ήκη τ ν ΗΠΑ -π ηροφορίες ια αυτόν τον ορ ανισμό μπορούν να ρε ούν στη συνέ εια αυτού του κεφα αίου. Όμ ς, εκτός από τα BLAST προ ράμματα του NCBI, αναπτύ ηκαν ξε ριστά BLAST προ ράμματα στο πανεπιστήμιο της Washington. Αυτά τα δύο είδη προ ραμμάτ ν ρησιμοποιούν διαφορετικές στατιστικές συναρτήσεις που κα ορίζουν την ομοιότητα μεταξύ τ ν συ κρινόμεν ν ακο ου ιών κι έτσι δίνουν διαφορετικά αποτε έσματα. Πιο ανα υτικά, ο α όρι μος BLAST ασίζεται στην παρατήρηση ότι νουκ εοτιδικές ακο ου ίες που παρουσιάζουν με ά ο α μό ομοιότητας πρέπει να έ ουν κάποιες υπακο- ου ίες που ταιριάζουν ακρι ώς. Για παράδει μα, μία νουκ εοτιδική ακο ου ία με m ζεύ η άσε ν που διαφέρει από μία ά η ακο ου ία σε e σημεία, α πρέπει να δια έτει του ά ιστον ένα ακρι ές ταίριασμα μήκους m/(e + 1) ζεύ η άσε ν με αυτήν. Έτσι, σε πρώτη φάση ο BLAST ρησιμοποιεί μικρές ακο ου ίες μήκους w που είναι συχνές μέσα στο πρότυπο και τις αναζητά μέσα στην ακο ου ία αναφοράς, ώστε να εντοπίσει έσεις στις οποίες οι συ- κρινόμενες ακο ου ίες είναι δυνατόν να παρουσιάζουν υψη ή ομοιότητα, με α ύτερη από ένα όριο που ορίζει ο ρήστης. Συνή ς, το μήκος w τ ν ακο ου ιών που ρησιμοποιεί ο BLAST στη φάση αυτή είναι 11 ια νουκ εοτιδικές ακο ου ίες. Η τιμή έ ει επι ε εί έτσι ώστε να μπορούν να ρίσκονται περιο ές που έ ουν υψη ή ομοιότητα, α ά ταυτό ρονα να μην άνονται μικρά ταιριάσματα που είναι σημαντικά. Στη δεύτερη φάση του α ορί μου, επεκτείνονται οι περιο ές που ξε ώρισαν κατά την πρώτη φάση ώστε να εντοπιστούν τοπικά ταιριάσματα μεταξύ τ ν αρ ικών ακο ου ιών. Η πρώτη φάση του α ορί μου BLAST εισά ει κάποια ανακρί εια στα αποτε έσματα, α ά είναι δυνατόν να επιτευ εί αύξηση της ακρί ειας με κατά η η επι ο ή τ ν παραμέτρ ν w, T (threshold score). Επειδή, όμ ς, η αύξηση της ακρί ειας μπορεί να οδη ήσει σε σημαντική αύξηση του ρόνου εκτέ εσης, α πρέπει να ίνεται συμ ι ασμός μεταξύ του επι υμητού ρόνου εκτέ εσης και του επίπεδου ακρί ειας. Στη φάση της επέκτασης ο BLAST ρησιμοποιεί στις έσεις που εντοπίστηκαν κατά το πρώτο ήμα τον α όρι μο Smith-Waterman [32], τον πιο ν στό α όρι μο τοπικών προσε ιστικών ταιριασμάτ ν. Μία από τις πιο σημαντικές ε τιστοποιήσεις του α ορί μου BLAST είναι ο BLAST2 ή gapped-blast [3]. Ο αρ ικός α όρι μος BLAST κατά τη φάση επέκτασης αμ άνει υπόψη μόνο αναντιστοι ίες (mismatches), επειδή οι εισα ές και δια ραφές κατά τη φάση αυτή οδη ούσαν σε πο ύ με ά ους ρόνους εκτέ εσης. Ο gapped-blast επεκτείνει τα ακρι ή ταιριάσματα που προκύπτουν από την πρώτη φάση του α ορί μου με τρόπο τέτοιο ώστε να επιτρέπονται και κενά, ενώ είναι σ εδόν 3 φορές πιο ρή ορος από τον κ ασικό α όρι μο BLAST. Μία ακόμη σημαντική παρα α ή του BLAST είναι ο MEGABLAST [17], ο οποίος ρησιμοποιείται ια αναζήτηση πο ύ με ά ου αρι μού προτύπ ν σε μία άση δεδομέν ν με ακο ου ίες αναφοράς. Ο α όρι μος αυτός συνενώνει τις ακο ου ίες-πρότυπα πριν κάνει αναζήτηση στη άση δεδομέν ν BLAST και στη συνέ εια ανα ύει τα αποτε έσματα ώστε να εντοπίσει τα επιμέρους ταιριάσματα. Με αυτόν τον τρόπο εκτε είται πιο ρή ορα από ό,τι η σειριακή αναζήτηση τ ν προτύπ ν με ρήση του κ ασικού α ορί μου BLAST. Περισσότερες επτομέρειες ια τους α όρι μους αυτούς και ά ες ε τιστοποιήσεις του BLAST α πρέπει

30 Κεφάλαιο 2. Το πρόβλημα ταιριάσματος ακολουθιακών δεδομένων να αναζητη ούν σε σ ετική ι ιο ραφία, κα ώς ξεφεύ ουν από τα όρια της διπ ματικής. 2.2.6 Α όρι μοι πο απ ού ταιριάσματος ακο ου ιών Η περιο ή αυτή είναι η νεότερη και έ ει τη μικρότερη ανάπτυξη από ό ες τις περιο ές που αναφέρ ηκαν ς αυτό το σημείο. Το πρό ημα του πο απ ού ταιριάσματος ακο ου ιών δεν έ ει τρα ήξει τόση προσο ή όση το ταίριασμα μίας ακο ου ίας-προτύπου με ακο ου ίες αναφοράς, ό της δυσκο ίας που παρουσιάζει. Κατά καιρούς έ ουν προτα εί α όρι μοι οι οποίοι κάνουν πο απ ό ταίριασμα ακο ου ιών κάτ από αυστηρούς περιορισμούς, όπ ς όριο α ών ίσο με 1 ή αναζήτηση μικρού αρι μού ακο ου ιών-προτύπ ν ή πρότυπα μικρού μήκους. Δύο από τους α όρι μους που ξε ρίζουν σε αυτή την κατη ορία είναι ο α όρι μος τ ν Chang & Marr [4] και ο α όρι μος τ ν Fredriksson & Navarro [8] - α αναφέρεται ς α όρι μος του Fredriksson. Επειδή ο δεύτερος α όρι μος είναι πιο αποδοτικός από τον πρώτο στις περισσότερες περιπτώσεις και ειτουρ εί κα ά ια με α ύτερα επίπεδα α ών α=k/m, αναφέρεται εδώ συνοπτικά ο τρόπος με τον οποίο προσε ίζει το πρό ημα του πο απ ού ταιριάσματος ακο ου ιών. Η ενική ιδέα του α ορί μου του Fredriksson είναι η παρακάτ : Έστ Σ ένα α φά ητο και η ακο ου ία αναφοράς Τ μήκους n και οι ακο ου ίες-πρότυπα P 1,, P r πάν σε αυτό το α φά ητο. Η πρώτη φάση του α ορί μου αποτε εί προεπεξερ ασία. Με άση μία τιμή l που εισά ει ο ρήστης, δημιουρ είται ένας πίνακας D: Σ l N που δη ώνει ια κά ε δυνατή έξη μήκους l (l-gram) ποιος είναι ο ε ά ιστος αρι μός α ών ώστε το l-gram να ταιριάξει σε οποιοδήποτε πρότυπο. Στο Σ ήμα 2.6 φαίνεται πώς προκύπτει ο πίνακας D με άση τις ακο ου ίες-πρότυπα P 1, P 2, P 3 και με l = 2. Για παράδει μα, η έξη αα υπάρ ει στα πρότυπα P 1 και P 2 ρίς ά ος, και στο πρότυπο P 3 με 2 ά η. Στον πίνακα D τοπο ετείται η ε ά ιστη τιμή α ών ια το ταίριασμα της έξης σε οποιοδήποτε από τα πρότυπα, οπότε στην περίπτ ση της έξης αα τοπο ετείται η τιμή 0. Σ ήμα 2.6: Α όρι μος του Fredriksson - παράδει μα κατασκευής του πίνακα D κατά την προεπεξερ ασία Μετά το στάδιο της προεπεξερ ασίας ακο ου εί η φάση της αναζήτησης η οποία ίνεται σε παρά υρα μήκους m-k πάν στην ακο ου ία αναφοράς Τ. Σε κά ε τέτοιο παρά υρο δια άζονται έξεις μήκους l από το τέ ος του παρα ύρου προς την αρ ή -αυτή η τε νική συναντάται στους πιο αποδοτικούς α όρι μους ακρι ούς ταιριάσματος. Οι τιμές του πίνακα

2.2 Οι σημαντικότεροι αλγόριθμοι για ταίριασμα ακολουθιών 31 D που αντιστοι ούν στα l-grams που δια άζονται α ροίζονται διαδο ικά σε μία μετα ητή M. Αν η μετα ητή αυτή ξεπεράσει το όριο α ών k πριν φτάσουμε στην αρ ή του παρα ύρου, τότε αποκ είεται να υπάρ ει ταίριασμα που να περιέ ει τα l-grams που δια άστηκαν, αφού το ταίριασμα τ ν l-grams με οποιοδήποτε pattern και με τυ αία σειρά οδή ησε σε περισσότερες από k διαφορές. Επομέν ς, όταν προκύπτει M k είναι δυνατόν η αρ ή του παρα ύρου να πάει στην πρώτη έση που δεν περιέ ει τα l-grams που δια άστηκαν. Αυτή η περίπτ ση παρουσιάζεται στο Σ ήμα 2.7 ια το παρά υρο από τη έση 25 ς την 33. Από την ά η μεριά, αν, δια άζοντας l-grams ανάποδα στο εξεταζόμενο παρά υρο, φτάσουμε στην αρ ή του ρίς να ξεπεράσουμε το όριο τ ν α ών k, πρέπει να εξετάσουμε ια ταιριάσματα μία περιο ή μήκους m+k που ξεκινάει από την αρ ή του παρα ύρου. Ο έ ε ος ίνεται, στην πιο απ ή του μορφή, με σειριακή εφαρμο ή κάποιου α ορί μου προσε ιστικού ταιριάσματος, όπ ς ο α όρι μος δυναμικού προ ραμματισμού, ια ό ες τις ακο ου ίεςπρότυπα. Μία περίπτ ση κατά την οποία δεν μπορούμε να αποκ είσουμε το εξεταζόμενο παρά υρο παρουσιάζεται στο Σ ήμα 2.7. Το παρά υρο αυτό εκτείνεται από τη έση 31 ς την 39. Σ ήμα 2.7: Α όρι μος του Fredriksson - Παράδει μα μετακίνησης του παρα ύρου πάν στην ακο ου ία αναφοράς. Οι παράμετροι του προ ήματος είναι: m=10, k=1 και l=2 Επειδή υπάρ ει περίπτ ση οι περιο ές m+k που πρέπει να ε ε ούν να είναι επικα υπτόμενες, - ε ονός που οδη εί στη δή ση κάποι ν ταιριασμάτ ν πο ές φορές, α ά και σε περιττές αναζητήσεις - κά ε φορά που εκτε είται ο α όρι μος ε έ ου, απο ηκεύεται η τε ευταία έση που ε έ ηκε. Κατ αυτό τον τρόπο, ο έ ε ος νέας περιο ής ξεκινάει από το τε ευταίο σημείο που ε έ ηκε. Μία παρα α ή της τε νικής αυτής που προτείνεται στην ερ ασία τ ν Navarro & Fredriksson είναι να μην εκτε ούμε τον α όρι μο ε έ ου όσο επικα ύπτονται οι περιο ές που ρίσκουμε ότι πρέπει να ε ε ούν, α ά να ανανεώνουμε το τέ ος της συνο ικής, προς έ ε ο περιο ής. Μό ις ρε εί περιο ή που ξεκινάει εκτός της προη ούμενης περιο ής ε έ ου, εκτε είται ο α όρι μος ε έ ου στην πα ιά περιο ή. Στην υ οποίηση του συ κεκριμένου α ορί μου, η οποία περι ράφεται στο κεφά αιο 4, ακο ου ήσαμε τη δεύτερη με οδο ο ία.

32 Κεφάλαιο 2. Το πρόβλημα ταιριάσματος ακολουθιακών δεδομένων Αξίζει να σημει εί ότι ο α όρι μος του Fredriksson απαιτεί οι ακο ου ίες-πρότυπα να έ ουν το ίδιο μήκος και η αναζήτησή τους να ίνεται με το ίδιο όριο α ών. Επίσης, ια να έ ει ο α όρι μος κέρδος σε σ έση με τον α όρι μο δυναμικού προ ραμματισμού πρέπει η παράμετρος α, δη αδή ο ό ος τ ν α ών m k, να είναι μικρότερη από 0.5. 2.3 Εφαρμο ή α ορί μ ν ταιριάσματος σε ιο ο ικά δεδομένα Η φύση μαστορεύει, δεν εφευρίσκει. -Jacob F. [21] Η ανακά υψη της δομής του DNA (δεοξυρι ονουκ εϊκό οξύ) το 1953 από τους D.Watson και F.Crick αποτέ εσε το έναυσμα ια τη ρα δαία εξέ ιξη της υπο ο ιστικής ιο ο ίας. Το DNA είναι πο υμερές και τα μονομερή του είναι τα δεοξυρι ονουκ εοτίδια, τα οποία αποτε ούνται από μία φ σφορική ομάδα, το σάκ αρο δεοξυρι όζη και μία αζ τού ο άση. Οι αζ τού ες άσεις που συναντώνται στο DNA είναι η Αδενίνη (A), η Θυμίνη (T), η Κυτοσίνη (C) και η Γουανίνη (G). Μία πο υνουκ εοτιδική α υσίδα σ ηματίζεται με την έν ση μέσ φ σφοδιεστερικού δεσμού της δεοξυρι όζης ενός δεοξυρι ονουκ εοτιδίου με τη φ σφορική ομάδα ενός ά ου σε τυ αία σειρά. Αν και τα νουκ εοτίδια συνδέονται με τυ αία σειρά σε μία α υσίδα, ο τρόπος με τον οποίο συνδέονται με νουκ εοτίδια ά ης α υσίδας είναι πο ύ συ κεκριμένος και οι αντίστοι ες άσεις έ ονται συμπ ηρ ματικές: η A συνδέεται πάντα με τη T, ενώ η G με την C. Το μόριο του D.N.A. αποτε είται από 2 παρά η ες και συμπ ηρ ματικές πο υνουκ εοτιδικές α υσίδες που σ ηματίζουν μία δεξιόστροφη έ ικα, όπ ς φαίνεται στο Σ ήμα 2.8. Σ ήμα 2.8: Μοριακή δομή του DNA και αναπαράσταση της μίας α υσίδας του σε ψηφιακή μορφή Το ενδιαφέρον τ ν ιο ό ν, α ά και ά ν επιστημόν ν ια το DNA ενισ ύ ηκε μετά τα μέσα του 20ου αιώνα οπότε και ανακα ύφ ηκε ότι το DNA είναι ο φορέας της ενετικής π ηροφορίας και επομέν ς κα ορίζει μεταξύ τ ν ά ν τις ειτουρ ίες του ορ ανισμού,

2.3 Εφαρμογή αλγορίθμων ταιριάσματος σε βιολογικά δεδομένα 33 το φαινότυπό του, τις ασ ένειες από τις οποίες πάσ ει ή ια τις οποίες έ ει προδιά εση. Επιπρόσ ετα, επειδή οι νέες ακο ου ίες δεν δημιουρ ούνται εκ του μηδενός, α ά προέρ ονται από προϋπάρ ουσες ακο ου ίες, με την ανά υση τ ν ακο ου ιών είναι δυνατόν να ρε ούν κοινοί πρό ονοι, α ά και να επεκτα ούν οι νώσεις ια τη ειτουρ ία και τη δομή μίας ν στής ακο ου ίας σε μία νέα που παρουσιάζει σημαντικές ομοιότητες με τη ν στή. Αυτές οι ανακα ύψεις οδή ησαν σταδιακά στο πρό ημα ταιριάσματος ακο ου ιών, ια το οποίο οι πρώτες αναφορές έ ιναν τη δεκαετία του 60. Με ειδικά μη ανήματα, τους ακο ου ιοποιητές (sequencers), επιτυ άνεται η μετατροπή τ ν ιο ο ικών δεδομέν ν σε ψηφιακά τ ν οποί ν η επεξερ ασία είναι δυνατή με Η/Υ. Το DNA αναπαρίσταται ς ένα κείμενο από αρακτήρες A, C, G, T που αντιστοι ούν στις αζ τού ες άσεις. Η ακο ου ία αναφοράς (reference sequence) T ονομάζεται στις ιο ο ικές εφαρμο ές κείμενο (text), ενώ η ακο ου ία-πρότυπο (pattern) αναφέρεται και ς query. Στις ιο ο ικές εφαρμο ές, το ακρι ές ταίριασμα ακο ου ιών δεν είναι τόσο ρήσιμο ια δύο κυρί ς ό ους. Πρώτον, όταν ίνεται κα ορισμός ο όκ ηρης της νουκ εοτιδικής α υσίδας ενός ορ ανισμού στο ερ αστήριο, υπάρ ει α ε αιότητα που οδη εί σε μερικό κα ορισμό κάποι ν άσε ν. Για παράδει μα σε μία συ κεκριμένη έση μπορεί να εμφανίζεται είτε A είτε C. Γενικά, όσο πιο ακρι ής είναι η διαδικασία κατα ραφής τ ν νουκ εοτιδί ν, τόσο πιο ρονο όρα και ακρι ή είναι η διαδικασία. Συνή ς, το όριο ακρί ειας είναι 1 πι ανό ά ος ανά 10KB ια με ά ες ακο ου ίες όπ ς αυτές στο Human Genome Project [19]. Δεύτερον, εκτός από τα πειραματικά ά η, είναι ν στό ότι ίνονται μετα άξεις, δη αδή τυ αίες α α ές στο ενετικό υ ικό που μπορεί να οφεί ονται σε διάφορους παρά οντες, και εξε ικτικές τροποποιήσεις στις ακο ου ίες DNA. Είναι φανερό ότι το ακρι ές ταίριασμα δεν δίνει πο ά αποτε έσματα αφού σπάνια ταιριάζουν από υτα οι συ κρινόμενες ακο ου ίες κι έτσι άνονται π ηροφορίες που είναι ρήσιμες ια την κατανόηση της εξε ικτικής διαδικασίας και ανακατασκευή τ ν εξε ικτικών δέντρ ν (evolutionary trees). Εκτός από την κατανόηση της εξέ ιξης τ ν ειδών, το προσε ιστικό ταίριασμα ακο ου ιών που επιτρέπει μικρό αρι μό α- ών συμ ά ει στην ανα νώριση ονιδί ν και κα ορισμό τ ν ειτουρ ιών που ρυ μίζουν, την κατανόηση της ονιδιακής έκφρασης, τη συ κριτική ονιδι ματική (comparative genomics), την ανακά υψη μονονουκ εοτιδικού πο υμορφισμού (SNP discovery - μονονουκ εοτιδικός πο υμορφισμός είναι η διαφοροποίηση του DNA τ ν με ών ενός είδους σε ένα μόνο νουκ εοτίδιο και έ ει ιδιαίτερο ενδιαφέρον ια τη διά ν ση και με έτη ενετικών νοσημάτ ν, κα ώς και ια τη φαρμακο ενετική). Τα τε ευταία ρόνια οι τε νο ο ίες επόμενης ενιάς (next-generation high-throughput DNA sequencing technologies) τ ν εταιρειών 454 Life Sciences, Ιllumina/Solexa και Applied Biosystems έ ουν α άξει τον τομέα της με έτης τ ν νουκ εοτιδικών ακο ου ιών, κα ώς επιτρέπουν τη αρτο ράφηση του DNA σε πο ύ μικρότερο ρόνο και κόστος από ό,τι οι πα ιότερες τε νο ο ίες. Αξίζει να σημει εί ότι, ενώ στο παρε όν η ακο ου ιοποίηση του DNA απαιτούσε πάρα πο ά μη ανήματα και διαρκούσε πο ά ρόνια, το 2008 έ ινε αρτο- ράφηση του ονιδιώματος του J. Watson σε μό ις 4 μήνες [34]. Οι νέες αυτές τε νο ο ίες φαίνεται ότι σύντομα α επιτρέπουν σε κά ε άτομο να αρτο ραφήσει το DNA του με κόστος περίπου $1000 και στη συνέ εια να ενημερ εί ια τους κινδύνους ασ ενειών που διατρέ ει,

34 Κεφάλαιο 2. Το πρόβλημα ταιριάσματος ακολουθιακών δεδομένων κα ώς και ια ά α σημαντικά ιο ο ικά του αρακτηριστικά. Προς αυτή την κατεύ υνση συμ ά ει και το Personal Genome Project [20]. Όταν κά ε άτομο α μπορεί να αρτο ραφήσει το DNA του, τα δεδομένα που α παρά ονται α είναι τόσο πο ά που α υπα ορεύσουν νέες τε νικές απο ήκευσης και τη ρήση αποδοτικών επεκτάσιμ ν (scalable) α ορί μ ν ια την ανά υσή τους. Ο τομέας της ιοπ ηροφορικής είναι ιδιαίτερα ενερ ός από τη δεκαετία του 60 ς και σήμερα και έ ουν προτα εί πο οί ε ρητικά και πρακτικά αποδοτικοί α όρι μοι ια την επί υση του προ ήματος προσε ιστικού ταιριάσματος, που αποτε εί ένα από τα σημαντικότερα ερ τήματα της περιο ές και κ ειδί ια την κατανόηση της ζ ής. 2.3.1 Είδη αρ εί ν ια την απο ήκευση DNA ακο ου ιών Όπ ς αναφέρ ηκε παραπάν, στο ερ αστήριο ίνεται κατα ραφή τ ν ακο ου ιών DNA με ψηφιακή μορφή ώστε να μπορούν να ανα υ ούν στους Η/Υ. Γενικά, τα αρ εία στα οποία φυ άσσονται οι ακο ου ίες πρέπει να είναι ASCII και δεν μπορούν να ρησιμοποιη ούν επεξερ αστές κειμένου οι οποίοι τοπο ετούν στα αρ εία ακο ου ίες ε έ ου που περιέ ουν αρακτήρες εκτός από τους κ ασικούς ASCII αρακτήρες. Ωστόσο, πο ές ιο ο ικές εφαρμο ές απαιτούν αρ εία που δεν είναι μόνο ASCII, α ά έ ουν και συ κεκριμένο format [25]. Μερικά από τα πιο διαδεδομένα format α ανα υ ούν στη συνέ εια. Εκτός από τους αρακτήρες Α, C, G και Τ που παριστάνουν τις αντίστοι ες αζ τού ες άσεις του DNA, το Nomenclature Committee of the International Union of Biochemistry έ ει οριο ετήσει ένα κώδικα ια την αναπαράσταση άσε ν ακο ου ιών DNA στις οποίες υπάρ ει α ε αιότητα ή ασάφεια. Στο Σ ήμα 2.9 φαίνονται οι κ δικοί που ρησιμοποιούνται κατά την κατα ραφή ακο ου ιών DNA. FASTA Sequence Format Τα αρ εία FASTA αποτε ούνται από 2 μέρη: την 1η ραμμή που είναι σ ό ιο και ξεκινάει με το αρακτήρα > ακο ου ούμενο από το όνομα και την προέ ευση της ακο ου ίας και τις επόμενες ραμμές που αντιστοι ούν στην ακο ου ία και έ ουν συνή ς μήκος 80 αρακτήρ ν η κα εμία. Εκτός από τα 2 αυτά μέρη, σε κάποια αρ εία FASTA μπορεί να υπάρ ει και ο αρακτήρας * που δη ώνει το τέ ος της ακο ου ίας. Το format αυτό είναι αυτό που ρησιμοποιείται πιο πο ύ από τα προ ράμματα ανά υσης ακο ου ιών. Ένα παράδει μα τέτοιου format φαίνεται στο Σ ήμα 2.10 Εκτός από το FASTA format, υπάρ ει και το multi-fasta. Τα αρ εία που έ ουν αυτή τη μορφή αντί να έ ουν μόνο μία ακο ου ία, έ ουν περισσότερες. Η αρ ή της κά ε ακο ου ίας και, συνεπώς το τέ ος της προη ούμενης, ίνεται αντι ηπτή από την ύπαρξη του αρακτήρα > στην αρ ή του σ ο ίου κά ε ακο ου ίας. Το Stanford University/Intelligenetics Sequence Format είναι παρόμοιο με το FASTA format. Ο ανα νώστης που ενδιαφέρεται α πρέπει να αναζητήσει π ηροφορίες στη σ ετική ι ιο ραφία.

2.3 Εφαρμογή αλγορίθμων ταιριάσματος σε βιολογικά δεδομένα 35 Σ ήμα 2.9: Κώδικας αναπαράστασης άσε ν ακο ου ιών DNA Σ ήμα 2.10: Παράδει μα αρ είου FASTA Plain/ASCII.Staden Format Τα αρ εία αυτής της μορφής περιέ ουν μόνο την ακο ου ία DNA ρίς κανένα σ ό ιο. Για να ρησιμοποιη εί η ακο ου ία στα διάφορα ο ισμικά που έ ουν αναπτυ εί πρέπει συνή ς το αρ είο να μετατραπεί σε διαφορετικό format. 2.3.2 XML Sequence Format To XML αποτε εί κ ασικό format δεδομέν ν που ρησιμοποιείται πια ευρέ ς ια το διαμοιρασμό ιο ο ικών ακο ου ιών σε διάφορους υπο ο ιστές. Το format αυτό αποτε είται από διαδο ικά πεδία που συντάσσονται σε μορφή δέντρου. Για παράδει μα σε ένα GenBank αρ είο που έ ει XML format η ακο ου ία ρίσκεται μεταξύ τ ν ετικετών <Seq-data> και </Seq-data>.

36 Κεφάλαιο 2. Το πρόβλημα ταιριάσματος ακολουθιακών δεδομένων 2.3.3 GenBank DNA Sequence Entry Το format αυτό ρησιμοποιείται στη ι ιο ήκη NCBI που έ ει νουκ εοτιδικές και πρ τεϊνικές ακο ου ίες. Στα αρ εία αυτής της μορφής, απο ηκεύονται αρ ικά π ηροφορίες που περι ράφουν την ακο ου ία. Οι π ηροφορίες αυτές περι αμ άνουν μεταξύ τ ν ά ν και ι- ιο ραφικές αναφορές, τη ειτουρ ία της ακο ου ίας και έσεις σημαντικών μετα άξε ν. Οι π ηροφορίες ορ ανώνονται σε πεδία που έ ουν ένα ανα ν ριστικό στην αρ ή κά ε ραμμής. Η ακο ου ία ρίσκεται μεταξύ τ ν ανα ν ριστικών ORIGIN και //. Στο Σ ήμα 2.11 παρουσιάζονται επτομέρειες ια τα πεδία που εμφανίζονται σε αυτό το format. Συ νά το Σ ήμα 2.11: Κώδικας αναπαράστασης άσε ν ακο ου ιών DNA format πρέπει να τροποποιείται σε ά α προκειμένου να ίνει ανά υση τ ν ακο ου ιών από ά α προ ράμματα. Ομοιότητες με αυτό το format παρουσιάζουν τα ακό ου α: το European Molecular Biology Laboratory Data library Format, το SwissProt sequence Format και το National Biomedical Research Foundation/Protein Information Resource. Περισσότερες επτομέρειες ια αυτά τα format α πρέπει να αναζητη ούν στη σ ετική ι ιο ραφία. 2.3.4 Genetics Computer Group Sequence Format Το format αυτό ρησιμοποιείται από τα προ ράμματα Genetics Computer Group και διαφέρει με τα προη ούμενα στο ότι κάνει έ ε ο του checksum ια να δει αν το αρ είο έ ει καταστραφεί ια κάποιο ό ο. Οι αρ ικές ραμμές που περιέ ουν π ηροφορίες ια την ακο- ου ία τερματίζονται με δύο τε είες. Μετά τις δύο τε είες και ς το τέ ος του αρ είου μπορεί να ραφτεί μόνο μία ακο ου ία. Για τη ρήση τ ν ακο ου ιών αυτών από ά α ο ισμικά απαιτείται μετατροπή τ ν αρ εί ν σε διαφορετικά formats. 2.3.5 Βάσεις με ιο ο ικά δεδομένα Οι σημαντικότερες άσεις δεδομέν ν που περιέ ουν ακο ου ίες DNA είναι οι παρακάτ : GenBank, The National Center for Biotechnology Information, NCBI (US) [18]: Η άση δεδομέν ν GenBank ρίσκεται υπό την αι ίδα του National Center for Biotechnology

2.3 Εφαρμογή αλγορίθμων ταιριάσματος σε βιολογικά δεδομένα 37 Information τ ν ΗΠΑ και περι αμ άνει μία συ ο ή με ό ες τις δημόσια δια έσιμες DNA ακο ου ίες. Τα δεδομένα υπο ά ονται συνή ς από ερευνητές και στη συνέ εια υφίστανται επεξερ ασία, ίνονται οι απαραίτητες διορ ώσεις και προστί ενται σ ό ια. Κάποια περιοδικά απαιτούν πριν τη δημοσιοποίηση τ ν ερ ασιών να υπο ά ουν οι ερευνητές στη άση αυτή τα δεδομένα που ρησιμοποίησαν. Γενικά, παρέ ονται διάφορα ερ α εία που διευκο ύνουν την υπο ο ή δεδομέν ν, η οποία μπορεί να ίνει -όπ ς και η πρόσ αση στις ακο ου ίες που υπάρ ουν στη άση- και από το διαδίκτυο. EMBL Nucleotide Sequence Database, European Bioinformatics Institute, EMBL (UK): Η άση αυτή συντηρείται από το Ευρ παϊκό Ερ αστήριο Μοριακής Βιο ο ίας και αποτε εί τη με α ύτερη άση νουκ εοτιδικών ακο ου ιών στην Ευρώπη. Αποτε εί ασική πη ή DNA και RNA ακο ου ιών που υπο ά ονται κα ημερινά από μεμον μένους ερευνητές, από ομάδες ή εταιρείες που ασ ο ούνται με projects ακο ου ιοποίησης ονιδι μάτ ν, κα ώς και από εφαρμο ές πατεντών. Η υπο ο ή και η πρόσ αση στα δεδομένα ίνεται όπ ς και στην GenBank. DNA Data Bank Japan (National Institute of Genetics Japan): Το ινστιτούτο αυτό και η άση που συντηρεί δημιουρ ή ηκαν ια να κα υφ ούν οι ανά κες τ ν ερευνητών που ασ ο ούνται με τη ιοπ ηροφορική στην Ιαπ νία. Αποτε εί τμήμα του National Institute of Genetics στην Ιαπ νία και στό ος του οποίου είναι να παίξει σημαντικό ρό ο στην υπο ο ιστική ιο ο ία τόσο στην Ιαπ νία όσο και στο εξ τερικό. Όπ ς και οι δύο προη ούμενες άσεις δεδομέν ν, επιτρέπει την πρόσ αση στις υπο η είσες ακο ου ίες κα ώς και το ανέ ασμα νέ ν. Οι τρεις παραπάν φορείς είναι π έον μέρος του International Nucleotide Sequence Database Collaboration. Κά ε φορέας συ έ ει ένα ποσοστό τ ν ακο ου ιών που υπο- ά ονται πα κοσμί ς και αντα άσσει κα ημερινά ό α τα νέα και ανα α μισμένα δεδομένα με τις ά ες δύο ορ ανώσεις.

Κεφά αιο 3 Το Περι ά ον MapReduce Στο κεφά αιο αυτό παρουσιάζεται αρ ικά το MapReduce, ένα προ ραμματιστικό μοντέ ο ια την επεξερ ασία με ά ου ό κου δεδομέν ν με παρά η ο τρόπο, και εξη ούνται συνοπτικά τα π εονεκτήματά του σε σ έση με ι ιο ήκες που επιτρέπουν παρα η οποίηση προ ραμμάτ ν. Στη συνέ εια, ίνεται αναφορά στη διαμά η που έ ει δημιουρ η εί μεταξύ τ ν υποστηρικτών τ ν παρά η ν άσε ν δεδομέν ν και αυτών που υποστηρίζουν το νεότερο περι ά ον MapReduce. Τέ ος, παρουσιάζεται η πιο διαδεδομένη open-source υ οποίηση του MapReduce, το Hadoop. 3.1 MapReduce Το MapReduce είναι ένα προ ραμματιστικό μοντέ ο που αναπτύ ηκε από την Google ς σύστημα ια τη δημιουρ ία ευρετηρί ν αναζήτησης σε τεράστιο ό κο δεδομέν ν (πο ά TBs) [7]. Το σύστημα αυτό το εμπνεύστηκαν από πα ιότερες ιδέες του συναρτησιακού προ- ραμματισμού κα ώς και τ ν περιο ών κατανεμημένου υπο ο ισμού και άσε ν δεδομέν ν. Το MapReduce υποστηρίζει την παρά η η εκτέ εση εφαρμο ών σε επεξερ αστές που δεν έ ουν ιδιαίτερα αρακτηριστικά και ισ ύ και παρουσιάζει σημαντικότερα οφέ η ια εφαρμο ές που είναι απαιτητικές σε ρόνο υπο ο ισμού και μνήμη. Το προ ραμματιστικό μοντέ ο MapReduce ανα αμ άνει τη διαμέριση τ ν δεδομέν ν στο cluster, τη δια είριση τ ν παρά η ν ερ ασιών, την εξισορρόπηση τ ν δεδομέν ν στους επεξερ αστές, την αντιμετώπιση αποτυ ιών, κα ώς και την επικοιν νία μεταξύ τ ν μη ανημάτ ν. Ο ρήστης ρειάζεται να ράψει δύο συναρτήσεις, τη map και τη reduce, και το framework φροντίζει ώστε να ίνουν παρά η α οι υπο ο ισμοί στα μη ανήματα που αποτε ούν το cluster. Με αυτόν τον τρόπο κα ίσταται εύκο η η ρήση του προ ραμματιστικού μοντέ ου ακόμη και ρίς νώση παρά η ου προ ραμματισμού και κατανεμημέν ν συστημάτ ν. 3.1.1 Προ ραμματιστικό Μοντέ ο Το ασικό αρακτηριστικό του MapReduce είναι ότι η ειτουρ ία του σε κά ε στάδιο ασίζεται σε ζεύ η κ ειδιών/τιμών (key/value pairs). Τα δεδομένα εισόδου πρέπει να 39

40 Κεφάλαιο 3. Το Περιβάλλον MapReduce είναι ορ αν μένα σε τέτοια ζεύ η και το framework ανα αμ άνει να εκτε εστεί σε κά ε μη άνημα η συνάρτηση map που έ ραψε ο ρήστης και να παρα ούν ενδιάμεσα ζεύ η κ ειδιών/τιμών. Ακο ου εί η εσ τερική ταξινόμηση κατά την οποία συ κεντρώνονται ό ες οι τιμές που αντιστοι ούν στο ίδιο κ ειδί και τα κ ειδιά μαζί με τις αντίστοι ες ίστες τιμών που δημιουρ ή ηκαν σε αυτή τη φάση περνάνε στη συνάρτηση reduce του ρήστη. Τέ ος, η συνάρτηση reduce επεξερ άζεται τα ενδιάμεσα ζεύ η κ ειδιών/ ίστας τιμών και συνή ς προκύπτουν μικρότερα σύνο α τιμών. Παρακάτ φαίνονται οι συναρτήσεις map και reduce: map(k1, v1) (k2, list(v2)) reduce(k2, list(v2)) (k3, list(v3)) Ένα κ ασικό παράδει μα που ρησιμοποιείται ια να ίνει σαφές το προ ραμματιστικό μοντέ ο είναι ο υπο ο ισμός τ ν εμφανίσε ν τ ν έξε ν σε ένα κείμενο (word count). Στη συνέ εια παρατί ενται οι συναρτήσεις map και reduce ια το πρό ημα αυτό: map(string key, String value): // key: document name // value: document contents for each word w in value: EmitIntermediate(w, 1 ); reduce(string key, Iterator values): // key: a word // values: a list of counts int result = 0; for each v in values: result += ParseInt(v); Emit(AsString(result)); Η συνάρτηση map σπάει τις τιμές, δη αδή τα κομμάτια κειμένου, σε έξεις και ια κά ε έξη άζει ένα ενδιάμεσο ζεύ ος ( έξη, 1), που αντιστοι εί στην εύρεση της έξης στο κείμενο μία φορά. Στη φάση ταξινόμησης, σε κά ε κ ειδί- έξη αντιστοι ίζεται μία ίστα από άσσους με μέ ε ος ίσο με το π ή ος τ ν ζευ ών που έ ουν ς κ ειδί τη έξη. Τέ ος, η συνάρτηση reduce διασ ίζει τα στοι εία της ίστας και τα α ροίζει. Για κά ε κ ειδί προκύπτει ένα ζεύ ος στην έξοδο ( έξη, αρι μός εμφανίσε ν). Οι φάσεις του προ ράμματος αυτού απεικονίζονται στο Σ ήμα 3.1. Το MapReduce είναι Turing complete κι επομέν ς ό α τα προ ήματα μπορούν να ραφτούν σε αυτό το προ ραμματιστικό μοντέ ο. Ωστόσο, δεν παρουσιάζει οφέ η ια ό α τα προ ήματα. Τα προ ήματα που ταιριάζουν στη φι οσοφία του MapReduce είναι αυτά που: επεξερ άζονται ανεξάρτητα μεταξύ τους δεδομένα, τα δεδομένα εισόδου μπορούν εύκο α να εκφραστούν σε ζεύ η κ ειδί/τιμή, ειρίζονται πο ύ με ά ο ό κο δεδομέν ν, δη αδή πο ά GBs ή ακόμη και TBs,

3.1 MapReduce 41 Σ ήμα 3.1: Το MapReduce πρό ραμμα WordCount μπορούν να εκφραστούν ς μία ακο ου ία συναρτήσε ν map και reduce. Για ί α δεδομένα δεν αξίζει η ρήση αυτού του προ ραμματιστικού μοντέ ου, ιατί εισά- ονται κα υστερήσεις στον καταμερισμό τ ν ερ ασιών και το μοίρασμα τ ν δεδομέν ν, οι οποίες είναι συ κρίσιμες με το ρόνο εκτέ εσης του προ ράμματος. 3.1.2 Ροή δεδομέν ν στο MapReduce Για να εκτε εστεί ένα πρό ραμμα MapReduce πρέπει αρ ικά να μεταφερ ούν τα δεδομένα εισόδου στο cluster. Το framework ανα αμ άνει το σπάσιμο τ ν δεδομέν ν εισόδου σε M κομμάτια (splits), κα ένα από τα οποία ανατί εται σε κάποιο μη άνημα κι έτσι επιτυ άνεται η παρά η η επεξερ ασία τ ν δεδομέν ν εισόδου. Η κατανομή τ ν κ ήσε ν reduce στα μη ανήματα ίνεται με τη ρήση μίας συνάρτησης διαμέρισης που ανα αμ άνει το ρισμό τ ν ενδιάμεσ ν κ ειδιών σε ένα αρι μό κομματιών R-ο αρι μός αυτός κα ορίζεται από παράμετρο που εισά ει ο ρήστης. Η ροή τ ν δεδομέν ν κατά την εκτέ εση ενός προ ράμματος MapReduce φαίνεται στο Σ ήμα 3.2 και εξη είται στη συνέ εια. Αρ ικά μεταφέρονται και Σ ήμα 3.2: Εκτέ εση MapReduce προ ράμματος και ροή δεδομέν ν

42 Κεφάλαιο 3. Το Περιβάλλον MapReduce αντι ράφονται τα δεδομένα εισόδου στο cluster αφού πρώτα ριστούν σε μικρότερα κομμάτια (chunks), το μέ ε ος τ ν οποί ν κα ορίζεται από παράμετρο που δίνει ο ρήστης. Στη συνέ εια το πρό ραμμα αντι ράφεται τόσες φορές όσα είναι τα μη ανήματα του cluster. Το ένα αντί ραφο είναι ιδιαίτερο και αντιστοι εί στον master, ενώ τα υπό οιπα αντιστοι ούν στους slaves οι οποίοι ανα αμ άνουν να εκτε έσουν τις ερ ασίες που τους ανα έτει ο master. O master ανα έτει ερ ασίες στους slaves που είναι δια έσιμοι, δη αδή σε αυτούς που δεν εκτε ούν κάποια ερ ασία. Κατά τη φάση map, οι slaves στους οποίους έ ει ανατε εί ερ ασία map δημιουρ ούν από τα δεδομένα εισόδου ζεύ η κ ειδιού-τιμής, όπ ς αυτά κα ορίζονται από τη συνάρτηση map του ρήστη. Ανά ο α με το είδος της εφαρμο ής, η συνάρτηση map παρά ει διαφορετικά ζεύ η που διευκο ύνουν την επεξερ ασία τ ν δεδομέν ν. Πο ά στι μιότυπα της συνάρτησης map εκτε ούνται ταυτό ρονα στους κόμ ους-ερ άτες του cluster. Όταν τε ειώσουν ό ες οι map ερ ασίες, ίνεται εσ τερικά ταξινόμηση τ ν ζευ ών ώστε να συ νευτούν σε μία ίστα οι τιμές που φέρουν το ίδιο κ ειδί. Στο τέ ος αυτής της φάσης κά ε επεξερ αστής που εκτέ εσε συνάρτηση map έ ει ένα αρ είο με ζεύ η κ ειδιού/τιμής. Τα ενδιάμεσα κ ειδιά απο ηκεύονται περιοδικά στους τοπικούς δίσκους σε R τμήματα, όπ ς αυτά κα ορίζονται από τη συνάρτηση διαμέρισης που ρησιμοποιείται. Τις τοπο εσίες τ ν R αυτών τμημάτ ν ν ρίζει ο master, ο οποίος είναι υπεύ υνος ια την ενημέρ ση τ ν ερ ασιών reduce. Κατά τη φάση reduce, ανατί εται σε κάποιους slaves ερ ασία reduce. Αυτοί ενημερώνονται από τον master ια τις τοπο εσίες στις οποίες ρίσκονται τα αρ εία που παρά ηκαν κατά την προη ούμενη φάση. Οι slaves που εκτε ούν τη συνάρτηση reduce αρ ικά ταξινομούν τα ενδιάμεσα κ ειδιά και εφαρμόζοντας τη συνάρτηση reduce παρά ουν νέα ζεύ η κ ειδί-τιμή που προστί ενται στο αντίστοι ο αρ είο εξόδου του slave. Επειδή κά ε ερ ασία reduce εκτε- είται ανεξάρτητα από τις υπό οιπες, τε ικά ίνονται παρά η α. Στο σημείο αυτό τε ειώνει η εκτέ εση του MapReduce προ ράμματος και τα αποτε έσματα ρίσκονται σε R αρ εία εξόδου. Αξίζει να σημει εί ότι, εκτός από τις συναρτήσεις map και reduce, παρέ εται η δυνατότητα στο ρήστη να ράψει και μία συνάρτηση combine. Η συνάρτηση αυτή εκτε είται από κά ε κόμ ο που εκτε εί και τη συνάρτηση map και πρακτικά είναι η ίδια συνάρτηση με τη reduce. Διαφέρει, όμ ς, από την τε ευταία διότι εφαρμόζεται μόνο στα τοπικά δεδομένα του κόμ ου. Με αυτόν τον τρόπο είναι δυνατόν να περιοριστούν τα δεδομένα εισόδου στη φάση reduce αυξάνοντας την επίδοση του προ ράμματος. 3.1.3 Π εονεκτήματα του προ ραμματιστικού μοντέ ου MapReduce Ανο ή σε αποτυ ίες κόμ ν (Fault Tolerance) Το MapReduce μοντέ ο ρησιμοποιεί αρ εία ια την επικοιν νία μεταξύ τ ν μη ανημάτ ν του cluster στο διάστημα που μεσο α εί μεταξύ τ ν φάσε ν map και reduce, κα ώς και ια τα ενδιάμεσα αποτε έσματα. Η δια είριση τ ν αρ εί ν α μπορούσε να αποτε εί

3.1 MapReduce 43 bottleneck ια το MapReduce, ι αυτό η Google ανέπτυξε το Google File System (GFS), το οποίο παρέ ει υψη ό bandwidth αντι ράφοντας και μοιράζοντας τα αρ εία αυτά σε πο ά μη ανήματα (φυσικούς δίσκους). Όταν τα δεδομένα φορτώνονται στους κόμ ους, όπ ς ήδη αναφέρ ηκε, ρίζονται σε κομμάτια τα οποία μά ιστα υπάρ ουν σε πο απ ά αντί ραφα (η προεπι ο ή είναι 3), ε ονός που εξασφα ίζει την αξιοπιστία του συστήματος. Το MapReduce ειρίζεται αποτε εσματικά τις μερικές αποτυ ίες που παρουσιάζονται στους κατανεμημένους υπο ο ισμούς με ά ης κ ίμακας. Ο master εντοπίζει map ή reduce ερ ασίες που έ ουν αποτύ ει και κανονίζει ώστε να ίνει ανά εσή τους σε μη ανήματαslaves που δεν παρουσιάζουν πρό ημα. Αυτό κα ίσταται δυνατό επειδή το MapReduce έ ει shared-nothing αρ ιτεκτονική, δη αδή οι ερ ασίες είναι ανεξάρτητες. Φυσικά αυτό δεν είναι από υτα σ στό, διότι οι reduce ερ ασίες ρησιμοποιούν τις εξόδους τ ν map ερ ασιών. Η εξάρτηση αυτή έ ει ς αποτέ εσμα να απαιτείται περισσότερη προσο ή όταν επανεκκινείται μία ερ ασία reduce από ό,τι όταν ρειάζεται να επανα ηφ εί μία ερ ασία map, κα ώς α πρέπει να εξασφα ίζεται ότι η reduce ερ ασία μπορεί να ανακτήσει τις εξόδους τ ν map ερ ασιών ή διαφορετικά, να μπορεί να παράξει πά ι τις εξόδους πριν ίνει η επανεκκίνηση της reduce ερ ασίας. Για να εξασφα ίσει το σύστημα την ανάκαμψή του μετά από αποτυ ία του master, κρατάει περιοδικά checkpoints. Βέ αια, επειδή υπάρ ει μόνο ένας master στην αρ ιτεκτονική αυτή, η αποτυ ία του δεν είναι πο ύ πι ανή. Τοπικότητα Δεδομέν ν (locality) Στην καρδιά του MapReduce είναι η τοπικότητα τ ν δεδομέν ν. Το προ ραμματιστικό αυτό μοντέ ο δια έτει μη ανισμούς που φροντίζουν, όσο αυτό είναι εφικτό, σε κά ε κόμ ο του cluster να ανατί εται η επεξερ ασία δεδομέν ν που είναι τοπικά. Με αυτόν τον τρόπο η πρόσ αση στα δεδομένα είναι πο ύ ρή ορη και τε ικά επιτυ άνεται κα ή επίδοση. Μά ιστα επειδή το bandwidth του δικτύου παίζει κα οριστικό ρό ο σε ένα cluster, οι υ οποιήσεις του MapReduce κα ορίζουν σαφώς την τοπο ο ία του δικτύου. Write Once, Read Many Μία ασική ιδιότητα του MapReduce είναι το μοντέ ο απο ήκευσης δεδομέν ν WORM (Write Once, Read Many). Αυτό επιτρέπει υψη ό επίπεδο παρα η ισμού στην πρόσ αση στα δεδομένα ρίς να απαιτούνται πο ύπ οκοι μη ανισμοί συ ρονισμού. Αυτό το μοντέ ο εφαρμόζεται άμεσα στις ιο ο ικές εφαρμο ές, κα ώς ο με ά ος ό κος δεδομέν ν που δια- ειρίζονται δεν τροποποιείται κατά τη διάρκεια τ ν ερ ασιών. Σπάσιμο τ ν ερ ασιών Όπ ς αναφέρ ηκε παραπάν, τα αρ εία εισόδου ρίζονται σε Μ τμήματα ια τη φάση map, ενώ τα ενδιάμεσα αποτε έσματα σε R ια τη φάση reduce. Ιδανικά, τα με έ η M και R α πρέπει να είναι πο ύ με α ύτερα απο τον αρι μό τ ν κόμ ν του cluster ια δύο ό ους:

44 Κεφάλαιο 3. Το Περιβάλλον MapReduce να είναι δυνατή η δυναμική εξισορρόπηση του φόρτου επεξερ ασίας (load balancing), να επιτα ύνεται η ανάκαμψη του συστήματος όταν κάποιος slave αποτύ ει, κα ώς οι ερ ασίες map που εί ε περατώσει μπορούν να ανατε ούν παρά η α σε πο ούς κόμ- ους. Βέ αια, τα με έ η M και R δεν μπορούν να είναι απεριόριστα με ά α, ιατί οι αποφάσεις που πρέπει να παίρνει ο master είναι O(M+R) και οι καταστάσεις που κρατάει στη μνήμη ια να ε έ ει αν απέτυ ε κάποιος κόμ ος είναι O(MxR). Συνή ς η τιμή M δια έ εται έτσι ώστε κά ε ερ ασία να είναι με έ ους μεταξύ 16MB και 64ΜΒ και η τιμή R μικρό πο απ άσιο του αρι μού τ ν κόμ ν στο cluster. Backup ερ ασιών Ο ρόνος εκτέ εσης τ ν προ ραμμάτ ν επηρεάζεται από τους πιο αρ ούς κόμ ους. Για να αντιμετ πιστεί αυτό το πρό ημα, η Google ρησιμοποιεί τον παρακάτ μη ανισμό: όταν η εκτέ εση ενός MapReduce προ ράμματος είναι κοντά στο τέ ος, ο master ανα έτει την εκτέ εση τ ν ερ ασιών που δεν έ ουν τερματιστεί και σε ά ους κόμ ους. Με αυτόν τον τρόπο, μία ερ ασία τε ειώνει όταν είτε η αρ ική είτε η εφεδρική εκτέ εση τε ειώσει. H Google παρατήρησε ς και 44% επιτά υνση όταν ήταν ενερ οποιημένη η επι ο ή backup τ ν ερ ασιών. 3.2 MapReduce ή ι ιο ήκη (MPI/OpenMP) ια παρα - η οποίηση προ ραμμάτ ν; Πριν από την ανάπτυξη του προ ραμματιστικού μοντέ ου MapReduce, η παρα η οποίηση τ ν προ ραμμάτ ν μπορούσε να επιτευ εί με κατά η η τροποποίησή τους ώστε να ρησιμοποιούν ι ιο ήκες, όπ ς το MPI ή το OpenMP. Ωστόσο, αυτές οι μέ οδοι έ ουν διάφορα μειονεκτήματα. Πρώτον, οι ι ιο ήκες δεν μπορούν να ρησιμοποιη ούν εύκο α από άτομα που δεν έ ουν πο ές νώσεις παρά η ου προ ραμματισμού και κατανεμημέν ν υπο ο ισμών. Ακόμη, όμ ς, και άτομα που έ ουν τέτοιες νώσεις αντιμετ πίζουν δυσκο ίες κα ώς ανα αμ άνουν τόσο την κατανομή τ ν πόρ ν στα μη ανήματα του cluster, όσο και τον τρόπο με τον οποίο αυτά α τους επεξερ αστούν. Δεύτερον, είναι ν στό ότι οι α όρι μοι που παρουσιάζουν πρακτικό ενδιαφέρον συνή- ς έ κουν τους προ ραμματιστές, οι οποίοι προσπα ούν να πετύ ουν ε τί ση στην επίδοσή τους. Οι νεότερες εκδόσεις τ ν α ορί μ ν μπορεί να παρουσιάζουν σημαντικές διαφορές από τις πα ιές και ια να υ οποιη εί η παρα η οποίησή τους, α πρέπει να ίνει από την αρ ή ρήση κατά η ν ι ιο ηκών. Κατ αυτόν τον τρόπο, πα ιά παρά η α προ ράμματα δεν είναι ρήσιμα ια την ανάπτυξη νέ ν. Τρίτον, σε ενικές ραμμές, οι ι ιο ήκες που ρησιμοποιούνται ια την παρα η οποίηση προ ραμμάτ ν στερούνται με όδ ν ειρισμού αποτυ ιών. Έτσι, αν ια κάποιο ό ο

3.3 MapReduce ή Παράλληλες Βάσεις Δεδομένων; 45 παρατηρούνται συ νά αποτυ ίες κατά την εκτέ εση τ ν προ ραμμάτ ν, ο προ ραμματιστής κα είται να εντοπίσει τα αίτια και να φροντίσει ώστε να ίνεται κατά η ος ειρισμός τους μέσα από το πρό ραμμά του. Γενικά, οι ι ιο ήκες, όπ ς το MPI, δίνουν τον έ ε ο στον προ ραμματιστή, πρά μα που σημαίνει ότι έ ει περισσότερη ε ευ ερία ια να ρυ μίσει διάφορες παραμέτρους, α ά ταυτό ρονα παρουσιάζονται περισσότερες δυσκο ίες κατά την ανάπτυξη τ ν προ ραμμάτ ν. Τα μειονεκτήματα αυτά αντιμετ πίζονται αποτε εσματικά από το προ ραμματιστικό μοντέ ο MapΡeduce. Εάν κάποιος δια έτει ένα σειριακό πρό ραμμα -το οποίο προφανώς α πρέπει να μην παρουσιάζει εξαρτήσεις δεδομέν ν- και έ ει να το παρα η οποιήσει στο MapReduce, μπορεί να το κάνει έ οντας στοι ειώδεις νώσεις προ ραμματισμού. Όπ ς έ ινε φανερό και στην προη ούμενη ενότητα, το MapReduce ανα αμ άνει την κατανομή τ ν πόρ ν και τ ν υπο ο ισμών στα μη ανήματα του cluster, κα ώς και στο ειρισμό τ ν αποτυ ιών. Έτσι, ο προ ραμματιστής ή ο επιστήμονας μπορεί να επικεντρ εί στον κώδικα και δεν ρειάζεται να ασ ο η εί με το hardware και την ορ άν ση της επικοιν νίας μεταξύ τ ν μη ανημάτ ν. Τέ ος, οι νέες εκδόσεις ενός α ορί μου μπορούν -κατά περίπτ ση- να προσαρμοστούν με πο ύ ί ες α α ές σε παρά η ες υ οποιήσεις πα ιότερ ν εκδόσε ν. 3.3 MapReduce ή Παρά η ες Βάσεις Δεδομέν ν; Το MapReduce φαίνεται ότι προσφέρει εξαντ ητική προσέ ιση τ ν προ ημάτ ν που επι ύει, κα ώς ια κά ε ερώτημα (query) ίνεται επεξερ ασία του συνό ου τ ν δεδομέν ν εισόδου ή του ά ιστον ενός με ά ου ποσοστού. Αυτή ακρι ώς αποτε εί το δυνατό σημείο του προ ραμματιστικού μοντέ ου, α ά και το ό ο που έ ει δημιουρ ήσει πο ές αντιδράσεις από τους υποστηρικτές τ ν παρά η ν άσε ν δεδομέν ν. Όταν πρ τοπαρουσιάστηκε το MapReduce υπήρ αν πο ές δημοσιεύσεις που κατέκριναν τον τρόπο με τον οποίο το προ ραμματιστικό μοντέ ο αντιμετώπιζε την επεξερ ασία τ ν δεδομέν ν και ο οποίος ήταν τε εί ς αντί ετος με τον εκ επτυσμένη προσέ ιση τ ν παρά η ν άσε ν δεδομέν ν. Τότε, το MapReduce αρακτηρίστηκε ς ένα με ά ο ήμα προς τα πίσ (MapReduce: A Major Step Backwards [15]). Όμ ς, δεν α πρέπει να α νοη εί το ε ονός ότι το MapReduce, το οποίο επεξερ άζεται τα δεδομένα κατά δεσμίδες (batch processing), καταφέρνει να τρέξει ερ τήματα ρίς προη- ούμενη επεξερ ασία πάν σε ό α τα δεδομένα εισόδου και να επιστρέψει αποτε έσματα σε εύ ο ο ρόνο. Με τον τρόπο που προσε ίζει την επί υση προ ημάτ ν, το MapReduce δίνει απαντήσεις σε ερ τήματα που απαιτούσαν απα ορευτικά πο ύ ρόνο και με τον τρόπο αυτό οδη εί στην ενασ ό ηση με νέες ερ τήσεις και προ ήματα. Επιπρόσ ετα, ια ανα ύσεις δεδομέν ν σε με ά η κ ίμακα δεν επαρκούν πάντα οι κ ασικές σ εσιακές άσεις δεδομέν ν με τη ρήση πο ών δίσκ ν. Το πρό ημα που υπάρ ει με τους σκ ηρούς δίσκους είναι ότι ο ρόνος αναζήτησης σε αυτούς ε τιώνεται πιο αρ ά από το ρόνο μεταφοράς δεδομέν ν. Αυτό συμ αίνει επειδή η αναζήτηση απαιτεί την τοπο έτηση της κεφα ής του δίσκου σε συ κεκριμένο σημείο του ια να ίνει ανά ν ση ή ε ραφή δεδομέν ν. Αν απαιτούνται πο ές αναζητήσεις στα δεδομένα, τότε η ανά ν ση και η ε -

46 Κεφάλαιο 3. Το Περιβάλλον MapReduce ραφή με ά ου ό κου δεδομέν ν απαιτεί περισσότερο ρόνο από το streaming που ίνεται σε ρόνο μεταφοράς. Έτσι, ενώ ια ί α δεδομένα η ρήση B-δέντρου ια την αναζήτηση είναι αποτε εσματική, όταν ρειάζεται να ενημερ εί με ά ο μέρος της άσης δεδομέν ν, το Β-δέντρο είναι ι ότερο αποδοτικό από το MapReduce το οποίο ασίζεται στις ειτουρ ίες sort και merge ια να ξανα τίσει τη άση δεδομέν ν. Γενικά, δεν α πρέπει να έπει κανείς το MapReduce ς αντίπα ο τ ν κ ασικών άσε ν δεδομέν ν, α ά μά ον ς συμπ ήρ μα αυτών. Αυτή η τάση υπάρ ει και στις παρουσιάσεις που έ ουν ίνει τα τε ευταία ρόνια από υποστηρικτές τ ν δύο συστημάτ ν. Συ κεκριμένα, o Stonebraker και ο Dewitt κατέκριναν το MapReduce τον Ιανουάριο 2008 στο άρ ρο MapReduce: A Major Step Backwards [15] που δημοσιεύτηκε στο blog της Vertica, της εταιρείας τους. Το Σεπτέμ ριο του 2009, ο Stonebraker και η ομάδα του παρουσίασαν μία συ κριτική με έτη του MapReduce με τις παρά η ες άσεις δεδομέν ν στο SIGMOD, MapReduce and Parallel DBMSs: A comparison of Approaches to Large-Scale Data Analysis [28], η οποία υποστήριζε την άποψή τους ια την υπερο ή τ ν παρά η ν άσε ν δεδομέν ν. Ακο ού ησε η απάντηση τ ν συ ραφέ ν του paper της Google ια το MapReduce, MapReduce: A Flexible Data Processing Tool [6], όπου αναφέρουν τα π εονεκτήματα του προ ραμματιστικού τους μοντέ ου (ACM 10). Τέ ος, ο Stonebraker και η ομάδα του παρουσίασαν στο ACM 10 το άρ ρο MapReduce and Parallel DBMSs: Friends or Foes?, όπου φαίνονται τα πρώτα ήματα ια τη συμφι ί ση τ ν δύο τάσε ν, και τον Ιανουάριο του 2010 η ομάδα αυτή που πο εμούσε το Mapreduce έκανε ομι ία με τίτ ο MapReduce and Parallel DBMSs: Together at last [16]. Στο Σ ήμα 3.3 παρουσιάζονται οι διαφορές τ ν δύο συστημάτ ν. Το MapReduce είναι Σ ήμα 3.3: Διαφορές μεταξύ κ ασικών σ εσιακών Βάσε ν Δεδομέν ν και MapReduce κα ό ια προ ήματα που ρειάζονται ανά υση του συνό ου τ ν δεδομέν ν και ια ad hoc ερ τήματα. Από την ά η μεριά, οι άσεις δεδομέν ν είναι πιο αποτε εσματικές ια δεδομένα που έ ουν υποστεί επεξερ ασία και έ ει τιστεί ευρετήριο σε αυτά, κα ώς έτσι εξασφα ίζεται η ανάκτησή τους σε μικρό ρόνο. Επίσης, είναι αποδοτικές όταν ίνεται ενημέρ ση μικρού μέρους τ ν δεδομέν ν. Τα δύο συστήματα διαφέρουν και στο είδος τ ν δεδομέν ν που μπορούν να επεξερ αστούν. Ενώ οι σ εσιακές άσεις δεδομέν ν ειρίζονται δομημένα δεδομένα (structured data), όπ ς XML ή πίνακες, το MapReduce ειρίζεται δεδομένα που δεν έ ουν συ κεκριμένη δομή, όπ ς απ ό κείμενο, ή έ ουν κάποια δομή η οποία όμ ς δεν επηρεάζει τον τρόπο επεξερ ασίας, όπ ς είναι τα φύ α ερ ασίας (spreadsheet) όπου υπάρ ουν κε ιά τα οποία φυ άνε

3.3 MapReduce ή Παράλληλες Βάσεις Δεδομένων; 47 διαφορετικά είδη δεδομέν ν. Μία ακόμη διαφορά τ ν δύο συστημάτ ν έ κειται στον τρόπο απο ήκευσης τ ν δεδομέν ν. Στις σ εσιακές άσεις δεδομέν ν, τα δεδομένα συνή ς κανονικοποιούνται ώστε να μην υπάρ ει π εονασμός. Η κανονικοποίηση όμ ς έτει προ ήματα στο MapReduce. Όπ ς αναφέρ ηκε παραπάν, το MapReduce ρησιμοποιεί μη ανισμούς ώστε να ίνεται επεξερ ασία κατά το δυνατόν τοπικών δεδομέν ν κι έτσι πετυ αίνει ανά ν ση και ε ραφή δεδομέν ν με με ά η επίδοση. Προκειμένου να μη α ούν τα π εονεκτήματα αυτά, το MapReduce δεν κανονικοποιεί τα δεδομένα και επιδιώκει τον π εονασμό τους ια ό ους ανάκαμψης από αποτυ ίες. Το MapReduce είναι προ ραμματιστικό μοντέ ο που κ ιμακώνεται ραμμικά. Οι συναρτήσεις map και reduce που ράφει ο ρήστης είναι ανεξάρτητες από τον ό κο δεδομέν ν που υπόκειται σε επεξερ ασία και το μέ ε ος του cluster στο οποίο τρέ ει το πρό ραμμα. Διπ ασιασμός τ ν δεδομέν ν εισόδου οδη εί σε διπ ασιασμό του ρόνου εκτέ εσης του προ ράμματος. Διπ ασιασμός τ ν κόμ ν του cluster προκα εί υποδιπ ασιασμό του ρόνου εκτέ εσης. Γενικά, δεν παρατηρείται αυτή η συμπεριφορά στις κ ασικές άσεις δεδομέν ν. Τέ ος, μία σημαντική διαφορά μεταξύ τ ν συστημάτ ν είναι ότι τα MapReduce frameworks συντηρούνται από κοινότητες (community supported and driven) και αποτε ούν ιδιαίτερα ε κυστική επι ο ή ια projects μεσαίου προϋπο ο ισμού. Αντί ετα, οι παρά η ες άσεις δεδομέν ν είναι ακρι ές και δεν υπάρ ει open-source επι ο ή. Τα ασικά π εονεκτήματα τ ν παρά η ν άσε ν δεδομέν ν είναι η επίδοση και η αποδοτικότητα που οφεί ονται στα σ ήματα που ρησιμοποιούνται και στα ερ α εία που υποστηρίζουν τις ανα ύσεις τ ν ερ τημάτ ν. Δεν μπορούν, όμ ς, να επεκτα ούν παρά μόνο σε δεκάδες κόμ ους, ό τ ν συ νών αποτυ ιών και της ανομοιο ένειας τ ν μη ανημάτ ν και παρουσιάζουν με ά ους ρόνους φόρτ σης δεδομέν ν. Από την ά η μεριά, το MapReduce αρακτηρίζεται από επεκτασιμότητα, ανο ή σε αποτυ ίες, ειρισμό μη δομημέν ν δεδομέν ν και αμη ό κόστος, α ά δεν δια έτει δυνατότητες ρήσιμες ια την ανά υση δομημέν ν δεδομέν ν (μοντε οποίηση κ π). Επομέν ς, είναι φανερό ότι κά ε σύστημα έ ει τα π εονεκτήματα και τα μειονεκτήματά του και έ οντας περάσει από τη φάση κατη οριών του MapReduce, οι διαφορές μεταξύ τ ν σ εσιακών άσε ν δεδομέν ν και του προ ραμματιστικού μοντέ ου MapReduce έ ουν αρ ίσει να εξα είφονται. Από τη μία μεριά, οι σ εσιακές άσεις δεδομέν ν ενσ ματώνουν ιδέες του MapReduce, όπ ς οι άσεις δεδομέν ν τ ν Vertica, AsterData, Greenplum και SyBase IQ. Συ κεκριμένα, οι ερ ασίες του Hadoop π έον μπορούν να ρησιμοποιούν τη Vertica ια τα δεδομένα εισόδου και να προ ούν τις ερ ασίες map και reduce στη άση δεδομέν ν. Από την ά η μεριά, το MapReduce π έον υποστηρίζει ώσσες ερ τημάτ ν (query languages) υψη ού επιπέδου, όπ ς το Pig και το Hive, ενώ έ ουν ίνει και ερ ασίες που προσ έτουν στο Hadoop και ά ες ειτουρ ίες τ ν άσε ν δεδομέν ν. Χαρακτηριστικό παράδει μα προς αυτή την κατεύ υνση αποτε εί το HadoopDB [1], στο οποίο το HDFS (το Hadoop και το HDFS α ανα υ ούν στην επόμενη ενότητα) αντικα ίσταται από στι μιότυπα άσε ν δεδομέν ν και τα ερ τήματα ίνονται τοπικά σε κά ε κόμ ο με ρήση SQL. Ό ες αυτές οι α α ές στα δύο συστήματα κάνουν το MapReduce περισσότερο προ-

48 Κεφάλαιο 3. Το Περιβάλλον MapReduce σ άσιμο στους κ ασικούς προ ραμματιστές άσε ν δεδομέν ν και δεί νουν ότι τε ικά το MapReduce δεν δημιουρ ή ηκε ια να αντικαταστήσει τις παρά η ες άσεις δεδομέν ν, α ά έ ει συμπ ηρ ματικό ρό ο. 3.4 Hadoop Το Hadoop [35] δημιουρ ή ηκε από τον Doug Cutting, το δημιουρ ό του Apache Lucene -της διαδεδομένης ι ιο ήκης ια μη ανές αναζήτησης- και προή ε από το Apache Nutch, μία διαδικτυακή μη ανή αναζήτησης ανοι τού κώδικα που αποτε ούσε μέρος του project Lucene. Όταν το 2002 η μη ανή αναζήτησης Nutch ο οκ ηρώ ηκε ήταν φανερό ότι δεν μπορούσε να ειριστεί αποτε εσματικά τον τεράστιο αρι μό σε ίδ ν που υπάρ ουν στο διαδίκτυο. Η δημοσίευση της Google (2003) [10] ια το GFS (Google s distributed filesystem) έπαιξε κατα υτικό ρό ο, κα ώς μία υ οποίηση του GFS α μπορούσε να ειριστεί αποδοτικά τα πο ύ με ά α αρ εία που ήταν αποτέ εσμα της δημιουρ ίας ευρετηρί ν στα δεδομένα ια τη ειτουρ ία της μη ανής αναζήτησης. Έτσι, η ομάδα που ασ ο ούνταν με το Nutch δημιούρ- ησε σύντομα μία υ οποίηση ανοι τού κώδικα του GFS με το όνομα Nutch Distributed Filesystem (NDFS). Λί ο αρ ότερα, η δημοσίευση της Google ια το MapReduce [7] οδή- ησε στην υ οποίηση αυτού του προ ραμματιστικού μοντέ ου στο Nutch. Το 2006 το NDFS και η υ οποίηση του MapReduce στο Nutch αποτέ εσαν ξε ριστό project που ονομάστηκε Hadoop, κα ώς μπορούσαν να ρησιμοποιη ούν και πέρα από τα π αίσια μίας μη ανής αναζήτησης. Η συνερ ασία του Doug Cutting με τη Yahoo! οδή ησε τε ικά στη μετατροπή του Hadoop σε σύστημα που τρέ ει σε κ ίμακα διαδικτύου (web scale). Π έον σήμερα, το Hadoop είναι η πιο διαδεδομένη υ οποίηση ανοι τού κώδικα του προ- ραμματιστικού μοντέ ου MapReduce και αντίστοι α το Hadoop Distributed File System (μετονομασία από το NDFS) είναι η υ οποίηση του Google File System. Μερικές από τις εταιρίες που ρησιμοποιούν το Hadoop εκτός από τη Yahoo! είναι το Last.fm, το Facebook, η New York Times κ.ά. Αν και το Hadoop είναι ν στό κυρί ς ια το MapReduce και το HDFS, στην ουσία αποτε είται από πο ά projects που σ ετίζονται με κατανεμημένο υπο ο- ισμό (distributed computing): Common, Avro, Pig, HBase, Hive, Chukwa και ZooKeeper. Η ανά υση αυτών τ ν projects ξεφεύ ει από τα όρια της διπ ματικής, οπότε περισσότερες επτομέρειες α πρέπει να αναζητη ούν σε σ ετική ι ιο ραφία. Το Hadoop είναι υ οποιημένο σε Java και υποστηρίζει π η ώρα κ άσε ν που διευκο- ύνουν την ανάπτυξη κώδικα. Τα προ ράμματα MapReduce που εκτε ούνται στο Hadoop μπορούν να ραφτούν σε διάφορες ώσσες, όπ ς Java, Ruby, Python και C++, άρη στη δυνατότητα streaming που προσφέρει. Παρά η ος προ ραμματισμός με το Hadoop μπορεί να ίνει αποδοτικά σε περισσότερους από 10.000 κόμ ους, ενώ είναι δυνατή η δια είριση petabytes δεδομέν ν εισόδου. Για τους ό ους αυτούς ρησιμοποιείται ευρέ ς σε cloud computing και το κόστος εκτέ εσης τ ν προ ραμμάτ ν είναι ανά ο ο τ ν υπηρεσιών που ρησιμοποιούνται. Για τις υπηρεσίες που υπάρ ουν α πρέπει να αναζητη ούν π ηροφορίες στις ιστοσε ίδες τ ν παρό ν cloud (cloud providers).

3.4 Hadoop 49 3.4.1 HDFS Όπ ς αναφέρ ηκε πιο πάν, το HDFS είναι το κατανεμημένο σύστημα αρ εί ν που ρησιμοποιεί το Hadoop. To σύστημα αυτό έ ει ασιστεί στο GFS και έτσι έ ει παρόμοια αρακτηριστικά. Επειδή τα αρακτηριστικά αυτά ανα ύ ηκαν κατά την παρουσίαση του MapReduce της Google, εδώ α αναφερ ούν συνοπτικά. Υψη ή ανο ή σε σφά ματα: Στα κατανεμημένα συστήματα με ά ης κ ίμακας οι αστο- ίες του hardware είναι μά ον η νόρμα παρά η εξαίρεση κι έτσι ανά πάσα στι μή κάποιοι κόμ οι του cluster δεν ειτουρ ούν κανονικά. Το HDFS, όπ ς και το GFS, φροντίζει να εντοπίζονται οι κόμ οι αυτοί ώστε να μπορεί να ίνεται ανάκαμψη του συστήματος. Streaming πρόσ αση στα δεδομένα: το HDFS δημιουρ ή ηκε ια επεξερ ασία πο ών δεδομέν ν κατά δεσμίδες (batch processing) και ια επίτευξη υψη ού throughput (και ό ι αμη ού latency κατά την πρόσ αση τ ν δεδομέν ν). Με ά ος ό κος δεδομέν ν εισόδου: κα ώς το MapReduce δημιουρ ή ηκε ώστε να ειρίζεται τεράστιο ό κο δεδομέν ν εισόδου, το HDFS υποστηρίζει πο ύ με ά α αρ- εία. Μοντέ ο WORM (write-once-read-many): το HDFS ρειάζεται το μοντέ ο μία-ε ραφήπο ές-ανα νώσεις ια τα αρ εία εισόδου. Το μοντέ ο αυτό ταιριάζει από υτα με τη φι οσοφία τ ν εφαρμο ών MapReduce. H μεταφορά τ ν υπο ο ισμών είναι φ ηνότερη από τη μεταφορά τ ν δεδομέν ν: είναι προφανές ότι οι υπο ο ισμοί είναι πιο αποδοτικοί όταν εκτε ούνται κοντά στα δεδομένα που ρησιμοποιούν και η διαφορά στην επίδοση είναι πιο αισ ητή ια δεδομένα εισόδου πο ύ με ά ου ό κου. Η φι οσοφία του HDFS είναι ότι είναι προτιμότερη η μεταφορά υπο ο ισμών σε ά ους κόμ ους παρά η μεταφορά τ ν δεδομέν ν και ι αυτό δια έτει μη ανισμούς που επιτρέπουν στις εφαρμο ές να μεταφέρονται πιο κοντά στα δεδομένα. Mεταφερσιμότητα σε ά ες π ατφόρμες: το HDFS έ ει σ εδιαστεί έτσι ώστε να μπορεί να μεταφερ εί εύκο α σε διάφορες π ατφόρμες. Ο σ εδιασμός αυτός έ ει ς αποτέ- εσμα να επι έ εται το HDFS ς π ατφόρμα εκτέ εσης εφαρμο ών που ειρίζονται με ά ο ό κο δεδομέν ν. 3.4.2 Η αρ ιτεκτονική του HDFS Για την κατανόηση της ειτουρ ίας και ορ άν σης του HDFS παρατί ενται μερικά στοι- εία ια τα μη ανήματα που υπάρ ουν στο cluster και το ρό ο που παίζει το κα ένα κατά την εκτέ εση τ ν προ ραμμάτ ν. Το HDFS είναι σύστημα master-slave, δη αδή ένα μη άνημα έ ει το ρό ο του master που ρυ μίζει τον τρόπο ειτουρ ίας τ ν υπό οιπ ν μη ανημάτ ν (slaves).

50 Κεφάλαιο 3. Το Περιβάλλον MapReduce NameNode Το ρό ο του master που ανα ύ ηκε στην ενότητα MapReduce έ ει ο NameNode, ο οποίος δια ειρίζεται το namespace του συστήματος αρ εί ν και ρυ μίζει την πρόσ αση τ ν clients στα αρ εία του HDFS. Επιπρόσ ετα, ο NameNode έ ει τις π ηροφορίες ια την αντιστοί ηση (mapping) τ ν blocks στους DataNodes -ο όρος εξη είται στη συνέ εια- και ια ό α τα metadata του HDFS. Οποιαδήποτε α α ή στο namespace ή τις ιδιότητες του συστήματος αρ εί ν κατα ράφεται από τον NameNode. Πιο ανα υτικά, ο NameNode ρησιμοποιεί ένα αρ είο στο τοπικό σύστημα αρ εί ν ώστε να απο ηκεύει το EditLog, ένα transaction log με ξε ριστή ε ραφή ια κά ε α α ή που συμ αίνει στο HDFS. Ενδεικτικά, τέτοιες α α ές μπορεί να είναι η δημιουρ ία ενός αρ- είου/directory, το άνοι μα,το κ είσιμο ή η α α ή του replication factor ενός αρ είου. Εκτός από το EditLog, υπάρ ει και ένα ά ο αρ είο που ονομάζεται FsImage και απο ηκεύεται και αυτό στο τοπικό σύστημα αρ εί ν του NameNode. Στο αρ είο αυτό απο ηκεύεται ο όκ ηρο το namespace του συστήματος αρ εί ν μαζί με τις ιδιότητες του τε ευταίου και τις αντιστοι ίσεις τ ν blocks σε αρ εία. Ο NameNode κρατάει μία εικόνα του namespace του συστήματος αρ εί ν και το αρ είο BlockMap στη μνήμη. Ο σ εδιασμός έ ει ίνει με τρόπο τέτοιο ώστε 4GB RAM να επιτρέπουν στον NameNode να δια ειρίζεται πο ύ με ά ο αρι μό αρ εί ν και φακέ ν. Όταν ξεκινάει ο NameNode, δια άζει το FsImage και το EditLog από το δίσκο και εφαρμόζει ό ες τις συνα α ές του EditLog στο FsImage που ρίσκεται στη μνήμη. Αφού απο ηκευτεί το ενημερ μένο FsImage στο δίσκο, o NameNode κό ει το EditLog. H διαδικασία αυτή ονομάζεται checkpoint και υ οποιείται, προς το παρόν, μόνο κατά την εκκίνηση του NameNode. DataNodes Οι DataNodes αποτε ούν τους slaves του HDFS και συνή ς τρέ ει ένας σε κά ε μη άνημα εκτός από αυτό που τρέ ει τον NameNode. Οι DataNodes ικανοποιούν τις αιτήσεις τ ν clients του συστήματος ια ανά ν ση και ε ραφή και επιπ έον δημιουρ ούν, δια ράφουν blocks και φροντίζουν ια τα αντί ραφά τους με άση τις οδη ίες του NameNode. Επίσης, ενημερώνουν τον τε ευταίο ια τα blocks που έ ει ο κα ένας, ενώ του στέ νουν και ανά τακτά διαστήματα πα μό που δη ώνει ότι ειτουρ ούν κανονικά. Κά ε DataNode απο ηκεύει HDFS δεδομένα σε αρ εία (1 block ανά αρ είο) στο τοπικό σύστημα αρ εί ν και δεν ν ρίζει τίποτα ια τα HDFS αρ εία. Η απο ήκευση τ ν αρ εί ν στο τοπικό σύστημα ίνεται σε διαφορετικούς φακέ ους, ο αρι μός τ ν οποί ν κα ορίζεται από ευριστική συνάρτηση που δίνει το έ τιστο αρι μό αρ εί ν ανά φάκε ο. Αυτό συμ αίνει επειδή το τοπικό σύστημα αρ εί ν ενδέ εται να μην μπορεί να δια ειριστεί αποδοτικά πο ύ με ά ο αρι μό αρ εί ν ανά φάκε ο. Όταν ξεκινάνε οι DataNodes, σκανάρουν το τοπικό σύστημα αρ εί ν και δημιουρ ούν μία ίστα με ό α τα HDFS block δεδομέν ν που αντιστοι ούν στα τοπικά αρ εία. Η ίστα αυτή αποτε εί το Blockreport και την αποστέ ουν στον NameNode. Κατά το διάστημα αυτό που οι DataNodes δημιουρ ούν τις αναφορές και τις στέ νουν στον NameNode, ο τε ευταίος

3.4 Hadoop 51 ρίσκεται σε safemode. JobTracker Ο JobTracker ορ ανώνει την εκτέ εση τ ν MapReduce ερ ασιών (jobs) που υπο ά - ουν οι clients. Συ κεκριμένα, τις ρίζει σε μικρότερα tasks και προσπα εί να τα ανα έσει σε TaskTrackers με τρόπο τέτοιο ώστε να ε α ιστοποιείται η κίνηση στο δίκτυο. Προκειμένου να κάνει αυτή την ανά εση, ο JobTracker επικοιν νεί με τον NameNode ια να κα ορίσει πού ρίσκονται τα δεδομένα και να ανα έσει τα tasks σε κόμ ους που έ ουν αυτά τα δεδομένα ή είναι κοντά σε κόμ ους που τα έ ουν, δη αδή σε κόμ ους στο ίδιο rack. Ο JobTracker δέ εται πα μούς από τους TaskTrackers και αυτοί τον ενημερώνουν αν κάποιο task απέτυ ε. Αν σταματήσει κάποιος TaskTracker να δίνει πα μό, ο JobTracker ε ρεί ότι απέτυ ε και ανα έτει το task σε ά ον TaskTracker. Αν αναφερ εί στο JobTracker ότι κάποιο task απέτυ ε, τότε μπορεί να το ανα έσει εκ νέου σε ά ο κόμ ο ή να σημειώσει ότι η συ κεκριμένη ε ραφή πρέπει να αποφεύ εται ή να ά ει σε blacklist τον TaskTracker που απέτυ ε. Όταν τε ειώσει η ερ ασία, ο JobTracker ανανεώνει την κατάστασή του. Σ ήμα 3.4: Εκτέ εση MapReduce προ ράμματος από το Hadoop TaskTrackers Οι TaskTrackers είναι εφαρμο ές που εκτε ούν τα tasks στα οποία έ ει ριστεί μία ερ ασία (job). Τα tasks ανατί ενται στους TaskTrackers από τον JobTracker, στον οποίο δίνουν αναφορά ια την επιτυ ία ή αποτυ ία εκτέ εσης του task και

52 Κεφάλαιο 3. Το Περιβάλλον MapReduce αποστέ ουν πα μό που δη ώνει την ορ ή ειτουρ ία τους. Ο πα μός αυτός αποτε εί τον τρόπο επικοιν νίας μεταξύ τ ν TaskTrackers και του JobTracker: μέσ αυτού ίνεται η ενημέρ ση του τε ευταίου ια την κατάσταση του TaskTracker, κα ώς και η ανά εση νέου task. Στο Σ ήμα 3.4 φαίνεται πώς ίνεται η εκτέ εση του προ ράμματος MapReduce στο HDFS και πώς α η επιδρούν ο JobTracker με τους Tasktrackers. Το HDFS έ ει σ εδιαστεί έτσι ώστε να μπορεί να απο ηκεύει με αξιοπιστία πο ύ με ά α αρ εία στα μη ανήματα με ά ν cluster. Πιο ανα υτικά, ια να απο ηκευτεί κά ε αρ είο στο cluster ρίζεται σε blocks και δημιουρ είται ένας αρι μός αντι ράφ ν (η προκα ορισμένη τιμή είναι 3) ώστε να εξασφα ίζεται η ανο ή σε αστο ίες. Το μέ ε ος του block και ο παρά οντας αντι ραφής (replication factor) μπορεί να κα οριστεί ια κά ε αρ είο ριστά. Ό ες τις αποφάσεις που είναι σ ετικές με την αντι ραφή τ ν blocks τις παίρνει ο NameNode, ο οποίος αμ άνει πειροδικά πα μό και αναφορά blocks από τους DataNodes. Η αρ ιτεκτονική του HDFS παρουσιάζεται στο Σ ήμα 3.5. Σ ήμα 3.5: Η αρ ιτεκτονική του HDFS 3.4.3 Αντί ραφα δεδομέν ν στο HDFS Η τοπο έτηση τ ν αντι ράφ ν στο cluster έ ει κα οριστικό ρό ο στην αξιοπιστία και την επίδοση του συστήματος. Μά ιστα, το αρακτηριστικό της αντι ραφής τ ν blocks διακρίνει το HDFS από τα περισσότερα συστήματα αρ εί ν. Συνή ς, σε πο ύ με ά α clusters οι υπο ο ιστές κατανέμονται σε διαφορετικές ομάδες (racks), η επικοιν νία τ ν οποί ν ίνεται μέσ switches. Το bandwidth του δικτύου είναι ενικά με α ύτερο μεταξύ μη ανημάτ ν στην ίδια ομάδα από ό,τι μεταξύ μη ανημάτ ν σε διαφορετικές ομάδες. Μέσ μίας διερ ασίας ο NameNode ρίσκει τον αρι μό ομάδας του κά ε κόμ ου. Όπ ς αναφέρ ηκε, ο παρά οντας αντι ραφής έ ει την προκα ορισμένη τιμή 3. Όπ ς φαίνεται στο Σ ήμα 3.6, η πο ιτική του HDFS είναι να τοπο ετεί ένα αντί ραφο σε κάποιον κόμ ο που ανήκει σε τοπικό rack, ένα σε διαφορετικό κόμ ο του τοπικού rack και το τε ευταίο αντί ραφο σε κόμ ο σε διαφορετικό rack. Η πο ιτική αυτή ε τιώνει την επίδοση τ ν ε ραφών ρίς να συμ ι άζει την

3.4 Hadoop 53 αξιοπιστία δεδομέν ν ή την επίδοση ανά ν σης. Σ ήμα 3.6: Η πο ιτική αντι ράφ ν του HDFS 3.4.4 Επι ο ή αντι ράφ ν Για να μει εί η κατανά ση bandwidth και η κα υστέρηση ανά ν σης, το HDFS προσπα εί να ικανοποιήσει κά ε αίτηση ανά ν σης παρέ οντας το αντί ραφο που είναι πιο κοντά στον κόμ ο που ζήτησε να δια άσει. Έτσι, αν υπάρ ει στο ίδιο rack αντί ραφο, τότε αυτό προτιμάται. Στη ενική περίπτ ση, αν ένα cluster εκτείνεται σε πο ά υπο ο ιστικά κέντρα (data center), τότε προτιμώνται τα αντί ραφα που ρίσκονται στο τοπικό υπο ο ιστικό κέντρο.

Κεφά αιο 4 Α όρι μοι Προσε ιστικού Ταιριάσματος ακο ου ιακών δεδομέν ν στο περι ά ον MapReduce Στο κεφά αιο αυτό παρουσιάζονται οι α όρι μοι που υ οποιή ηκαν αρ ικά σε σειριακή μορφή, δοκιμάστηκαν και ε τιστοποιή ηκαν, και στη συνέ εια προσαρμόστηκαν στο Map- Reduce περι ά ον. Οι α όρι μοι που επι έ ηκαν να παρα η οποιη ούν με τη ρήση αυτού του προ ραμματιστικού μοντέ ου ανήκουν σε τρεις από τις κατη ορίες α ορί μ ν προσε ιστικού ταιριάσματος ακο ου ιών που ανα ύ ηκαν στο κεφά αιο 2: δυναμικός προ ραμματισμός πο απ ό ταίριασμα ακο ου ιών φι τράρισμα και οι υ οποιήσεις έ ιναν σε Java με το Hadoop. 4.1 Παρα η οποίηση του α ορί μου δυναμικού προ- ραμματισμού Ο πρώτος α όρι μος που επι έ ηκε ια να προσαρμοστεί στο προ ραμματιστικό μοντέ ο MapReduce είναι ο α όρι μος δυναμικού προ ραμματισμού με τη ε τιστοποίηση της ευριστικής cut-off που περι ράφτηκε στο κεφά αιο 2. Το πρό ημα εύρεσης προσε ιστικών ταιριασμάτ ν σε άση δεδομέν ν με ακο ου ίες αναφοράς μπορεί να παρα η οποιη εί ό της ανεξαρτησίας τ ν ιο ο ικών δεδομέν ν. Η ενική ιδέα ια την παρα η οποίηση του α ορί μου δυναμικού προ ραμματισμού φαίνεται στο Σ ήμα 4.1 και ασίζεται στο ρισμό τ ν δεδομέν ν εισόδου με τρόπο τέτοιο ώστε κά ε επεξερ αστής στο cluster να επι ύει το 55

56 Κεφάλαιο 4. Αλγόριθμοι Προσεγγιστικού Ταιριάσματος ακολουθιακών δεδομένων στο περιβάλλον MapReduce πρό ημα του προσε ιστικού ταιριάσματος ό ν τ ν ακο ου ιών-προτύπ ν σε ένα μέρος της άσης δεδομέν ν με τις ακο ου ίες αναφοράς. Ο όρος ASM που ανα ράφεται στη φάση Map αποτε εί συντομο ραφία του προ ήματος προσε ιστικού ταιριάσματος (Approximate Sequence Matching). Ακολουθίες πρότυπα Map Combine Reduce Ταιριάσματα (query 1, k 1 ) (query 2, k 2 ) (query n, k n ) Ακολουθίες αναφοράς ASM(text j, query 1, k 1 )... ASM(text j, query n, k n ) Αφαίρεση διπλότυπων ταιριασμάτων τοπικά Αφαίρεση διπλότυπων ταιριασμάτων (query i, text j, end_of_match)... text 1 text 2 text m Σ ήμα 4.1: Προσέ ιση του α ορί μου δυναμικού προ ραμματισμού στο MapReduce περι- ά ον H είσοδος του προ ράμματος είναι πο ά αρ εία FASTA που περιέ ουν ακο ου ίες αναφοράς, κα εμία από τις οποίες έ ει μήκος n i, και ένα ή περισσότερα αρ εία multi-fasta που έ ουν τις ακο ου ίες-πρότυπα. Σε αυτό το πρό ημα δεν υπάρ ει περιορισμός στο μήκος τ ν ακο ου ιών-προτύπ ν και ε ρούμε ότι κά ε ακο ου ία-πρότυπο έ ει μήκος m j. Τα αρ εία FASTA πρέπει να υποστούν κάποια προεπεξερ ασία ανά ο α με το είδος τ ν ακο ου ιών που περιέ ουν. Στις ακο ου ίες αναφοράς πρέπει να προστε εί η έση του πρώτου αρακτήρα τους μετά το ανα ν ριστικό τους στο σ ό ιο του αντίστοι ου αρ είου FASTA: η έση α είναι 1 αν η ακο ου ία ξεκινάει από τον πρώτο αρακτήρα που ρίσκεται στο αρ είο και α έ ει με α ύτερη τιμή αν η ακο ου ία αποτε εί τμήμα κάποιας ά ης με α ύτερης ακο ου ίας. Συνή ς, αν μία ακο ου ία αναφοράς είναι πο ύ με ά η (αρκετά MB ή με α ύτερη), ια να είναι δυνατή η αναζήτηση ταιριασμάτ ν, ρίς να προκύπτει σφά μα ό έ ειψης ώρου μνήμης, πρέπει να ριστεί σε επιμέρους κομμάτια που έ ουν επικά υψη max(m i )+k-1. Η επικά υψη αυτή ε υάται ότι δεν άνονται ταιριάσματα που ανήκουν στην τομή διαδο ικών κομματιών. Αυτό προκύπτει από την παρατήρηση ότι το μέ ιστο προσε ιστικό ταίριασμα, με όριο α ών k, μίας ακο ου ίας-προτύπου μήκους m με μία ακο ου ία αναφοράς είναι m+k. Για να δη ώνονται τα ταιριάσματα με αναφορά την αρ ή της με ά ης ακο ου ίας αναφοράς και ό ι του τμήματος της ακο ου ίας που εξετάζεται, πρέπει να ν ρίζουμε τη έση του

4.1 Παραλληλοποίηση του αλγορίθμου δυναμικού προγραμματισμού 57 πρώτου αρακτήρα του κά ε κομματιού στην ακο ου ία αναφοράς από την οποία προέκυψε και αυτό το σκοπό εξυπηρετεί η προσ ήκη στα σ ό ια τ ν αρ εί ν. Εκτός από την πι ανότητα εμφάνισης σφά ματος ό έ ειψης ώρου μνήμης, και ο τρόπος ειτουρ ίας του Hadoop επι ά ει να ρίζουμε τα με ά α αρ εία σε μικρότερα. Συ κεκριμένα, το Hadoop έ ει μία ιδιότητα που ονομάζεται dfs.block.size και κα ορίζει το μέ ε ος τ ν blocks του HDFS και κατά συνέπεια το μέ ιστο μέ ε ος αρ είου εισόδου που μπορεί να επεξερ αστεί κά ε mapper. Σε περίπτ ση που ένα αρ είο εισόδου είναι με α ύτερο από την προκα ορισμένη τιμή της ιδιότητας (64ΜΒ) ή την τιμή που έ ει έσει ο ρήστης, τότε το Hadoop ανα αμ άνει να το ρίσει σε filesize dfs.block.size επιμέρους κομμάτια. Αυτή η συμπεριφορά του Hadoop δεν είναι επι υμητή ια τα ιο ο ικά δεδομένα που επεξερ αζόμαστε διότι, όπ ς εξη ή ηκε και παραπάν, πρέπει να φροντίζουμε να υπάρ ει επικά υψη μεταξύ διαδο ικών αρ εί ν, ώστε να μην άνονται ταιριάσματα. Επιπρόσ ετα, ο ρισμός τ ν αρ εί ν σε μικρότερα α οδη ήσει ό α τα αρ εία εκτός από το πρώτο να μην έ ουν τις απαραίτητες π ηροφορίες που αρακτηρίζουν την ακο ου ία και οι οποίες ρίσκονται στο σ ό ιο της πρώτης ραμμής. Σε κάποιες εφαρμο ές συμφέρει το dfs.block.size να τί εται σε τιμή με α ύτερη από την προκα ορισμένη. Ωστόσο, στη ιο ο ική εφαρμο ή που με ετάμε με α ύτερο μέ ε ος του block δεν προσφέρει οφέ η. Κά ε ερ ασία map επεξερ άζεται δεδομένα που ρίσκονται σε ένα μόνο block. Αν το μέ ε ος του block είναι με ά ο, τότε κά ε mapper επι αρύνεται με αναζητήσεις ταιριασμάτ ν σε με ά ο ό κο δεδομέν ν εισόδου και άρα απαιτείται περισσότερος ρόνος επεξερ ασίας. Με δεδομένο ότι σε ένα cluster δεν είναι ό α τα μη ανήματα εξίσου ρή ορα, με ά ος ό κος δεδομέν ν σημαίνει με α ύτερη κα υστέρηση και ια τον πιο αρ ό υπο ο ιστή, ο οποίος κα ορίζει το ρόνο εκτέ εσης του προ ράμματος. Επιπρόσ ετα, αν κάποιος κόμ ος πέσει, ο JobTracker ανα έτει την ερ ασία του σε κάποιον ά ο κόμ ο και ό του με ά ου ρόνου επεξερ ασίας, προκα είται με α ύτερη αύξηση του ρόνου εκτέ εσης από ό,τι αν το μέ ε ος του block ήταν μικρότερο. Ωστόσο, το μέ ε ος του HDFS block δεν α πρέπει να είναι ούτε πο ύ μικρό, κα ώς οδη εί σε αύξηση του αρι μού τ ν ερ ασιών και επι άρυνση ό του κόστους ανά εσής τους στους κόμ ους του cluster και του συντονισμού που απαιτείται. Όσον αφορά τις ακο ου ίες-πρότυπα, πρέπει κα εμία από αυτές να φέρει το επιτρεπτό όριο α ών, k, με το οποίο α ίνει η αναζήτηση προσε ιστικών ταιριασμάτ ν της στις ακο ου ίες αναφοράς. Έτσι, κατά την προεπεξερ ασία, στα αρ εία multi-fasta πρέπει να προστε εί στο σ ό ιο της κά ε ακο ου ίας, μετά το ανα ν ριστικό της, το όριο α ών. Σημειώνεται ότι η εύρεση ταιριασμάτ ν με τον α όρι μο δυναμικού προ ραμματισμού δεν έτει περιορισμό ούτε στο μήκος τ ν ακο ου ιών-προτύπ ν, ούτε στο όριο α ών. Το Hadoop υποστηρίζει κάποια format ια τα αρ εία εισόδου και παρέ ει readers που φροντίζουν ώστε να ίνεται η ανά ν ση τ ν αρ εί ν με άση το format τους. Τα περισσότερα από τα formats που υποστηρίζονται έ ουν σε κά ε ραμμή ένα ζεύ ος κ ειδιού/τιμής και διαφέρουν ς προς τον τρόπο αναπαράστασης του ζεύ ους αυτού. Οι αντίστοι οι readers ανα αμ άνουν να δια άσουν κατά η α το κ ειδί και την τιμή κά ε ραμμής και τα παρέ ουν ς είσοδο στον εκάστοτε mapper ια να εφαρμόσει τη συνάρτηση map. Αυτά τα formats

58 Κεφάλαιο 4. Αλγόριθμοι Προσεγγιστικού Ταιριάσματος ακολουθιακών δεδομένων στο περιβάλλον MapReduce δεν είναι κατά η α ια τα ιο ο ικά δεδομένα, ρίς να προη η εί επεξερ ασία αυτών, κα ώς οι ακο ου ίες είναι απο ηκευμένες σε αρ εία με ραμμές 80 αρακτήρ ν και άρα κά ε ραμμή δεν μπορεί να δια άζεται ανεξάρτητα από τις υπό οιπες και να εφαρμόζεται σε αυτήν ο α όρι μος δυναμικού προ ραμματισμού. Για να αποφευ εί περαιτέρ προεπεξερ ασία τ ν αρ εί ν εισόδου δημιουρ ήσαμε ένα νέο format, το EntireFileInputFormat. Το format αυτό επεκτείνει το FileInputFormat που είναι η ασική κ άση του Hadoop ια formats αρ εί ν εισόδου. Ο αντίστοι ος reader, ο EntireFileRecordReader, επεκτείνει την κ άση RecordReader που σπάει τα δεδομένα σε ζεύ η κ ειδιού/τιμής ώστε να ρησιμοποιη ούν από τον mapper. Συ κεκριμένα, δια άζει κά ε αρ είο εισόδου ο όκ ηρο σαν να αποτε εί μόνο μία ε ραφή και το τοπο ετεί στην τιμή ενός ζεύ ους κ ειδιού/τιμής με κενό κ ειδί. Με τον τρόπο αυτό ίνεται η ανά ν ση τ ν αρ εί ν FASTA που περιέ ουν τις ακο ου ίες αναφοράς από τους mappers σαν ζεύ ος κ ειδιού/τιμής. Για να είναι δυνατή η αναζήτηση ό ν τ ν ακο ου ιών-προτύπ ν μέσα σε ό α τα αρ εία εισόδου με τις ακο ου ίες αναφοράς εκμετα ευτήκαμε τη Distributed Cache του Hadoop. Η Distributed Cache προσφέρει τη δυνατότητα κατανομής με ά ν αρ εί ν σε ό α τα μη ανήματα του cluster. Τα αρ εία αυτά μπορούν να ρησιμοποιη ούν μόνο ια ανά ν ση και αντι ράφονται στα μη ανήματα πριν αρ ίσει να εκτε είται κάποια ερ ασία (job) σε αυτά. Στο Σ ήμα 4.2 απεικονίζεται ο τρόπος με τον οποίο κατανέμονται τα αρ εία εισόδου και τα αρ εία με τις ακο ου ίες-πρότυπα (queries) στα μη ανήματα του cluster. O όρος queries αντιστοι εί στις ακο ου ίες-πρότυπα και ο όρος texts στα αρ εία FASTA που περιέ ουν τις ακο ου ίες-αναφοράς. Οι ομάδες τ ν texts που παρουσιάζονται στο σ ήμα αρακτηρίζονται από διαφορετικό αρι μό, επειδή κά ε κόμ ος επεξερ άζεται διαφορετικό υποσύνο ο τ ν αρ εί ν εισόδου. Φάση Map Κατά τη φάση Map, κά ε mapper δια άζει ένα αρ είο εισόδου που έ ει τη μορφή (null, text i ) και αντ εί το ανα ν ριστικό της ακο ου ίας αναφοράς, την ακο ου ία αναφοράς, κα- ώς και τη έση του πρώτου της αρακτήρα στην αρ ική ακο ου ία. Επίσης, προσπε αύνει διαδο ικά τα αρ εία με τις ακο ου ίες-πρότυπα που υπάρ ουν στην Distributed Cache και ια κά ε ακο ου ία-πρότυπο που δια άζει, εκτε εί τον α όρι μο προσε ιστικού ταιριάσματος με το k που κα ορίζεται στο σ ό ιό της. Η έξοδος της φάσης map είναι ζεύ η κ ειδιού/τιμής που αντιστοι ούν στα ταιριάσματα και έ ουν τη μορφή (ανα ν ριστικό_προτύπου, π ηροφορίες_ταιριάσματος), όπου οι π ηροφορίες_ταιριάσματος αντιστοι ούν στην ε ραφή (k, ανα- ν ριστικό_ακο ου ίας_αναφοράς, έση_ταιριάσματος, αρι μός_ α ών). Ο αρι μός α ών δη ώνει τον ε ά ιστο αρι μό α ών με τον οποίο έ ινε το ταίριασμα της ακο ου ίας-προτύπου με την ακο ου ία αναφοράς στη έση έση_ταιριάσματος. Φάση Combine Σε περίπτ ση που τα αρ εία εισόδου αποτε ούν κομμάτια μίας με ά ης ακο ου ίας αναφοράς και έ ουν επικα ύψεις ώστε να μην άνονται ταιριάσματα που ανήκουν στην τομή τ ν

4.1 Παραλληλοποίηση του αλγορίθμου δυναμικού προγραμματισμού 59 Κόμβος 1 Κόμβος 2 >query1 5 ACGGTACG TTTTGCTTT ACGGGGGT >query2 8 AAAAGCTCT TTTTGTGTG queries Distributed cache >ref5 1 GGTGTGTG CGTAGTCG ATGCTGATG CTGACTGAC TGCATGGGG texts 1 Κόμβος 3 >query1 5 ACGGTACG TTTTGCTTT ACGGGGGT >query2 8 AAAAGCTCT TTTTGTGTG >ref5 10456 GGTGTGTG CGTAGTCG ATGCTGATG CTGACTGAC TGCATGGGG >query1 5 ACGGTACG TTTTGCTTT ACGGGGGT >query2 8 AAAAGCTCT TTTTGTGTG >ref4 2400 GGTGTGTG CGTAGTCG ATGCTGATG CTGACTGAC TGCATGGGG queries Distributed cache texts 2 queries Distributed texts 3 cache Σ ήμα 4.2: Κατανομή τ ν αρ εί ν εισόδου και του αρ είου με τις ακο ου ίες-πρότυπα σε ένα cluster 3 κόμ ν κομματιών, είναι πι ανό να υπάρ ουν διπ ότυπα κάποι ν ταιριασμάτ ν. Προκειμένου να μει - εί ο ό κος τ ν δεδομέν ν που α μεταφερ ούν μέσ δικτύου ια τη φάση Reduce, α ά και ο ρόνος που απαιτείται ια τη διαμέριση τ ν κ ειδιών στους reducers, εκμετα ευόμαστε τη δυνατότητα που παρέ ει το framework ια εφαρμο ή μίας συνάρτησης στα τοπικά δεδομένα κά ε mapper. Η φάση Combine παίρνει σαν είσοδο ζεύ η κ ειδιού/τιμής της μορφής (ανα ν ριστικό_- προτύπου, ίστα_ ταιριασμάτ ν), τα οποία έ ουν προκύψει τοπικά από τις ερ ασίες που εκτέ- εσε το αντίστοι ο μη άνημα. H συνάρτηση αφαιρεί τα διπ ότυπα ταιριάσματα ρησιμοποιώντας τη δομή HashSet της Java. Η έξοδος της φάσης είναι ζεύ η (ανα ν ριστικό_προτύπου, ίστα_ταιριασμάτ ν), όπου δεν υπάρ ουν διπ ότυπα ταιριάσματα σε τοπικό επίπεδο. Φάση Reduce Η φάση αυτή παίρνει σαν είσοδο ζεύ η κ ειδιού/τιμής της μορφής (ανα ν ριστικό_προτύπου, ίστα_ταιριασμάτ ν). Στην πρα ματικότητα, τα ζεύ η αυτά έ ουν την ίδια μορφή με τα ζεύ η εισόδου της φάσης Combine με τη διαφορά ότι η ίστα έ ει προκύψει από το συνδυασμό τ ν επιμέρους ιστών όλων τ ν μη ανημάτ ν που εί αν ζεύ η με το ίδιο ανα ν ριστικό_προτύπου. Και πά ι με ρήση της δομής HashSet της Java αφαιρούνται τα διπ ότυπα ταιριάσματα. Η έξοδος της φάσης Reduce είναι τα τε ικά ζεύ η (ανα ν ριστικό_προτύπου, π ηροφορίες_ταιριάσματος), όπ ς προέκυψαν και στη φάση Map, α ά δεν υπάρ ουν διπ ότυπα.

60 Κεφάλαιο 4. Αλγόριθμοι Προσεγγιστικού Ταιριάσματος ακολουθιακών δεδομένων στο περιβάλλον MapReduce Έ οντας τις έσεις τ ν ταιριασμάτ ν, είναι δυνατόν να εφαρμοστεί ο α όρι μος δυναμικού προ ραμματισμού με backtracking στο τμήμα της ακο ου ίας αναφοράς όπου εντοπίστηκε το ταίριασμα προκειμένου να ηφ εί ο τρόπος στοί ισης της εκάστοτε ακο ου ίαςπροτύπου με την ακο ου ία αναφοράς. Σημεί ση Ανάμεσα στα format που υποστηρίζει το Hadoop ια τα αρ εία εισόδου είναι το TextInputFormat και SequenceFileInputFormat, τ ν οποί ν οι readers δια άζουν κά ε ραμμή του κειμένου σαν ζεύ ος κ ειδί/τιμή. Το πρώτο format ρησιμοποιείται ια ανά ν ση απ ών ASCII κειμέν ν και το δεύτερο ια ανά ν ση δυαδικών αρ εί ν Hadoop, τα οποία είναι ν στά με το όνομα Sequence Files. H αρ ική προσέ ιση του προ ήματος ήταν να κάνουμε προεπεξερ ασία τ ν αρ εί ν εισόδου τ ν mappers ώστε σε κά ε ραμμή να υπάρ ει μία ε ραφή κ ειδιού/τιμής της μορφής (ανα ν ριστικό_ακο ου ίας_αναφοράς, π ηροφορίες_δυναμικού_προ ραμματισμού), όπου οι π ηροφορίες δυναμικού προ ραμματισμού αντιστοι ούν στην ε ραφή (ακο ου ία_αναφοράς, ανα ν ριστικό_προτύπου, ακο- ου ία_πρότυπο, k). Επειδή, όμ ς, αυτή η προεπεξερ ασία ίνεται σειριακά, εκτός του cluster, το στάδιο προεπεξερ ασίας είναι ιδιαίτερα ρονο όρο και κατα ήξαμε στη μέ οδο που περι ράφτηκε πιο πάν. 4.2 Παρα η οποίηση α ορί μου ια πο απ ό ταίριασμα ακο ου ιών Ο α όρι μος που επι έ ηκε ια προσαρμο ή στο MapReduce περι ά ον από την κατη ορία τ ν α ορί μ ν πο απ ού ταιριάσματος ακο ου ιών είναι ο α όρι μος του Fredriksson. Το σειριακό πρό ραμμα που αναπτύ ηκε ια αυτή την εφαρμο ή αντιστοι εί στη ασική μορφή του α ορί μου που περι ράφτηκε στο κεφά αιο 2, ρίς τις ε τιστοποιήσεις που προτείνονται στην ερ ασία τ ν Fredriksson & Navarro [8]. Η παρα η οποίηση του α ορί μου αυτού ασίζεται στην ιδέα που παρουσιάστηκε και ια τον α όρι μο δυναμικού προ ραμματισμού: κά ε κόμ ος στο cluster ανα αμ άνει να τρέξει το σειριακό α όρι μο σε ένα μέρος τ ν ακο ου ιών αναφοράς. Παρατί εται ο ψευδοκώδικας του σειριακού προ ράμματος, όπ ς ακρι ώς υ οποιή ηκε. H ακο ου ία αναφοράς συμ ο ίζεται με το ράμμα Τ και οι ακο ου ίες-πρότυπα με το ράμμα P. Κ άση SearchPatterns Αναζήτηση(T 1..n, P1..m 1 P 1..m r, k, l) /* currwindow: η τρέ ουσα αρ ή του παρα ύρου */ /* newwindow: η νέα αρ ή του παρα ύρου */ /* D: hashtable */ /* vstart: αρ ή της περιο ής προς επα ή ευση */ /* vstop: τέ ος της περιο ής προς επα ή ευση */ Προεπεξερ ασία()

4.2 Παραλληλοποίηση αλγορίθμου για πολλαπλό ταίριασμα ακολουθιών 61 currwindow = vstart = vstop = 0 Όσο currwindow n-(m-k) newwindow = ΜετακίνησηΠαρα ύρου(currwindow, l) Αν newwindow = currwindow Αν είναι η 1η φορά /* αρ ικοποίηση της περιο ής προς επα ή ευση */ vstart = currwindow vstop = currwindow+m+k α ιώς αν η νέα έση παρα ύρου είναι ΠΡΙΝ το τέ ος της περιο ής προς επα ή ευση /* επέκταση της περιο ής που πρέπει να επα η ευτεί */ vstop = currwindow+m+k α ιώς έ ε ξε την προη ούμενη περιο ή με εφαρμο ή δυναμικού προ ραμματισμού /* αρ ικοποίηση της νέας περιο ής */ vstart = newwindow vstop = newwindow+m+k newwindow += 1 currwindow=newwindow /* Υπο ο ισμός της νέας αρ ής του παρα ύρου */ ΜετακίνησηΠαραθύρου(currWindow, l) /* currwindow: η τ ρινή έση του παρα ύρου */ /* D: hashtable Μ=0 p = m-k Όσο p l p = p-l Αν D[T i+p+1...i+p+l ] κενό M = M + D[T currw indow+p+1...currw indow+p+l ] α ιώς Μ += 1 Αν Μ k, επέστρεψε currwindow+p+1 επέστρεψε currwindow Κ άση Preprocess /* D: hashtable, όπου απο ηκεύονται τα l-grams και ο μικρότερος αρι μός α ών με τον οποίο ταιριάζει οποιοδήποτε από τα πρότυπα με κα ένα από τα l-grams */ /* l: το μήκος τ ν l-grams που ρησιμοποιεί ο α όρι μος και εισά εται από

62 Κεφάλαιο 4. Αλγόριθμοι Προσεγγιστικού Ταιριάσματος ακολουθιακών δεδομένων στο περιβάλλον MapReduce το ρήστη */ Προεπεξεργασία(l) Για κά ε l-gram S στο α φά ητο Σ={Α, C, G, T} D[S] = l Για iϵ[1,,r] D[S] = min(d[s], Ε ά ιστηαπόσταση(s, P i )) /* Υπο ο ισμός της συντακτικής απόστασης ενός προτύπου από το l-gram S */ ΕλάχιστηΑπόσταση(S 1...l, P 1...m, l) /* C είναι ένας διάνυσμα με έ ους m */ Για iϵ[0,,m] C[j] = 0 Για iϵ[0,,l] Cold = C[0] C[0] = i Για jϵ[0,,m] Αν S i = P j C new = C old α ιώς = 1 + min(c old, C[j], C[j-1]) C old C new = C[j] C j = C new επέστρεψε min 0 j m C[j] Τα αρ εία εισόδου είναι FASTA που περιέ ουν ακο ου ίες αναφοράς, κα εμία από τις οποίες έ ει μήκος n i. Επιπ έον, μέσ της Distributed Cache είναι δια έσιμα σε ό α τα μη- ανήματα του cluster ένα ή περισσότερα multi-fasta αρ εία που περιέ ουν τις ακο ου ίεςπρότυπα. Ο α όρι μος αυτός απαιτεί ό ες οι ακο ου ίες-πρότυπα να έ ουν το ίδιο μήκος m και το ίδιο όριο α ών k ια το πρό ημα προσε ιστικού ταιριάσματος. Τα αρ εία εισόδου έ ουν την ίδια μορφή με αυτή που παρουσιάστηκε στην παρα η οποίηση του α ορί μου δυναμικού προ ραμματισμού. Εκτός από τα αρ εία εισόδου, ο α όρι μος αυτός παίρνει ς παράμετρο από τη ραμμή εντο ών το μήκος τ ν l-grams που ρησιμοποιεί κατά τη φάση προεπεξερ ασίας. Η επι ο ή του l είναι κα οριστική ια την επίδοση του προ ράμματος και πρέπει να ίνεται με άση το μήκος τ ν ακο ου ιών-προτύπ ν και το επιτρεπτό όριο α ών. Ακόμη και διαδο ικές τιμές της παραμέτρου μπορούν να οδη ήσουν σε ρόνους εκτέ εσης που παρουσιάζουν πο ύ με ά ες διαφορές. Για παράδει μα, ια 1GB δεδομέν ν εισόδου και ια 100 ακο ου ίες-πρότυπα με μήκος 100 αρακτήρες ο ρόνος εκτέ εσης του α ορί μου Fredriksson είναι 15 επτά ια l=8 και 41 επτά ια l=9. Γενικά, οι δύο περιορισμοί που πρέπει να ικανοποιεί η παράμετρος l είναι: (α) τα l-grams να είναι μικρότερα σε μήκος από το παρά υρο m-k που ρησιμοποιεί ο α όρι μος και ( ) η δομή στην οποία απο ηκεύονται τα l-grams μαζί με τον ε ά ιστο αρι μό διαφορών τους από τα πρότυπα να ράει στη μνήμη.

4.2 Παραλληλοποίηση αλγορίθμου για πολλαπλό ταίριασμα ακολουθιών 63 Αξίζει να σημει εί ότι ο α όρι μος του Fredriksson εκτός από τους περιορισμούς που έ ει ια το μήκος τ ν ακο ου ιών-προτύπ ν που εξετάζονται ταυτό ρονα και το επιτρεπτό όριο τ ν α ών, έτει και περιορισμό στην ανα ο ία τ ν α ών α=k/m. Για να έ ει ο α όρι μος κέρδος σε σ έση με τον α όρι μο δυναμικού προ ραμματισμού πρέπει η παράμετρος α να είναι μικρότερη από 0.5, δη αδή να μην αναζητάμε τα πρότυπα επιτρέποντας ά η που ξεπερνούν το 50% του μήκους τους. Στο Σ ήμα 4.3 φαίνονται οι φάσεις Map, Combine και Reduce που ρησιμοποιούνται ια την παρα η οποίηση του α ορί μου. Με άση το σ ήμα, στη Distributed Cache υπάρ ουν t αρ εία multi-fasta με ακο ου ιες-πρότυπα και σε κά ε αρ είο τα πρότυπα έ ουν το ίδιο μήκος m i και αρι μό α ών k i. Ακολουθίες πρότυπα (query 11, k 1 ) Map Combine Reduce Ταιριάσματα (query 1p, k 1 ) (query n1, k n ) (query nq, k n ) Ακολουθίες αναφοράς MASM(text j, queries 1, k 1 )... MASM(text j, queries t, k t ) Αφαίρεση διπλότυπων ταιριασμάτων τοπικά Αφαίρεση διπλότυπων ταιριασμάτων (query i, text j, end_of_match)... text 1 text 2 text m Σ ήμα 4.3: Α όρι μος Fredriksson στο MapReduce Φάση Map Κατά τη φάση Map, κά ε κόμ ος που του ανατί εται ερ ασία map δια άζει ένα αρ είο εισόδου που έ ει τη μορφή (null, text i ) και παίρνει από αυτό το ανα ν ριστικό της ακο- ου ίας αναφοράς, την ακο ου ία αναφοράς, κα ώς και τη έση του πρώτου της αρακτήρα στην αρ ική ακο ου ία. Στη συνέ εια, δια άζει διαδο ικά τα αρ εία της Distributed Cache και εφαρμόζει τον α όρι μο πο απ ού ταιριάσματος με ό ες τις ακο ου ίες-πρότυπα που ρίσκονται στο ίδιο αρ είο και με όριο α ών αυτό που κα ορίζεται στα σ ό ιά τους. Η εφαρμο ή του α ορί μου επιστρέφει τις έσεις τ ν ταιριασμάτ ν, οπότε τα ζεύ η κ ει-

64 Κεφάλαιο 4. Αλγόριθμοι Προσεγγιστικού Ταιριάσματος ακολουθιακών δεδομένων στο περιβάλλον MapReduce διού/τιμής είναι, όπ ς και ια τον προη ούμενο α όρι μο, (ανα ν ριστικό_προτύπου, π ηροφορίες_ταιριάσματος), όπου οι π ηροφορίες_ταιριάσματος αντιστοι ούν στην ε ραφή (k, ανα ν ριστικό_ακο ου ίας_αναφοράς, έση_ταιριάσματος, αρι μός_ α ών). Φάση Combine Η φάση Combine παίρνει σαν είσοδο ζεύ η κ ειδιού/τιμής της μορφής (ανα ν ριστικό_- προτύπου, ίστα_ταιριασμάτ ν) που έ ουν προκύψει τοπικά από τις ερ ασίες map που εκτέ- εσε το αντίστοι ο μη άνημα. Η έξοδος της φάσης είναι ζεύ η (ανα ν ριστικό_προτύπου, ίστα_ταιριασμάτ ν), όπου δεν υπάρ ουν σε τοπικό επίπεδο διπ ότυπα ταιριάσματα. Φάση Reduce Η φάση Reduce παίρνει σαν είσοδο ένα ζεύ ος κ ειδιού/τιμής της μορφής (ανα ν ριστικό_προτύπου, ίστα ταιριασμάτ ν με ακο ου ίες αναφοράς) και δίνει σαν έξοδο τα τε ικά ζεύ η (ανα ν ριστικό_προτύπου, π ηροφορίες_ταιριάσματος), όπου δεν υπάρ ουν διπ ότυπα ταιριάσματα. Περισσότερες επτομέρειες ια το σειριακό α όρι μο α πρέπει να αναζητη ούν στο 2ο κεφά αιο και τη σ ετική ι ιο ραφία, ενώ ια τη μέ οδο παρα η οποίησης περαιτέρ εξη ήσεις μπορούν να ρε ούν στην προη ούμενη ενότητα όπου περι ράφεται η προσαρμο ή του α ορί μου δυναμικού προ ραμματισμού στο MapReduce περι ά ον. 4.3 Α όρι μος Φι τραρίσματος Ο τε ευταίος α όρι μος που υ οποιή ηκε στο MapReduce ανήκει στις κατη ορίες φι τραρίσματος και πο απ ού ταιριάσματος ακο ου ιών και δεν αποτε εί παρά η η έκδοση κάποιου σειριακού προ ράμματος, όπ ς οι δύο προη ούμενοι α όρι μοι. Ένα με ά ο μέρος τ ν προ ημάτ ν που προσαρμόζονται στο MapReduce δεν ύνονται με ένα μόνο κύκ ο map/reduce, α ά με πο απ ούς κύκ ους που συνερ άζονται και ύνουν αποδοτικά σύν- ετα προ ήματα. Ο συ κεκριμένος α όρι μος πρα ματοποιείται σε δύο κύκ ους. Για την επιτά υνση του προ ήματος εύρεσης ταιριασμάτ ν, αρκετοί α όρι μοι εκτε ούν αρ ικά ένα στάδιο φι τραρίσματος ια να αποκ είσουν περιο ές οι οποίες αποκ είεται να περι αμ άνουν κάποιο ταίριασμα. Το φι τράρισμα που πρα ματοποιούμε σε αυτό τον α όρι μο ασίζεται στην παρατήρηση ότι υπάρ ουν κάποια ακρι ή ταιριάσματα σε περιο ές όπου μία ακο ου ία-πρότυπο παρουσιάζει υψη ή ομοιότητα με μία ακο ου ία αναφοράς. Σύμφ να με παρα α ή του Θεώρηματος του Περιστεριώνα, αν έ ουμε να στοι ίσουμε μία ακο ου ίαπρότυπο με μία ακο ου ία αναφοράς με k ά η, τότε α πρέπει να υπάρ ει του ά ιστον ένα ακρι ές ταίριασμα μήκους m k+1. Σε αυτή την παρατήρηση ασίζονται πο οί α όρι μοι μεταξύ τ ν οποί ν και ο BLAST.

4.3 Αλγόριθμος Φιλτραρίσματος 65 Σ ήμα 4.4: Α όρι μος φι τραρίσματος 4.3.1 Πρώτος κύκ ος MapReduce Τα αρ εία εισόδου είναι πο ά αρ εία FASTA που περιέ ουν τις ακο ου ίες αναφοράς και φέρουν την π ηροφορία ια τη έση του πρώτου αρακτήρα τους στην ακο ου ία από την οποία προέκυψαν. Επιπ έον, ένα ή περισσότερα αρ εία με τις ακο ου ίες-πρότυπα τοπο ετούνται στην Distributed Cache και είναι δια έσιμα σε ό α τα μη ανήματα του cluster. Λό του δεύτερου κύκ ου MapReduce όπου ρησιμοποιείται ο α όρι μος του Fredriksson πρέπει όλες οι ακο ου ίες-πρότυπα να έ ουν το ίδιο μήκος m, τον ίδιο όριο α ών k και ο ό ος α=k/m να είναι μικρότερος από 0.5. Εκτός από τα αρ εία εισόδου, ο ρήστης πρέπει να κα ορίσει και το μήκος τ ν l-grams που α ρησιμοποιήσει ο α όρι μος Fredriksson.

66 Κεφάλαιο 4. Αλγόριθμοι Προσεγγιστικού Ταιριάσματος ακολουθιακών δεδομένων στο περιβάλλον MapReduce Σημειώνεται ότι ενώ στον α όρι μο πο απ ού ταιριάσματος ακο ου ιών, η παρα η οποίησή του στο MapReduce επέτρεπε διαφορετικό μήκος m και όριο α ών k ανά αρ είο ακο ου ιών-προτύπ ν, στον α όρι μο φι τραρίσματος, πρέπει όλες οι ακο ου ίες-πρότυπα, ανεξάρτητα από το αρ είο στο οποίο ανήκουν, να έ ουν τις ίδιες παραμέτρους m και k. Φάση Map Κά ε κόμ ος που του ανατί εται ερ ασία map παίρνει ένα αρ είο εισόδου με μία ακο ου ία αναφοράς. Στη συνέ εια, δια άζει διαδο ικά τα αρ εία που ρίσκονται στην Distributed Cache και ια κά ε ακο ου ία-πρότυπο, με εφαρμο ή μίας παρα α ής του Θε ρήματος του Περιστερώνα, αποκ είει ή ό ι την ύπαρξη στοί ισης με το πο ύ k ά η μεταξύ τ ν συ κρινόμεν ν ακο ου ιών. Συ κεκριμένα, ο mapper σπάει την ακο ου ία-πρότυπο σε k+1 κομμάτια και με ρήση τ ν κ άσε ν Pattern και Matcher της Java ε έ ει αν υπάρ ει κάποιο από τα κομμάτια ρίς ά ος μέσα στην ακο ου ία αναφοράς (ακρι ές ταίριασμα). Αν ρε εί τέτοιο κομμάτι, τότε διακόπτεται η αναζήτηση τ ν υπό οιπ ν κομματιών της ακο ου ίαςπροτύπου στην ακο ου ία αναφοράς και: αν το κομμάτι αυτό είναι το πρώτο κομμάτι από το υπό εξέταση αρ είο προτύπ ν που ταίριαξε με την ακο ου ία αναφοράς, τότε εξά εται πρώτα το ζεύ ος (ανα ν ριστικό_ακο ου ίας_- αναφοράς, στοι εία_ακο ου ίας_αναφοράς) και στη συνέ εια ένα ζεύ ος της μορφής (ανα ν ριστικό_προτύπου, στοι εία_προτύπου) ια το πρότυπο του οποίου το κομμάτι ρέ ηκε μέσα στην ακο ου ία αναφοράς. Τα στοι εία_ακο ου ίας_αναφοράς αντιστοι ούν στην ε ραφή ( έση_πρώτου_ αρακτήρα, ακο ου ία_αναφοράς), ενώ τα στοι εία_προτύπου αντιστοι ούν στο ζεύ ος (όριο_ α ών, ακο ου ία_προτύπου). αν υπήρξε ά ο πρότυπο του οποίου κάποιο κομμάτι ταίριαξε με την ακο ου ία αναφοράς, τότε εξά εται μόνο το ζεύ ος (ανα ν ριστικό_προτύπου, στοι εία_προτύπου) ια το νέο πρότυπο που δεν αποκ είστηκε κατά τη φάση φι τραρίσματος. Αν κανένα κομμάτι τ ν ακο ου ιών-προτύπ ν δεν ρε εί μέσα στην ακο ου ία αναφοράς, τότε δεν εξά εται κανένα ζεύ ος κ ειδιού/τιμής από τον mapper. Έτσι, στη ενική περίπτ ση, το αρ είο εξόδου από τη φάση map περιέ ει στην πρώτη ραμμή το ανα ν ριστικό της ακο ου ίας αναφοράς, τη έση του πρώτου αρακτήρα της και την ακο ου ία, και σε κά ε επόμενη ραμμή το ανα ν ριστικό, το επιτρεπτό όριο α ών και την ακο ου ία ενός προτύπου του οποίου κάποιο κομμάτι ρέ ηκε ακρι ώς μέσα στην ακο ου ία αναφοράς. Στο Σ ήμα 4.5 φαίνεται η φάση map του πρώτου κύκ ου και η μορφή τ ν αρ εί ν εισόδου και εξόδου. Τα τμήματα που είναι ραμμοσκιασμένα με τον ίδιο τρόπο αντιστοι ούν σε ταιριάσματα τ ν αντίστοι ν ακο ου ιών-προτύπ ν με την ακο ου ία αναφοράς. Σε περίπτ ση που δεν ρε εί κανένα ακρι ές ταίριασμα ια καμία ακο ου ία-πρότυπο, τότε το αρ είο εξόδου του αντίστοι ου mapper είναι κενό. Ο πρώτος κύκ ος του MapReduce εκμετα εύεται το ε ονός ότι η αναζήτηση ακρι ών ταιριασμάτ ν είναι πο ύ πιο φ ηνή από την αναζήτηση προσε ιστικών ταιριασμάτ ν και προσπα εί να αποκ είσει την αναζήτηση κάποι ν προτύπ ν σε μερικά από τα αρ εία εισόδου.

4.3 Αλγόριθμος Φιλτραρίσματος 67 Σ ήμα 4.5: 1ος κύκ ος MR: φάση map σε κόμ ο του cluster Προφανώς, όσο πιο μικρό είναι το όριο τ ν α ών, k, τόσο πιο με ά α είναι τα κομμάτια τ ν ακο ου ιών-προτύπ ν που αναζητούνται στις ακο ου ίες αναφοράς και τόσο πιο πι ανό είναι να ρε ούν ί α ακρι ή ταιριάσματα και άρα να ίνει κα ό φι τράρισμα. Στη φάση αυτή ίνεται αναζήτηση τ ν ακρι ών ταιριασμάτ ν σειριακά. Αν και το κόστος τ ν ακρι ών ταιριασμάτ ν είναι μικρό, όταν το π ή ος τ ν αναζητήσε ν είναι με ά ο, ο συνο ικός ρόνος που απαιτείται είναι σημαντικός. Δεδομένου ότι ια με ά ο αρι μό ακο ου ιών-προτύπ ν το π ή ος τ ν αναζητήσε ν ακρι ών ταιριασμάτ ν ίνεται αρκετά με ά ο στον α όρι μο αυτό, ο ρόνος εκτέ εσης της φάσης map α μπορούσε να ε τι - εί αν εφαρμοζόταν κάποιος α όρι μος ια πο απ ά ακρι ή ταιριάσματα (Multiple Exact String Matching - MESM). Φάση Reduce Κατά τη φάση map του πρώτου κύκ ου, δημιουρ ούνται αρ εία εξόδου με μορφή κατά - η η ια επεξερ ασία κατά τον επόμενο κύκ ο. Μά ιστα, με δεδομένο ότι οι ακο ου ίεςπρότυπα που αναζητάμε είναι ό ες διαφορετικές μεταξύ τους, δεν υπάρ ουν διπ ότυπες ε - ραφές που πρέπει να αφαιρε ούν από τα αρ εία που δημιουρ ή ηκαν, ούτε φε εί η εφαρμο ή κάποιας συνάρτησης στις τιμές που αντιστοι ούν στο ίδιο κ ειδί. Κατά συνέπεια, στον πρώτο κύκ ο mapreduce, η φάση Reduce παρα είπεται. 4.3.2 Δεύτερος κύκ ος MapReduce Στο δεύτερο κύκ ο εκτε ούμε ια κά ε αρ είο εισόδου τον α όρι μο του Fredriksson με ό ες τις ακο ου ίες-πρότυπα τ ν οποί ν κάποιο κομμάτι ταίριαξε ακρι ώς με την αντίστοι η ακο ου ία αναφοράς κατά τον πρώτο κύκ ο.

68 Κεφάλαιο 4. Αλγόριθμοι Προσεγγιστικού Ταιριάσματος ακολουθιακών δεδομένων στο περιβάλλον MapReduce Φάση Map Οι mappers παίρνουν σαν είσοδο τα αρ εία εξόδου του προη ούμενου κύκ ου. Αν κάποιο αρ είο εξόδου είναι κενό, τότε ο mapper που το πήρε ς είσοδο δεν κάνει καμία επεξερ ασία και προ ράει στο επόμενο αρ είο που του ανατί εται από τον NameNode. Αν το αρ είο δεν είναι κενό, τότε με ρήση του EntireInputFormat που δημιουρ ήσαμε, ο mapper δια- άζει ο όκ ηρο το αρ είο και ακο ου εί η επεξερ ασία του ώστε τα δεδομένα εισόδου να έρ ουν στη μορφή που τα ρειάζεται ο α όρι μος Fredriksson. Η επεξερ ασία περι αμ- άνει το ρισμό του αρ είου εισόδου στην ακο ου ία αναφοράς, το ανα ν ριστικό της και τη έση του πρώτου της αρακτήρα, κα ώς και στα ανα ν ριστικά και τις ακο ου ίες τ ν προτύπ ν. Οι ακο ου ίες-πρότυπα τοπο ετούνται σε μία ίστα, ώστε να μπορέσει ο α όρι μος Fredriksson να εκτε έσει ια αυτές το πρό ημα προσε ιστικού ταιριάσματος ταυτό ρονα. Αφού εκτε εστεί ο α όρι μος Fredriksson, επιστρέφονται τα ταιριάσματα που ρέ ηκαν και τα ζεύ η κ ειδιού/τιμής που εξά ονται κατά τη φάση map είναι της μορφής: (ανα ν ριστικό_προτύπου, π ηροφορίες_ταιριάσματος), όπου οι π ηροφορίες_ταιριάσματος αντιστοι ούν στην ε ραφή (k, ανα ν ριστικό_ακο ου ίας_αναφοράς, έση_ταιριάσματος, αρι μός_ α ών). Φάση Combine Η φάση combine ρησιμοποιείται ια την αφαίρεση διπ ότυπ ν ταιριασμάτ ν σε τοπικό επίπεδο. Όπ ς αναφέρ ηκε και στους προη ούμενους α όρι μους, τα διπ ότυπα οφεί ονται σε επικα ύψεις τ ν αρ εί ν εισόδου. Η φάση αυτή οδη εί στη μεταφορά μικρότερου ό κου δεδομέν ν στη φάση reduce και κατά συνέπεια σε ι ότερο ρόνο εκτέ εσης της διαμέρισης τ ν κ ειδιών και της εφαρμο ής της συνάρτησης reduce. Τα ζεύ η εισόδου και εξόδου είναι τα ίδια με αυτά που παρουσιάστηκαν στη μέ οδο παρα η οποίησης του α ορί μου του Fredriksson και ι αυτό παρα είπονται. Φάση Reduce Η φάση reduce αφαιρεί τα διπ ότυπα που δεν μπόρεσαν να απα ειφ ούν κατά τη φάση combine. Η φάση αυτή είναι ίδια με την αντίστοι η φάση της παρά η ης υ οποίησης του α ορί μου του Fredriksson.

Κεφά αιο 5 Πειραματική Αξιο ό ηση Στο κεφά αιο αυτό παρουσιάζονται αρ ικά οι επι ο ές που εί αμε όσον αφορά το cluster ια τη δοκιμή τ ν προ ραμμάτ ν και οι ό οι που κα όρισαν την επι ο ή μας. Στη συνέ εια, παρουσιάζονται τα αρακτηριστικά του cluster και π ηροφορίες ια τα δεδομένα που ρησιμοποιή ηκαν στα πειράματα. Τέ ος, παρατί ενται τα συ κριτικά πειράματα που εκτε έσαμε και ίνεται αξιο ό ηση τ ν υ οποιήσε ν. 5.1 Επι ο ή cluster ια την εκτέ εση τ ν προ ραμμάτ ν Για την εκτέ εση τ ν προ ραμμάτ ν MapReduce είναι απαραίτητο κάποιο ιδι τικό ή δημόσιο cluster. Το Hadoop έ ει σ εδιαστεί ώστε να τρέ ει σε hardware που μπορεί να α οραστεί από τον περισσότερο κόσμο, ενώ οι κόμ οι που συνιστούν το cluster μπορούν να έ ουν διαφορετικά αρακτηριστικά. Επειδή σε με ά α cluster η αποτυ ία τ ν κόμ ν παίζει κα οριστικό ρό ο στο ρόνο εκτέ εσης τ ν εφαρμο ών, προτιμώνται πο ά μη ανήματα με κα ά αρακτηριστικά από ί ους και πο ύ δυνατούς υπο ο ιστές, όπ ς είναι τα μη ανήματα που ρησιμοποιούνται ια εφαρμο ές άσε ν δεδομέν ν. Το μέ ε ος του cluster που ρησιμοποιείται ια την εκτέ εση μίας εφαρμο ής κα ορίζεται από τον ό κο τ ν δεδομέν ν που πρέπει να απο ηκεύεται και να υπόκειται σε επεξερ ασία. Ανάμεσα στις επι ο ές που υπάρ ουν ια δημόσιο cluster δημοφι έστερη είναι η Amazon. Η Amazon παρέ ει υπηρεσίες ια την εκτέ εση προ ραμμάτ ν στα cluster της και ο ρήστης π ηρώνει μόνο ια τους πόρους που ρησιμοποιεί και ια το ώρο που δεσμεύει ια τα δεδομένα. Το πρό ημα είναι ότι κατά την ανάπτυξη τ ν προ ραμμάτ ν ρειάζονται αρκετές δοκιμές και αυτό μπορεί να οδη ήσει σε με ά ο κόστος ια τη ρήση τ ν υπηρεσιών της. Επιπρόσ ετα, σε περίπτ ση που κάποια ερ ασία (job) αποτύ ει, ια να επανα ηφ εί πρέπει ο ρήστης να ανε άσει πά ι τα δεδομένα εισόδου στο cluster, π ηρώνοντας το ανά ο ο ποσό. Για να μην ρειάζεται να ανε άζει τα δεδομένα σε κά ε αποτυ ία της ερ ασίας, α πρέπει να ρησιμοποιεί μία υπηρεσία απο ήκευσης δεδομέν ν που παρέ εται με πρόσ ετο κόστος. Συνεπώς, αυτή η επι ο ή δεν είναι κατά η η ια τα προ ράμματα που υ οποιή ηκαν στην παρούσα διπ ματική, δεδομένου ότι δεν ήταν ν στός εκ τ ν προτέρ ν ο ό κος τ ν 69

70 Κεφάλαιο 5. Πειραματική Αξιολόγηση δεδομέν ν που α ρησιμοποιούνταν στα πειράματα, ώστε να ίνει ένας πρό ειρος υπο ο ισμός του κόστους, και επιπ έον ήταν σί ουρο ότι α ρειάζονταν αρκετές δοκιμές μέ ρι τα προ ράμματα να πάρουν την τε ική τους μορφή. Μία ά η επι ο ή ήταν το δημόσιο cluster Eucalyptus. Επειδή αυτό το cluster ρησιμοποιείται ρίς π ηρ μή, τί ενται κάποιοι περιορισμοί στη ρήση του, ο σημαντικότερος εκ τ ν οποί ν είναι ο ρονικός. Συ κεκριμένα, δεν επιτρέπεται η εκτέ εση κάποιου προ ράμματος ια περισσότερες από 6 συνε όμενες ώρες. Αυτός ο περιορισμός ήταν απα ορευτικός ια τις ιο ο ικές εφαρμο ές που υ οποιή ηκαν, κα ώς ια πο ύ με ά ο ό κο δεδομέν ν (πο ές δεκάδες GBs) τα πειράματα ξεπερνούν τις 6 ώρες. Δεδομένου ότι τα δ ρεάν δημόσια cluster που υποστηρίζουν προ ραμματισμό σε Map- Reduce έτουν διάφορους περιορισμούς που κα ιστούν πιο δύσκο η τη δοκιμή τ ν προ ραμμάτ ν, ενώ τα υπό οιπα δημόσια cluster απαιτούν π ηρ μή ια τη ρήση τ ν υπηρεσιών τους με κίνδυνο να ρειαστούν με ά α ποσά ια την εκτέ εση τ ν προ ραμμάτ ν, τα πειράματα έ ιναν σε Hadoop cluster το οποίο στήσαμε στο Πανεπιστήμιο Πε οποννήσου. Χαρακτηριστικά του cluster Το cluster που στήσαμε αποτε είται από 13 κόμ ους που είναι συνδεδεμένοι μέσ δικτύου Gigabit Ethernet. Η επικοιν νία τ ν υπο ο ιστών ασίζεται στο πρ τόκο ο TCP/IP. Ο κόμ ος τον οποίο ρυ μίσαμε να τρέ ει τις διερ ασίες NameNode, JobTracker και Secondary NameNode έ ει τα παρακάτ αρακτηριστικά: Επεξερ αστής: 2 Quad-core Intel CPUs Q6600 @ 2.40GHz Μνήμη RAM: 2GB Σκ ηρός δίσκος:226gβ Οι υπό οιποι 12 κόμ οι είναι DataNodes και TaskTrackers. Τα αρακτηριστικά τ ν 10 μη- ανημάτ ν είναι: Επεξερ αστής: διπύρηνος Intel Pentium E2220 @ 2.40GHz Μνήμη RAM: 4GB Σκ ηρός δίσκος:141gβ ενώ τ ν ά ν 2 είναι: Επεξερ αστής: διπύρηνος Pentium E5300 @ 2.60GHz Μνήμη RAM: 4GB Σκ ηρός δίσκος:141gβ Κατα ράψαμε σε wiki [13] τον τρόπο με τον οποίο στήνεται ένα cluster Hadoop, κα ώς και οδη ίες ια την εκτέ εση ενός προ ράμματος MapReduce μαζί με τρόπους επί υσης προ ημάτ ν που μπορεί να παρουσιαστούν [14].

5.2 Δεδομένα 71 Το ειτουρ ικό σύστημα στον NameNode είναι Ubuntu 10.04 (Lucid Lynx), ενώ στους κόμ ους είναι ε κατεστημένη η έκδοση Ubuntu 9.04 (Jaunty Jackalope). Ό οι οι κόμ οι έ ουν το Hadoop 0.20.2 και έ ει ίνει ρύ μιση ώστε κα ένας να τρέ ει ταυτό ρονα δύο ερ- ασίες (tasks). Ο παρά οντας αντι ραφής (replication factor) έ ει την τιμή 3, δη αδή κά ε block που ανε αίνει στο HDFS αντι ράφεται 2 φορές και τοπο ετείται σε 3 διαφορετικούς κόμ ους ια ό ους ανάκαμψης από την αποτυ ία κάποιου κόμ ου. 5.2 Δεδομένα Για τα πειράματα ρησιμοποιήσαμε δεδομένα από τη ι ιο ήκη GenBank. Συ κεκριμένα, κατε άσαμε από το ftp site, από τα δεδομένα που προορίζονται ια τον α όρι μο BLAST, το αρ είο FASTA human_genomic. Το αρ είο αυτό περιέ ει ό α τα ρ μοσώματα του Homo Sapiens και έ ει μέ ε ος 8.4GB. Το αρ είο human_genomic δεν μπορούσε να ρησιμοποιη εί απευ είας ς είσοδος τ ν εφαρμο ών, α ά έπρεπε να ριστεί σε επιμέρους κομμάτια και να συμπ ηρ εί στο σ ό ιο της κά ε ακο ου ίας ο αρι μός του πρώτου αρακτήρα της -οι ό οι ια αυτήν την προεπεξερ ασία εξη ή ηκαν στο κεφά αιο 4, όπου περι ράφονται οι υ οποιήσεις. Για το ρισμό του αρ είου αναπτύ ηκαν bash scripts. Ανα υτικά, ο ρισμός του αρ είου έ ινε με τα εξής ήματα: ρισμός του αρ είου multi-fasta σε επιμέρους αρ εία FASTA, δη αδή αρ εία που το κα ένα περιέ ει μόνο μία ακο ου ία. Για παράδει μα, κά ε αρ είο FASTA που προέκυψε από το αρ είο human_genomic περιέ ει ένα ο όκ ηρο ρ μόσ μα. περαιτέρ ρισμός τ ν αρ εί ν FASTA με άση τον αρι μό τ ν ραμμών που κα ορίζει ο ρήστης ρύ μιση τ ν επικα ύψε ν μεταξύ διαδο ικών αρ εί ν που περιέ ουν τμήματα της ίδιας ακο ου ίας, ώστε να μην άνονται ταιριάσματα που υπάρ ουν στην τομή τους. Η επικά υψη είναι τόσες ραμμές όσες κα ορίζει ο ρήστης. Κανονικά, ια να μην υπάρ ει απώ εια ταιριασμάτ ν α πρέπει η επικά υψη να είναι του ά ιστον m+k-1 αρακτήρες, όπου m είναι το με α ύτερο μήκος προτύπ ν που α αναζητη ούν στη άση δεδομέν ν και k το επιτρεπτό όριο α ών. Σε περίπτ ση που η αναζήτηση ίνεται με διαφορετικά όρια α ών α πρέπει το k στον παραπάν τύπο να είναι το με α ύτερο από αυτά που κα ορίζει ο ρήστης ια τις αναζητήσεις. ενημέρ ση τ ν σ ο ί ν ό ν τ ν επιμέρους αρ εί ν που δημιουρ ή ηκαν και προσ ήκη της έσης του πρώτου αρακτήρα της ακο ου ίας σε κά ε αρ είο. Όσον αφορά τις ακο ου ίες-πρότυπα, ρησιμοποιήσαμε κομμάτια από τα αρ εία εισόδου. Για το σκοπό αυτό υ οποιή ηκε script που παίρνει το επι υμητό μήκος τ ν ακο ου ιώνπροτύπ ν και εξά ει από τις ακο ου ίες αναφοράς κάποια τμήματα κατά η ου μήκους, ενώ ενημερώνει και το σ ό ιο ώστε να έ ει το επιτρεπτό όριο α ών ια το πρό ημα προσε ιστικού ταιριάσματος.

72 Κεφάλαιο 5. Πειραματική Αξιολόγηση 5.3 Πειράματα Στα πειράματα που ακο ου ούν, στους ρόνους δεν περι αμ άνεται ο ρόνος προεπεξερ ασίας τ ν ακο ου ιών αναφοράς και τ ν προτύπ ν, κα ώς είναι κοινός ια ό ες τις μετρήσεις. Η προεπεξερ ασία τ ν ακο ου ιών αναφοράς, human_genomic, που έ ουν μέ ε- ος 8.4GB έ ινε στον κόμ ο που ρυ μίζει τη ειτουρ ία του Hadoop Cluster και ο οποίος έ ει επεξερ αστή 2 Quad-core Intel CPUs Q6600 @ 2.40GHz και 2GB RAM. Ο ρόνος προεπεξερ ασίας τ ν δεδομέν ν εισόδου παρουσιάζεται στον πίνακα 5.1. 1o ΣΤΑΔΙΟ ΕΠΕΞΕΡΓΑΣΙΑΣ Χ ρισμός του multi-fasta αρ είου human_genomic (8.4GB) σε FASTA αρ εία που το κα ένα έ ει μία ακο ου ία. ΧΡΟΝΟΣ 5mins, 48sec 2o ΣΤΑΔΙΟ ΕΠΕΞΕΡΓΑΣΙΑΣ Χ ρισμός κά ε αρ είου του 1ου σταδίου σε μικρότερα. Στα παρα όμενα αρ εία: * ίνεται επικά υψη Χ ραμμών ( ια queries με μήκος ς 800 αρακτήρες αρκεί Χ=10) και * ίνεται ενημέρ ση της πρώτης ραμμής ώστε το σ ό ιο να περιέ ει το ανα ν ριστικό της ακο ου ίας αναφοράς και τη έση του 1ου αρακτήρα του τρέ οντος αρ είου στην αρ ική ακο ου ία. 20mins, 17sec Πίνακας 5.1: Χρόνος προεπεξερ ασίας ακο ου ιών αναφοράς Ο ρόνος ια την εξα ή προτύπ ν κατά η ου μήκους από τις ακο ου ίες αναφοράς ποικί ει ανά ο α με τον αρι μό τ ν προτύπ ν που επι υμούμε να εξά ουμε. Ενδεικτικά αναφέρουμε ότι, στο ίδιο μη άνημα που έ ινε και η προεπεξερ ασία τ ν ακο ου ιών αναφοράς, η δημιουρ ία αρ είου με 1098 πρότυπα μήκους 100 αρακτήρ ν ρειάστηκε 14 επτά. Επιπρόσ ετα, στους ρόνους δεν έ ει συνυπο ο ιστεί ο ρόνος μεταφοράς τ ν δεδομέν ν εισόδου στο HDFS. Ο ρόνος αυτός δεν είναι κα ό ου αμε ητέος. Για παράδει μα, ια τη μεταφορά ό ν τ ν ρ μοσ μάτ ν του Homo Sapiens, τα οποία είναι μαζί με τις επικα ύψεις 8.5GB, ρειάστηκαν 35 επτά. Κα ώς, όμ ς, ο ρόνος αυτός είναι κοινός και ια τις δύο υ οποιήσεις που συ κρίνουμε μπορεί να παρα ειφ εί ρίς να επηρεάζονται οι συ κρίσεις. Τα πειράματα επανα ήφ ηκαν δύο φορές και οι ρόνοι που παρουσιάζουμε σε αυτή την ενότητα αποτε ούν μέσο όρο τ ν αντίστοι ν ρόν ν τ ν δύο επανα ήψε ν. Στην ενότητα αυτή συ κρίνονται o α όρι μος του Fredriksson και ο α όρι μος φι τραρίσματος, κα ώς ο α όρι μος δυναμικού προ ραμματισμού παρουσιάζει πο ύ με α ύτερους ρόνους εκτέ εσης και δεν είναι αντα νιστικός.

5.3 Πειράματα 73 5.3.1 Επεκτασιμότητα με το μέ ε ος τ ν δεδομέν ν εισόδου Το πρώτο πείραμα δεί νει πώς η υ οποίηση του Fredriksson και του α ορί μου φι τραρίσματος επεκτείνονται με αύξηση του με έ ους τ ν αρ εί ν εισόδου. Δοκιμάσαμε με έ η εισόδου από 500MB ς το συνο ικό μέ ε ος του human_genomic, δη αδή 8.4GB. Το πείραμα αυτό έ ινε σε cluster με 10 μη ανήματα, εκ τ ν οποί ν τα 8 είναι διπύρηνα Intel Pentium E2220 στα 2.40GHz και τα 2 διπύρηνα Pentium E5300 στα 2.60GHz. Στην Distributed cache τοπο ετή ηκε ένα αρ είο με 100 ακο ου ίες-πρότυπα μήκους 100 αρακτήρες η κα εμία και με ποσοστό α ών 5%. Ρυ μίσαμε τους reducers σε 18. Επειδή οι επεξερ αστές είναι 20, η ρήση 18 reducers εξασφα ίζει την παρά η η ειτουρ ία τους κατά τη φάση Reduce. Επιπ έον, παρέ εται η δυνατότητα ανάκαμψης σε περίπτ ση που κάποιος κόμ ος αποτύ ει ενώ οι ά οι reducers είναι απασ ο ημένοι, κα ώς υπάρ ουν δύο επεξερ αστές στους οποίους δεν ανατί εται εξ αρ ής ερ ασία reduce. Σε ό ες τις μετρήσεις αυτού του πειράματος τα δεδομένα εισόδου ρίστηκαν σε π ή ος αρ εί ν 10 με 20 φορές τον αρι μό τ ν μη ανημάτ ν του cluster. Η επι ο ή του μήκους τ ν l-grams που ρησιμοποιεί ο α όρι μος Fredriksson έ ινε με δοκιμές και με τρόπο τέτοιο ώστε ο ρόνος εκτέ εσης τ ν αντίστοι ν προ ραμμάτ ν να ε α ιστοποιείται. Οι μετρήσεις που έ ιναν φαίνονται στον πίνακα 5.2. Στον πίνακα ενδεικτικά ανα ράφεται ο ρόνος εκτέ εσης του α όρι μου δυναμικού προ ραμματισμού ια μέ ε ος εισόδου 1GB και 2GB. Είσοδος 500MB 1GB 2GB 4GB 8.4GB Υ οποίηση Dynamic Δεν έ ινε 26mins 57mins Δεν έ ινε Δεν έ ινε Programming δοκιμή δοκιμή δοκιμή Fredriksson 8mins, 13sec 9mins, 34sec 14mins, 8sec 19mins, 23sec 38mins, 27sec l=8 Filtering 1mins, 51sec 3mins, 0sec 5mins, 6sec 9mins, 38sec 17mins, 15sec κύκ ος 1 Filtering 1mins, 27sec 1mins, 46sec 2mins, 46sec 8mins, 15sec 16mins, 16sec κύκ ος 2 Filtering 3mins, 18sec 4mins, 46sec 7mins, 52sec 17mins, 53sec 33mins, 31sec l=7 Πίνακας 5.2: Χρόνος αναζήτησης ταιριασμάτ ν ια μετα ητό μέ ε ος δεδομέν ν εισόδου Β έπουμε ότι ο ρόνος εκτέ εσης του Fredriksson δεν αυξάνεται ραμμικά με την αύξηση τ ν δεδομέν ν εισόδου. Αυτό οφεί εται στο ότι δεν επεξερ άζεται με τον ίδιο τρόπο ο όκ ηρες τις ακο ου ίες αναφοράς. Ο Fredriksson αρ ικά προσπα εί να προσδιορίσει ποιες περιο ές μπορεί να έ ουν κάποιο ταίριασμα και στη συνέ εια εκτε εί δυναμικό προ ραμματισμό μόνο σε αυτές τις περιο ές. Έτσι, ο ρόνος που απαιτείται ια την εύρεση τ ν ταιριαμάτ ν δεν είναι

74 Κεφάλαιο 5. Πειραματική Αξιολόγηση ανά ο ος του με έ ους τ ν αρ εί ν εισόδου, α ά επηρεάζεται από το π ή ος και μέ ε ος τ ν περιο ών που α πρέπει να εξεταστούν με τον α όρι μο δυναμικού προ ραμματισμού. Οι παρά οντες αυτοί δεν αυξάνουν ραμμικά με την αύξηση του με έ ους τ ν δεδομέν ν εισόδου. Παρόμοια συμπεριφορά παρατηρούμε και ια τον α όρι μο φι τραρίσματος. Στον πρώτο κύκ ο του α ορί μου φι τραρίσματος ρησιμοποιούμε την υ οποίηση της Java ια το GREP ώστε να ρούμε ακρι ή ταιριάσματα. Στο Σ ήμα 5.1 παρατηρούμε ότι ο ο πρώτος κύκ ος MapReduce επεκτείνεται κα ά με την αύξηση του με έ ους τ ν δεδομέν ν εισόδου, κα ώς είναι υπο- ραμμικός (sublinear). Αυτή η συμπεριφορά οφεί εται στο εξής: σε περίπτ ση που ρε εί ένα ταίριασμα, τότε δεν ρειάζεται να ίνει αναζήτηση στο υπό οιπο κείμενο, α ά συνε ίζουμε με την αναζήτηση του επόμενου ακρι ούς ταιριάσματος. Είναι επομέν ς φανερό ότι η εκτέ εση του α ορί μου εξαρτάται και από την ύπαρξη τ ν ταιριασμάτ ν και τη έση τους στα αρ εία. Χρόνος σε δευτερόλεπτα Επεκτασιμότητα "GREP" 2000 1800 1600 1400 1200 1042 1000 800 600 584 400 310 200110 178 0 500MB 1GB 2GB 4GB 8.4GB Μέγεθος Εισόδου Φιλτράρισμα 1ος κύκλος Γραμμική καμπύλη Σ ήμα 5.1: Χρόνος εκτέ εσης GREP σε μετα ητό μέ ε ος εισόδου Σύ κριση τ ν υ οποιήσε ν Στο Σ ήμα 5.2 παρουσιάζονται οι ρόνοι εκτέ εσης τ ν δύο υ οποιήσε ν μαζί με τις ραμμικές τους καμπύ ες. Ο α όρι μος Fredriksson επηρεάζεται ι ότερο από την αύξηση του με έ ους της εισόδου από ό,τι ο α όρι μος φι τραρίσματος, όπ ς αποδεικνύεται από την αύξηση της απόκ ισης που παρουσιάζει ο πρώτος από τη ραμμική του καμπύ η. Παρατηρούμε, ακόμη, ότι οι δύο υ οποιήσεις εκτε ούνται σε παραπ ήσιους ρόνους ια με ά α με έ η εισόδου. Όπ ς φαίνεται στο Σ ήμα 5.3 η επιτά υνση του α ορί μου φι τραρίσματος πέφτει από 2.5 ια 500ΜB σε μό ις 1.15 ια ό α τα ρ μοσώματα. Η μετα ο ή της επιτά υνσης του α ορί μου μπορεί να δικαιο ο η εί από την αποδοτικότητα του φι τραρίσματος σε κά ε περίπτ ση που εξετάζουμε. Στον πίνακα 5.3 φαίνεται ο αρι μός τ ν προτύπ ν που πρέπει να αναζητη ούν σε κα ένα από τα αρ εία εισόδου μετά το τέ ος του

5.3 Πειράματα 75 πρώτου σταδίου του α ορί μου φι τραρίσματος, κα ώς και το μέ ε ος τ ν αρ εί ν. Παρατηρούμε ότι ανεξάρτητα από το μέ ε ος της εισόδου, περνάνε ό α τα αρ εία εισόδου στο δεύτερο κύκ ο MapReduce. Αύξηση του με έ ους τ ν αρ εί ν εισόδου οδη εί σε αύξηση του αρι μού τ ν προτύπ ν που πρέπει να εξεταστούν με τον α όρι μο του Fredriksson ανά αρ είο, κα ώς μπορούν να ρε ούν περισσότερα ακρι ή ταιριάσματα. Β έπουμε ότι το φι τράρισμα είναι ενικά αποδοτικό, κα ώς μόνο το 20% με 40% τ ν προτύπ ν ρειάζεται να εξεταστούν ανά αρ είο εισόδου. Επεκτασιμότητα με το μέγεθος των δεδομένων εισόδου 2307 2100 2011 Χρόνος σε δευτερόλεπτα 1600 1100 600493 574 849 1163 1073 472 286 100198 500MB 1GB 2GB 4GB 8.4GB Μέγεθος δεδομένων εισόδου (ακολουθίες αναφοράς) Fredriksson l=8 Filtering l=7 Γραμμική καμπύλη Για Fredriksson Γραμμική καμπύλη Για Filtering Σ ήμα 5.2: Χρόνοι εκτέ εσης τ ν υ οποιήσε ν ια μετα ητό μέ ε ος δεδομέν ν εισόδου Στο Σ ήμα 5.3 έπουμε, εκτός από τη συνο ική επιτά υνση του α ορί μου φι τραρίσματος, και την επιτά υνση που παρουσιάζει ο α όρι μος του Fredriksson ια τις φι τραρισμένες ακο ου ίες-πρότυπα σε σ έση με τον Fredriksson που εφαρμόζεται και ια τα 100 πρότυπα. Είναι φανερό ότι ια να επιτευ εί κα ύτερη συνο ική επιτά υνση α πρέπει να μει εί ο ρόνος του πρώτου κύκ ου MapReduce. Η μεί ση στην επιτά υνση του α ορί μου φι τραρίσματος ια 4GB και 8.4GB δεδομέν ν εισόδου οφεί εται πι ανότατα στο μέ ε ος τ ν αρ εί ν εισόδου που είναι σημαντικά με α ύτερο από το μέ ε ος τ ν αρ εί ν ια μικρότερες εισόδους. Επίσης, οφεί εται και στο με α ύτερο αρι μό προτύπ ν που πρέπει να αναζητη ούν ανά αρ είο με εφαρμο ή του α ορί μου Fredriksson κατά το δεύτερο κύκ ο. Το μέ ε ος τ ν αρ εί ν εισόδου και ο αρι μός τ ν προτύπ ν που εξετάζονται ανά αρ είο παρουσιάζονται στον πίνακα 5.3. Αξίζει να σημει εί ότι οι μέ ιστοι ρόνοι που παρατηρή ηκαν στα διάφορα στάδια του MapReduce -map, shuffle, reduce- ια με ά ες εισόδους διαφέρουν σημαντικά από τις μέσες τιμές. Τους με α ύτερους ρόνους τους παρουσίαζαν στα ερά κάποια μη ανήματα και αυτά κα όρισαν σε με ά ο α μό τους τε ικούς ρόνους εκτέ εσης τ ν προ ραμμάτ ν.

76 Κεφάλαιο 5. Πειραματική Αξιολόγηση Επιτάχυνση Fredriksson/Φιλτράρισμα Σύγκριση αλγορίθμων Fredriksson και Φιλτραρίσματος 7 6 5.74 5.54 5.3 5 4 3 2.5 2.01 2 1.8 2.33 2.59 1.08 1.15 1 0 500MB 1GB 2GB 4GB 8.4GB Μέγεθος εισόδου Επιτάχυνση Fredriksson/Φιλτράρισμα Επιτάχυνση Fredriksson / Fredriksson Φιλτραρίσματος Σ ήμα 5.3: Επιτά υνση Fredriksson/Φι τράρισμα ια μετα ητό μέ ε ος δεδομέν ν εισόδου Δεδομένα εισόδου 500MB 1GB 2GB 4GB 8.4GB Ε ά ιστος αρι μός 9 10 18 24 11 προτύπ ν ανά αρ είο Μέ ιστος αρι μός 26 31 40 49 49 προτύπ ν ανά αρ είο Μέσος όρος 19 24 29 38 38 προτύπ ν ανά αρ είο Π ή ος αρ εί ν 143 139 149 122 253 Μέσο μέ ε ος 3.6MB 7.5MB 15MB 39MB 39ΜΒ αρ εί ν Πίνακας 5.3: Στοι εία ια τον α όρι μο φι τραρίσματος ια διάφορα με έ η εισόδου 5.3.2 Επεκτασιμότητα με τον αρι μό τ ν προτύπ ν Το πείραμα αυτό δεί νει πώς η υ οποίηση του α ορί μου Fredriksson και του α ορί μου φι τραρίσματος επεκτείνονται με αύξηση του π ή ους τ ν προτύπ ν. Έ ινε σε cluster με 10 μη ανήματα, εκ τ ν οποί ν τα 8 είναι διπύρηνα Intel Pentium E2220 στα 2.40GHz και τα 2 διπύρηνα Pentium E5300 στα 2.60GHz. Στην Distributed cache τοπο ετή ηκαν τέσσερα αρ εία με 50, 100, 250 και 500 ακο ου ίες-πρότυπα μήκους 100 αρακτήρες το κα ένα και με ό ο ά ους στα ερό και ίσο με 5%. Ρυ μίσαμε τους reducers σε 18. Οι ακο ου ίες αναφοράς ρίστηκαν σε 149 αρ εία με έ ους 15MB το κα ένα. Για τον α όρι μο του Fredriksson ρησιμοποιή ηκε η παράμετρος l=8 που είναι η έ τιστη τιμή ια μήκος προτύπ ν 100 αρακτήρες, ενώ ια τον α όρι μο φι τραρίσματος ρησιμοποιή ηκε η αντίστοι η έ τιστη παράμετρος l=7.

5.3 Πειράματα 77 Αν τα πρότυπα ήταν π ήρ ς ανεξάρτητα και η αναζήτησή τους στη άση δεδομέν ν ινόταν σειριακά, α αναμέναμε η αύξηση του π ή ους τ ν προτύπ ν να προκα εί ραμμική αύξηση του ρόνου. Ωστόσο, επειδή και στις δύο υ οποιήσεις ρησιμοποιείται ο α όρι μος του Fredriksson ο οποίος προσπα εί να ρει ταυτό ρονα τα ταιριάσματα ό ν τ ν προτύπ ν, η ραμμικότητα αυτή δεν παρουσιάζεται. Οι μετρήσεις παρουσιάζονται στον πίνακα 5.4. Στο Σ ήμα reffig:queriesnumberspeedup παρατηρούμε ότι ο ρυ μός με τον οποίο αυξάνεται ο ρόνος εκτέ εσης του α ορί μου είναι πο ύ με α ύτερος από το ρυ μό αύξησης του αρι μού τ ν προτύπ ν που πρέπει να αναζητη- ούν ταυτό ρονα. Αυτό οφεί εται στη μη- ραμμικότητα του α ορί μου Fredriksson. # προτύπ ν 50 100 250 500 Υ οποίηση Fredriksson 4mins, 6sec 14mins, 14sec 1hrs, 52mins, 26sec 4hrs, 45mins, l=8 28sec Filtering l=7 3mins, 13sec 4mins, 34sec 9mins, 16sec 16mins, 57sec Φάση Α Filtering l=7 1mins, 19sec 3mins, 19sec 39mins, 37sec 1hrs, 31mins, Φάση Β 7sec Filtering 4mins, 32sec 7mins,53sec 48mins, 53sec 1hrs, 48mins, συνο ικά 4sec Πίνακας 5.4: Χρόνος αναζήτησης ταιριασμάτ ν ια μετα ητό αρι μό προτύπ ν Σύ κριση τ ν υ οποιήσε ν Ο α όρι μος Fredriksson είναι ί ο πιο ρή ορος από τον α όρι μο φι τραρίσματος στην αναζήτηση 50 προτύπ ν. Η διαφορά, όμ ς, στους ρόνους είναι αμε ητέα, ενώ τα αποτε έσματα αντιστρέφονται ια με α ύτερο αρι μό προτύπ ν και οι διαφορές μεταξύ τ ν α ορί μ ν με α ώνουν σημαντικά. Όπ ς φαίνεται στο διά ραμμα 5.4, ο ρόνος εκτέ εσης του α ορί μου φι τραρίσματος αυξάνεται με μικρότερο ρυ μό από το ρόνο εκτέ εσης του α ορί μου Fredriksson. Αυτό οφεί εται στον αρι μό τ ν προτύπ ν που αναζητούνται ταυτό ρονα σε κά ε υ οποίηση και στον τρόπο με τον οποίο επηρεάζεται ο α όρι μος Fredriksson από τον αρι μό τ ν προτύπ ν. Από τον πίνακα 5.5 έπουμε ότι το φι τράρισμα που επιτυ άνεται από τον α όρι μο φι τραρίσματος είναι αρκετά κα ό σε ό ες τις περιπτώσεις που εξετάζονται. Ο α όρι μος Fredriksson στο δεύτερο κύκ ο του α ορί μου φι τραρίσματος αναζητά μόνο το 30% με 36% τ ν προτύπ ν που εξετάζει η υ οποίηση του α ορί μου Fredriksson. Στο διά ραμμα έπουμε ότι όσο με α ώνει ο αρι μός τ ν προτύπ ν, το φι τράρισμα παρουσιάζει μικρή μεί ση στην αποδοτικότητά του κι έτσι η επιτά υνση του α ορί μου φι τραρίσματος σε σ έση με τον α όρι μο Fredriksson αυξάνει. Συμπερασματικά, ο α όρι μος φι τραρίσματος είναι κα ύτερος από τον α όρι μο Fredriksson ια με ά ο αρι μό προτύπ ν. Ωστόσο, αυτό δεν αποτε εί πρό ημα, κα ώς η ο ική

78 Κεφάλαιο 5. Πειραματική Αξιολόγηση Επεκτασιμότητα με τον αριθμό των προτύπων 17128 3 Χρόνος σε δευτερόλεπτα 16150 14150 12150 10150 8150 6150 0.9 4150 1.81 2.3 6746 2.64 2 1 Επιτάχυνση 2150 246 150 854 50 100 250 500 Αριθμός προτύπων Fredriksson l=8 Filtering l=7 Επιτάχυνση Fredriksson/Filtering Μηδενική επιτάχυνση Γραμμική καμπύλη Fredriksson Γραμμική καμπύλη Filtering 0 Σ ήμα 5.4: Χρόνοι και επιτά υνση ια μετα ητό αρι μό προτύπ ν Αρι μός προτύπ ν 50 100 250 500 Ε ά ιστος αρι μός προτύπ ν ανά αρ είο 6 20 60 129 Μέ ιστος αρι μός προτύπ ν ανά αρ είο 20 40 96 200 Μέσος όρος προτύπ ν ανά αρ είο 15 33 86 182 Αρι μός α ών 5 5 5 5 Πίνακας 5.5: Στοι εία ια τον α όρι μο φι τραρίσματος ια μετα ητό αρι μό προτύπ ν τ ν α ορί μ ν αυτών είναι να ρησιμοποιούνται ια πο ύ με ά ο ό κο δεδομέν ν, τα οποία α παρά ουν οι νέες τε νο ο ίες ακο ου ιοποίησης ιο ο ικών δεδομέν ν. 5.3.3 Επίδραση του μήκους τ ν προτύπ ν Το πείραμα αυτό εξετάζει πώς επιδρά το μήκος τ ν προτύπ ν στην επίδοση του α ορί μου Fredriksson και του α ορί μου φι τραρίσματος. Το πείραμα έ ινε σε cluster με 10 μη ανήματα, εκ τ ν οποί ν τα 8 είναι διπύρηνα Intel Pentium E2220 στα 2.40GHz και τα 2 διπύρηνα Pentium E5300 στα 2.60GHz. Στην Distributed cache τοπο ετή ηκαν τέσσερα αρ εία με 100 ακο ου ίες-πρότυπα και μήκος 50, 100, 200 και 400 αρακτήρες η κα εμία αντίστοι α. Ο ό ος α ών ήταν στα ερός ια ό ες τις εξεταζόμενες ακο ου ίες και ίσος με 5%. Χρησιμοποιή ηκαν 2GB δεδομέν ν εισόδου που ήταν ρισμένα σε 149 αρ εία με έ ους 15MB το κα ένα. Και ια τους δύο α όρι μους έ ιναν ια κά ε μήκος προτύπ ν δοκιμές ια την επίδοσή τους μετα ά οντας την παράμετρο l. Στις παρακάτ μετρήσεις παρουσιάζονται οι ρόνοι που αντιστοι ούν στα έ τιστα l ια

5.3 Πειράματα 79 κά ε εξεταζόμενη περίπτ ση. Σύ κριση τ ν υ οποιήσε ν Στον πίνακα 5.6 παρουσιάζονται οι ρόνοι εκτέ εσης τ ν δύο υ οποιήσε ν. Για τον α όρι μο Fredriksson παρατηρούμε ότι η αύξηση του μήκους τ ν προτύπ ν οδη εί σε αύξηση του ρόνου εκτέ εσης του προ ράμματος. Ο ρόνος εκτέ εσης του α ορί μου φι τραρίσματος ενικά αυξάνεται ια με ά ο μήκος προτύπ ν. Για μήκος 50 αρακτήρες παρατηρούμε ότι ο ρόνος εκτέ εσης είναι με α ύτερος από το ρόνο ια 100 και 200 αρακτήρες. Αυτό δικαιο ο είται από την μη αποτε εσματικότητα του φι τραρίσματος στην περίπτ ση τ ν 50 αρακτήρ ν. Όπ ς φαίνεται στον πίνακα 5.7 περνάνε σ εδόν ό α τα πρότυπα στο 2ο κύκ ο ΜapReduce. Ακόμη, όμ ς, κι αν εκτε ούνταν ο α όρι μος με την τιμή l=8 που εκτε έστηκε ο α όρι μος Fredriksson, δεν α εί αμε σημαντική ε τί ση στην επίδοση του α ορί μου φι τραρίσματος σε σ έση με τον τε ευταίο: δεν υπάρ ει με ά η μεί ση του αρι μού τ ν προτύπ ν που πρέπει να εξεταστούν ανά αρ είο και επιπ έον υπάρ ει η επι άρυνση του πρώτου σταδίου MapReduce. Μήκος προτύπ ν 50 100 200 400 Υ οποίηση Μήκος l-grams Fredr: 9 Fredr: 8 Fredr: 8 Fredr: 9 Filt: 9 Filt: 7 Filt: 8 Filt: 8 Fredriksson 14mins, 45sec 15mins, 57 sec 50mins, 57sec 3hrs, 18 mins, 48sec Filtering 2mins, 20sec 5mins, 28sec 6mins, 49sec 11mins, 30sec Φάση Α Filtering 14mins, 20sec 3mins, 23sec 6mins, 44sec 21mins, 31sec Φάση Β Filtering 16mins, 40sec 8mins, 51sec 13mins, 33sec 33mins, 1sec συνο ικά Πίνακας 5.6: Χρόνος αναζήτησης ταιριασμάτ ν ια μετα ητό μήκος προτύπ ν Από το διά ραμμα 5.5 φαίνεται ότι η επίδοση του α ορί μου φι τραρίσματος είναι κα ύτερη σε σ έση με την επίδοση του α ορί μου του Fredriksson με την αύξηση του μήκους τ ν προτύπ ν. Αυτό δικαιο ο είται από την αποδοτικότητα του φι τραρίσματος, η οποία επηρεάζεται από το μήκος τ ν υπακο ου ιών που ρησιμοποιούνται στον πρώτο κύκ ο MapReduce. Στον πίνακα 5.7 παρατηρούμε ότι ια μήκος υπακο ου ιών από 16 ς 19 αρακτήρες το φι τράρισμα είναι μεταξύ 33% και 39% και αυτό οδη εί σε με ά η μεί ση του ρόνου εκτέ εσης του α ορί μου Fredriksson. Συμπεραίνουμε ότι ο α όρι μος φι τραρίσματος έ ει με α ύτερο κέρδος ια με ά ες ακο ου ίες, κα ώς ια αυτές είναι δυνατόν να ίνει κα ό φι τράρισμα και να μει εί ο ρόνος εκτέ εσης του α ορί μου που ρησιμοποιείται ια τον προσδιορισμό τ ν ταιριασμάτ ν.

80 Κεφάλαιο 5. Πειραματική Αξιολόγηση 8500 7500 Επίδραση του μήκους των ακολουθιών-προτύπων 4 4 4 Χρόνος σε δευτερόλεπτα 6500 5500 4500 3500 2500 1 2 3 2 1 Επιτάχυνση 1500 500 0 50 100 200 400 Μήκος προτύπων Fredriksson Filtering Επιτάχυνση Fredriksson/Φιλτράρι σμα Μηδενική επιτάχυνση Σ ήμα 5.5: Χρόνοι και επιτά υνση ια μετα ητό μήκος ακο ου ιών Μήκος προτύπ ν 50 100 200 400 Ε ά ιστος αρι μός προτύπ ν ανά αρ είο 83 20 27 33 Μέ ιστος αρι μός προτύπ ν ανά αρ είο 100 40 41 47 Μέσος όρος προτύπ ν ανά αρ είο 99 33 36 39 Αρι μός α ών 3 5 10 20 Μήκος υπακο ου ιών στον 1ο κύκ ο MR 12 16 18 19 Πίνακας 5.7: Στοι εία ια τον α όρι μο φι τραρίσματος ια μετα ητό μήκος ακο ου ιών 5.3.4 Επίδραση του ό ου α ών α (error ratio) Το πείραμα αυτό δεί νει πώς επιδρά η τιμή του ό ου α ών, α, που ρησιμοποιείται ια το πρό ημα προσε ιστικού ταιριάσματος ακο ου ιών στην επίδοση τ ν δύο συ κρινόμεν ν υ οποιήσε ν. Το πείραμα αυτό έ ινε σε cluster με 10 μη ανήματα, εκ τ ν οποί ν τα 8 είναι διπύρηνα Intel Pentium E2220 στα 2.40GHz και τα 2 διπύρηνα Pentium E5300 στα 2.60GHz. Στην Distributed cache τοπο ετή ηκε ένα αρ είο με 100 ακο ου ίες-πρότυπα μήκους 100 αρακτήρες η κα εμία. Τα δεδομένα εισόδου εί αν μέ ε ος 2GB και ήταν ρισμένα σε 149 αρ εία με έ ους 15MB το κα ένα. Στον πίνακα 5.8 φαίνονται οι μετρήσεις που έ ιναν. Όπ ς αναμενόταν, η αύξηση του ποσοστού τ ν α ών οδη εί σε αύξηση του ρόνου εκτέ εσης και τ ν δύο προ ραμμάτ ν, κα ώς μειώνεται η αποτε εσματικότητα τ ν σταδί ν φι τραρίσματος που έ ουν οι υ οποιήσεις. Σύ κριση τ ν υ οποιήσε ν Συ κεκριμένα, η αύξηση του ό ου α ών σημαίνει με- α ύτερο αρι μό α ών, k, ια στα ερό μήκος προτύπ ν. Για τον α όρι μο του Fredriksson

5.3 Πειράματα 81 η αύξηση του αποδεκτού ορίου α ών οδη εί σε περισσότερους ε έ ους στη φάση κατά την οποία προσπα εί να απορρίψει κάποια από τα παρά υρα που πρέπει να ε ε ούν, κα- ώς α πρέπει κατά τη διάσ ιση του παρα ύρου από το τέ ος προς την αρ ή να προκύψουν ά η περισσότερα από το k. Από την ά η μεριά, ο α όρι μος φι τραρίσματος επηρεάζεται από τον αρι μό τ ν α ών διότι με αύξηση του k μειώνεται το μήκος τ ν υπακο ου ιών που αναζητούνται ακρι ώς μέσα στις ακο ου ίες αναφοράς. Πιο ανα υτικά, οι υπακο ου ίες που ρησιμοποιούνται στον πρώτο κύκ ο MapReduce του α ορί μου φι τραρίσματος έ ουν μήκος 33, 16 και 9 ια ποσοστό α ών 2%, 5% και 10% αντίστοι α. Είναι φανερό ότι η πι ανότητα να υπάρ ει μία υπακο ου ία μήκους 9 αρακτήρ ν μέσα σε ένα κείμενο 15MB είναι πο ύ με α ύτερη από την πι ανότητα να υπάρ ει υπακο ου ία μήκους 33 αρακτήρ ν. 2% 5% 10% Fredriksson l=8 6mins, 43sec 14mins, 11sec 1hrs, 35mins, 26sec Filtering l=7 Φάση Α 3mins, 33sec 5mins, 16sec 2mins, 22sec Filtering l=7 Φάση Β 1mins, 18sec 3mins, 20sec 1hrs, 41mins, 00sec Filtering συνο ικά 4mins, 51sec 8mins, 36sec 1hrs, 43mins, 22sec Πίνακας 5.8: Χρόνος αναζήτησης ταιριασμάτ ν ια μετα ητό ποσοστό α ών Χρόνος σε δευτερόλεπτα Επίδραση ποσοστού λαθών α=k/m 6200 1.65 5200 4200 1.2 3200 2 6202 5719 1 0.92 2200 1200 851 200 325 515 270 0 2% 5% 10% Ποσοστό λαθών Επιτάχυνση Fredriksson Filtering Επιτάχυνση Μηδενική επιτάχυνση Σ ήμα 5.6: Χρόνοι και επιτά υνση ια μετα ητό ποσοστό α ών Για ποσοστό α ών 2% και 5%, όπ ς φαίνεται στον πίνακα 5.9, ο πρώτος κύκ ος MapReduce του α ορί μου φι τραρίσματος είναι αποτε εσματικός κα ώς ια κά ε αρ είο εισόδου πρέπει να αναζητη ούν με τον α όρι μο Fredriksson κατά μέσο όρο 8 και 33 ακο ου ίες αντίστοι α. Η μεί ση τ ν προτύπ ν ανά αρ είο σε 8% και 33% αντίστοι α έ ει ς αποτέ εσμα ο α όρι μος Fredriksson να εκτε είται πιο ρή ορα από ό,τι αν έπρεπε να αναζητήσει και τα 100 πρότυπα. Ωστόσο, ια ποσοστό α ών 10% έπουμε ότι η αποδοτικότητα του 1ου σταδίου Map-

82 Κεφάλαιο 5. Πειραματική Αξιολόγηση Reduce μηδενίζεται και στην πρα ματικότητα δεν ίνεται κα ό ου φι τράρισμα τ ν προτύπ ν που περνούν στο 2ο στάδιο MapReduce και στα οποία εφαρμόζεται ο α όρι μος Fredriksson. Ο ό ος ια τον οποίο δεν ίνεται φι τράρισμα τ ν ακο ου ιών-προτύπ ν είναι το μικρό μήκος τ ν ακο ου ιών που αναζητούνται ακρι ώς μέσα στα αρ εία εισόδου (15ΜΒ) κατά την πρώτη φάση του α ορί μου. Επιπρόσ ετα, παρατηρούμε αύξηση στο ρόνο εκτέ- εσης του 2ου σταδίου σε σ έση με τον απ ό α όρι μο Fredriksson που αναζητά τον ίδιο αρι μό προτύπ ν. Η αύξηση αυτή οφεί εται στην πρόσ ετη επεξερ ασία της συνάρτησης map του 1ου κύκ ου MapReduce προκειμένου να δια αστεί το αρ είο εισόδου και να ριστεί στην ακο ου ία αναφοράς και τις επιμέρους ακο ου ίες-πρότυπα που πρέπει να αναζητη ούν. Ποσοστό α ών α 2% 5% 10% Ε ά ιστος αρι μός προτύπ ν ανά αρ είο 4 21 100 Μέ ιστος αρι μός προτύπ ν ανά αρ είο 13 41 100 Μέσος όρος προτύπ ν ανά αρ είο 8 33 100 Πίνακας 5.9: Στοι εία ια τον α όρι μο φι τραρίσματος ια μετα ητό ποσοστό α ών Είναι φανερό ότι ια με ά ο ποσοστό α ών, ο α όρι μος φι τραρίσματος δεν ε τιώνει την επίδοση του α ορί μου Fredriksson, κα ώς δεν μειώνει το π ή ος τ ν αναζητήσε ν που πρέπει να ίνουν. Η ε τί ση που προσφέρει είναι με α ύτερη ια μέτριες τιμές του ό ου α ών α. 5.3.5 Επεκτασιμότητα με τον αρι μό τ ν κόμ ν Στο πείραμα αυτό με ετάμε πώς επεκτείνονται οι α όρι μοι με την αύξηση του αρι μού τ ν κόμ ν ια ένα στα ερό πρό ημα: 1GB ακο ου ίες αναφοράς, ρισμένες σε 139 αρ εία με έ ους περίπου 7.5ΜΒ το κα ένα 100 ακο ου ίες-πρότυπα μήκους 100 αρακτήρες Το αρ είο με τις ακο ου ίες-πρότυπα τοπο ετή ηκε στη Distributed Cache. Οι δοκιμές έ ιναν σε cluster με 3, 6, 9 και 12 υπο ο ιστές. Στις τρεις πρώτες περιπτώσεις ρησιμοποιή ηκαν μόνο διπύρηνοι υπο ο ιστές Intel Pentium E2220 στα 2.4GHz. Σε κά ε περίπτ ση ορίστηκαν 2 επεξερ αστές ι ότεροι από το συνο ικό αρι μό επεξερ αστών του cluster ια να εκτε ούν ερ ασίες reduce. Αυτό έ ινε ια να μπορεί το σύστημα να ανακάμψει σε περίπτ ση αποτυ ίας κάποιου κόμ ου. Πιο ανα υτικά, σε περίπτ ση που κάποιο από τα διπύρηνα μη ανήματα πέσει ενώ εκτε εί ερ ασία reduce, -με τη ρύ μιση που έ ινε- o JobTracker δεν ρειάζεται να περιμένει μέ ρι κάποιος από τους ά ους κόμ ους τε ειώσει την αρ ική ερ ασία reduce που του εί ε ανατε εί, α ά μπορεί να ανα έσει απευ είας την ερ ασία reduce που απέτυ ε στον επιπ έον κόμ ο. Με αυτόν τον τρόπο εξασφα ίζεται ότι οι ερ ασίες reduce εκτε ούνται κατά το δυνατόν παρά η α.

5.3 Πειράματα 83 Στον πίνακα 5.10 και στο διά ραμμα 5.7 φαίνονται οι ρόνοι εκτέ εσης τ ν α ορί μ ν Fredriksson και φι τραρίσματος ια μετα ητό αρι μό κόμ ν. Παρατηρούμε ότι και στις δύο περιπτώσεις οι α όρι μοι παρουσιάζουν ρόνους εκτέ εσης κοντά στους ιδανικούς. Οι μικρές αποκ ίσεις από τους ιδανικούς ρόνους αποδίδονται στην επι άρυνση που υπάρ ει από το συντονισμό περισσότερ ν κόμ ν και την ταυτό ρονη εκκίνηση πιο πο ών ερ ασιών. # Κόμ ν 3 6 9 12 Υ οποίηση # Reducers 4 6 16 22 Fredriksson 30mins, 30sec 15mins, 45sec 10mins, 40sec 8mins, 8sec l=8 Filtering l=7 8mins, 1sec 4mins, 20sec 3mins,6sec 2mins, 31sec Φάση Α Filtering l=7 4mins, 41sec 2mins, 34sec 1mins, 54sec 1mins, 31sec Φάση Β Filtering l=7 12mins, 42sec 6mins, 54sec 5mins, 0sec 4mins, 2sec Συνο ικά Πίνακας 5.10: Χρόνος αναζήτησης ταιριασμάτ ν ια μετα ητό μέ ε ος του cluster Σύ κριση τ ν υ οποιήσε ν Β έπουμε ότι η επιτά υνση του α ορί μου φι τραρίσματος σε σ έση με τον α όρι μο Fredriksson παρουσιάζει πτ τική τάση με την αύξηση του αρι μού τ ν κόμ ν του cluster. Αιτία αυτής της συμπεριφοράς είναι ότι στον α όρι μο του φι τραρίσματος εκτε ούνται δύο κύκ οι MapReduce διαδο ικά, ενώ στον α όρι μο Fredriksson εκτε είται μόνο ένας. Αυτό έ ει ς αποτέ εσμα πρόσ ετη επι άρυνση του πρώτου α ορί μου, κα ώς α πρέπει να ίνει καταμερισμός και συντονισμός τ ν ερ ασιών map και reduce περισσότερες φορές στους κόμ ους και επιπ έον ο αρι μός τ ν ειτουρ ιών εισόδου/εξόδου (I/O) είναι με α ύτερος. Η επιτά υνση του α ορί μου φι τραρίσματος σε σ έση με τον Fredriksson α είναι κα ύτερη σε πιο με ά ο ό κο δεδομέν ν εισόδου, κα ώς οι ρόνοι εκτέ εσης τ ν προ ραμμάτ ν είναι πιο με ά οι και η επι άρυνση από την εκκίνηση και καταμερισμό ερ ασιών στους κόμ ους παύει να είναι συ κρίσιμη με τον κα αρό ρόνο εκτέ εσής τους. Ο α όρι μος φι τραρίσματος α ήταν πιο αποδοτικός αν ο δεύτερος κύκ ος MapReduce μπορούσε να ξεκινήσει πριν τε ειώσει ο πρώτος. Επειδή τα δεδομένα εξόδου του πρώτου κύκ ου του α ορί μου φι τραρίσματος είναι ανεξάρτητα μεταξύ τους, αν υπήρ ε η δυνατότητα να επεξερ άζονται κάποιοι κόμ οι τα δεδομένα εξόδου του πρώτου κύκ ου κα ώς αυτά παρά- ονται, τότε ο α όρι μος α παρουσίαζε με α ύτερη επιτά υνση. Μία τροποποιημένη έκδοση του Hadoop MapReduce που υποστηρίζει αυτή τη δυνατότητα υ οποιή ηκε από ερευνητές στο πανεπιστήμιο του Berkeley και τη Yahoo! [5]. Επίσης, η επίδοσή του α ήταν κα ύτερη αν μπορούσε να ρησιμοποιη εί η κ άση ChainMapper, η οποία επιτρέπει το σ ήμα [MAP+

84 Κεφάλαιο 5. Πειραματική Αξιολόγηση Χρόνος σε δευτερόλεπτα 2000 1800 1600 2.4 1400 1200 1000 800 600 400 200 0 Επεκτασιμότητα με τον αριθμό των κόμβων 2.28 2.13 3 6 9 12 Fredriksson l=8 Filtering l=7 Ιδανική καμπύλη για Fredriksson Ιδανική καμπύλη για Filtering Αριθμός κόμβων Επιτάχυνση Fredriksson/Filtering Μηδενική Επιτάχυνση 3 2 2.02 1 0 Επιτάχυνση Σ ήμα 5.7: Χρόνοι και επιτά υνση ια μετα ητό π ή ος κόμ ν / REDUCE]. Πιο ανα υτικά, η κ άση αυτή επιτρέπει την εκτέ εση πο ών συναρτήσε ν map κατά τη διάρκεια μίας μόνο ερ ασίας map (map task) και κά ε συνάρτηση ρησιμοποιεί ς είσοδο την έξοδο της προη ούμενης. Το π εονέκτημα της κ άσης είναι ότι ειρίζεται αποδοτικά τις ειτουρ ίες εισόδου/εξόδου (I/O) μειώνοντας σημαντικά το ρόνο εκτέ εσης του προ ράμματος. Κατά συνέπεια, με ρήση της κ άσης ChainMapper α αποφευ όταν η εκκίνηση δύο διαδο ικών κύκ ν MapReduce και η επι άρυνση που αυτό συνεπά εται. Η συ κεκριμένη κ άση δεν ρησιμοποιή ηκε επειδή δεν ανα α μίστηκε στη έκδοση του Hadoop 0.20.2 που ρησιμοποιή ηκε ια τα προ ράμματα.

Κεφά αιο 6 Σ ετικές Ερ ασίες Στο κεφά αιο αυτό παρουσιάζονται κάποιες απο τις σημαντικότερες υ οποιήσεις ιο ο- ικών εφαρμο ών στο περι ά ον MapReduce. 6.1 BlastReduce Μία από τις παρά η ες υ οποιήσεις του α ορί μου BLAST με ρήση του προ ραμματιστικού μοντέ ου MapReduce προτά ηκε από τον Michael C. Schatz σε μία τε νική αναφορά. Το πρό ραμμα BlastReduce [29] αντικαταστά ηκε αρ ότερα από το CloudBurst, μία ά η παρά η η υ οποίηση ενός blast-like α ορί μου που έ ει κα ύτερη επίδοση. Μερικές επτομέρειες ια τον α όρι μο BLAST υπάρ ουν στο κεφά αιο 2. Στην ερ ασία του Schatz έ ινε ε τιστοποίηση του BLAST α ορί μου, κα ώς ια τον εντοπισμό τ ν προσε ιστικών ταιριασμάτ ν (approximate sequence matchings) με το πο ύ k ά η ρησιμοποιή ηκε στη φάση επέκτασης, αντί του α ορί μου Smith-Waterman, o Landau-Vishkin [22]. Η διαφορά τ ν δύο α ορί μ ν έ κειται στον τρόπο με τον οποίο εντοπίζουν τα ταιριάσματα που παρουσιάζουν κάποιο αρι μό διαφορών. Συ κεκριμένα, ο α - όρι μος Landau-Vishkin υπο ο ίζει πόσοι αρακτήρες κά ε ακο ου ίας μπορούν να ταιριάξουν με διαφορές που κυμαίνονται από i=0 μέ ρι k. Ο υπο ο ισμός τ ν αρακτήρ ν ια i διαφορές ίνεται από το ήμα με i-1 διαφορές επιτρέποντας μία εισα ή, δια ραφή ή τροποποίηση. Ο α όρι μος αυτός τερματίζει όταν φτάσουμε στο τέ ος της ακο ου ίας ή στο ήμα k+1. Από την ά η μεριά, ο BLAST παρά ει ό α τα δυνατά ταιριάσματα και στο τέ- ος φι τράρει αυτά που ικανοποιούν τον περιορισμό του αρι μού α ών. Η κα ύτερη επίδοση του Landau-Vishkin α ορί μου σε σ έση με τον Smith-Waterman οφεί εται στην εξεταση μικρότερου αρι μού ταιριασμάτ ν. Το BlastReduce αναπτύ ηκε σε Java στο Hadoop. Τα δεδομένα εισόδου, δη αδή τα reads και οι ακο ου ίες αναφοράς, συντάσσονται σε αρ εία multi-fasta τα οποία μετατρέπονται σε συμπιεσμένα Hadoop SequenceFile που υποστηρίζουν ς 65.565 αρακτήρες. Τα αρ εία που έ ουν με α ύτερο μέ ε ος ρίζονται αυτόματα σε περισσότερα κομμάτια ώστε να ικανοποιείται αυτός ο περιορισμός. Οι ακο ου ίες απο ηκεύονται σε ζεύ η κ ειδιού-τιμής (id,(sequence, start_offset, tag)), όπου το start_offset παριστάνει τη έση του κομματιού 85

86 Κεφάλαιο 6. Σχετικές Εργασίες της ακο ου ίας (chunk) στην αρ ική ακο ου ία. Για τη διάκριση τ ν ακο ου ιών αναφοράς από τις ά ες ακο ου ίες ρησιμοποιείται το πεδίο tag, το οποίο ια τις ακο ου ίες αναφοράς τί εται ίσο με 1 και ια τις ά ες 0. Μετά τη μεταφορά του SequenceFile στο HDFS είναι δυνατή η έναρξη της διαδικασίας εύρεσης ταιριασμάτ ν, η οποία ίνεται σε 3 διαφορετικές φάσεις map-reduce, όπ ς φαίνεται στο Σ ήμα 6.1. Κατά τον πρώτο κύκ ο MapReduce, τον ονομαζόμενο MerReduce, εντοπίζονται mers μήκους s που είναι κοινά μεταξύ της υπό εξέτασης ακο ου ίας και τ ν ακο- ου ιών αναφοράς. Για κά ε mer στην ακο ου ία εισόδου δημιουρ είται ένα ζεύ ος (mer,(id, position, left_flank, right_flank))=(mer, MerPos). Αν δεν πρόκειται ια ακο- ου ία αναφοράς, κατά τη φάση map εξά ονται ζεύ η και ια τις συμπ ηρ ματικές ακο ου ίες. Η τε ική έξοδος της map είναι s(m+n) mers, όπου Μ είναι το συνο ικό μήκος τ ν reads και Ν το συνο ικό μήκος τ ν ακο ου ιών αναφοράς. Όπ ς αναφέρ ηκε και στην περι ραφή του MapReduce, η φάση map ακο ου είται από εσ τερική ταξινόμηση ώστε να ίνει συ ώνευση σε ίστα τ ν τιμών που αντιστοι ούν στο ίδιο κ ειδί-mer. Κατά τη φάση reduce ίνεται πέρασμα κά ε ίστας με τις τιμές MerPos δύο φορές. Την πρώτη φορά εντοπίζονται οι ε ραφές που αντιστοι ούν σε ακο ου ίες αναφοράς και τη δεύτερη εξά ονται ζεύ η της μορφής (read_id, SharedMer) = (read_id,(read_position, ref_id, ref_position, read_left_flank, read_right_flank, ref_left_flank, ref_right_flank)) ια κά ε mer που υπάρ- Σ ήμα 6.1: BlastReduce α - ει και σε ακο ου ία αναφοράς και σε read. όρι μος Στο δεύτερο κύκ ο, που ονομάζεται SeedReduce, ίνεται συνδυασμός τ ν σύμφ ν ν mers ια να δημιουρ η ούν με α ύτεροι σπόροι (seeds). Σύμφ να ονομάζονται τα mers που διαφέρουν κατά ένα ζεύ ος άσε ν. Συ κεκριμένα, κατά τη φάση map εξά ονται τα ίδια ζεύ η τιμών με τον προη ούμενο κύκ ο, (read_id, SharedMer), και ακο ου εί η εσ τερική τους ταξινόμηση με άση το read_id. Στη φάση reduce, ίνεται ταξινόμηση τ ν τιμών SharedMer με άση το read_position και ζεύ η με συμ ατά mers συνενώνονται δημιουρ ώντας σπόρους. Οι τε ικοί σπόροι που προκύπτουν αποτε ούν μέ ιστα ακρι ή ταιριάσματα (maximal exact matches) με μήκος του ά ιστον s ζεύ η άσε ν. Η έξοδος αυτής της φάσης είναι σε μορφή ζευ ών (read_id, SharedSeed) = (read_id, (read_position, ref_id, target_position, read_left_flank, read_right_flank, ref_left_flank, ref_right_flank)). Τέ ος, κατά τον τρίτο κύκ ο που έ εται ExtendReduce, ίνεται επέκταση τ ν ακρι- ών ταιριασμάτ ν του προη ούμενου ήματος ώστε να ρε ούν πιο με ά α προσε ιστικά ταιριάσματα. Κά ε SharedSeed επεκτείνεται προκειμένου να εξετασ εί αν μπορεί να προκύψει ταίριασμα με το πο ύ k διαφορές. Αν αυτό είναι δυνατό, εξά εται το ζεύ ος (read_id,

6.1 BlastReduce 87 AlignmentInfo)=(read_id, ( ref_id, ref_align_start, ref_align_end, num_differences)). Ακο ου εί η ταξινόμηση και συ ώνευση τ ν AlignmentInfo που αντιστοι ούν στο ίδιο κ ειδί read_id. Κατά το reduce του τε ευταίου κύκ ου ίνεται φι τράρισμα τ ν διπ ότυπ ν ταιριασμάτ ν που είναι αποτέ εσμα του εντοπισμού πο απ ών σπόρ ν στο ίδιο ταίριασμα. Το φι τράρισμα πρα ματοποιείται σε δύο ήματα και ασίζεται στο πεδίο ref_align_start. Αποτε έσματα Για την αξιο ό ηση του BlastReduce ρησιμοποιή ηκαν δεδομένα από τις ακο ου ίες Illumina/Solexa που διατί ενται στο διαδίκτυο. Προκειμένου να αξιοποιη ούν τα οφέ η του α ορί μου Landau-Vishkin, κατά την αξιο ό ηση του α ορί μου BlastReduce, έ ινε αναζήτηση ακο ου ιών που διέφεραν σε 1 ή 2 σημεία. Το cluster όπου έ ιναν οι δοκιμές αποτε- ούνταν από 12 κόμ ους, διπύρηνους στα 3.2GHz Intel Xeon με τοπική μνήμη 250GB. Το ειτουρ ικό τους σύστημα ήταν RedHat AS Release 3 Update 4 και εί ε ίνει ρύ μιση στο Hadoop ώστε να τρέ ουν 2 ερ ασίες ανά κόμ ο. Η πρώτη δοκιμή του BlastReduce εξέτασε τη δυνατότητα επεκτασιμότητάς του (scalability) όταν αυξάνεται ο αρι μός τ ν μικρών ακο ου ιών ιομορί ν (reads). Φαίνεται ότι ο ρόνος εκτέ εσης αυξάνεται ραμμικά με την αύξηση του αρι μού τ ν reads, ε ονός που είναι αναμενόμενο ό της ανεξαρτησίας μεταξύ τ ν reads. Ο αρκετά με α ύτερος ρόνος εκτέ εσης στην αναζήτηση ταιριασμάτ ν με 2 διαφορές σε σύ κριση με την αναζήτηση με 1 διαφορά οφεί εται στο με α ύτερο αρι μό σπόρ ν που παρά ονται, ε ονός που οδη εί σε επέκταση περισσότερ ν ακο ου ιών κατά τη φάση ExtendReduce. Γενικά, ια πο ύ με ά ο αρι μό reads η συμπεριφορά του BlastReduce είναι κα ύτερη, διότι επηρεάζεται ι ότερο από το αρ ικό overhead. Κατά τη δεύτερη δοκιμή, έ ινε σύ κριση της επίδοσης του BlastReduce με τη σειριακή εκτέ εση του NCBI BLAST στο ίδιο hardware και επι ά οντας ίδιο μέ ε ος σπόρ ν. Το BlastReduce ια το μέ ιστο αρι μό reads που εξετάστηκαν (1.6Μ) παρουσίασε παρά οντα επιτά υνσης από 175 ς 250 ια επιτρεπόμενες διαφορές δύο και μία αντίστοι α. Η υπερ- ραμμική επιτά υνση που παρουσιάστηκε (ενώ αναμενόταν επιτά υνση ς 24x εφόσον στα πειράματα ρησιμοποιή ηκαν 24 επεξερ αστές) οφεί εται στους διαφορετικούς α όρι μους που ρησιμοποιούν οι δύο υ οποιήσεις κατά τη φάση της επέκτασης. Ο BlastReduce, όπ ς αναφέρ ηκε, είναι ε τιστοποιημένος, κα ώς σταματάει την επέκταση κάποιου ταιριάσματος άμεσα όταν παρουσιαστούν περισσότερες από k διαφορές. Αντί ετα, ο BLAST φι τράρει τα ταιριάσματα με άση τις επιτρεπόμενες διαφορές μετά από τη φάση της επέκτασης. Επιπρόσ ετα, οι 24 επεξερ αστές στους οποίους τρέ ει το BlastReduce επιτρέπουν περισσότερες ειτουρ ίες I/O και ρη ορότερη δια είριση τ ν δεδομέν ν κα ώς περισσότερα δεδομένα είναι δυνατόν να ρίσκονται σε cache. Η τε ευταία δοκιμή εξέτασε την επεκτασιμότητα του BlastReduce σε σ έση με τον αρι μό τ ν επεξερ αστών. Και ια μία και ια δύο επιτρεπόμενες διαφορές, η επιτά υνση του α - ορί μου κυμαίνεται στα ίδια επίπεδα και αυξάνεται ια με α ύτερο αρι μό επεξερ αστών. Αξίζει να σημει εί ότι δεν παρατηρή ηκε η αναμενόμενη επιτά υνση 24x. Αυτό οφεί εται στο

88 Κεφάλαιο 6. Σχετικές Εργασίες overhead που αντιστοι ούσε σε ρόνο συ κρίσιμο με το ρόνο εκτέ εσης ια τον αρι μό τ ν reads που αναζητή ηκαν. Για με α ύτερο αρι μό reads και άρα ια με α ύτερο ρόνο εκτέ- εσης που π έον δεν α είναι συ κρίσιμος με το overhead, αναμένεται κα ύτερη επιτά υνση του α ορί μου. Συμπεράσματα Η συ κεκριμένη ερ ασία αποδεικνύει ότι το Hadoop είναι ένα κατά η ο προ ραμματιστικό περι ά ον ια α όρι μους που ειρίζονται με ά ο ό κο δεδομέν ν, όπ ς είναι οι α όρι μοι που ρησιμοποιούνται στις ιοεπιστήμες. Φυσικά, δεν μπορούν ό οι οι α όρι μοι να υ οποιη ούν σε MapReduce το ίδιο εύκο α και αποδοτικά, επειδή δεν ταιριάζουν απαραίτητα στη φι οσοφία του. Ωστόσο, φαίνεται ότι αρκετοί α όρι μοι που εντοπίζουν τοπικά ταιριάσματα ακο ου ιών μπορούν με κατά η ες τροποποιήσεις να υ οποιη ούν στο περι ά ον αυτό. Η κα ή επεκτασιμότητα του BlastReduce με την αύξηση του αρι μού τ ν κόμ ν υπόσ εται σημαντικές α α ές στην επεξερ ασία του DNA, διατηρώντας σε αμη ά επίπεδα την πο υπ οκότητα του προ ραμματισμού, εφόσον το Hadoop ανα αμ άνει την παρα η οποίηση του α ορί μου στηριζόμενο μόνο στις συναρτήσεις map και reduce. 6.2 CloudBurst Ο Michael C. Schatz, εκτός από το BlastReduce, υ οποίησε στο περι ά ον MapReduce έναν ακόμη α όρι μο που επεξερ άζεται τοπικά ταιριάσματα ακο ου ιών, το CloudBurst [30]. Όπ ς οι α όρι μοι BlastReduce, BLAST, SOAP, RMAP, έτσι και o CloudBurst ρησιμοποιεί την τε νική με τους σπόρους και την επέκτασή τους (seed-and-extend) ια την εύρεση προσε ιστικών ταιριασμάτ ν στο DNA. Ο CloudBurst, σε αντί εση με τους ά ους α όρι μους που αναφέρ ηκαν, είναι παρά η ος και αυτό εξη εί τις διαφορές που παρουσιάζονται στο ρόνο εκτέ εσης τ ν προ ραμμάτ ν και την ευαισ ησία τ ν ταιριασμάτ ν που μπορούν να εντοπίσουν. Το CloudBurst μπορεί να εντοπίσει ό α τα ταιριάσματα τ ν reads με την ακο ου ία αναφοράς με διαφορές ι ότερες από ένα όριο που τί εται από το ρήστη. Τα ά η που επιτρέπονται είναι εισα ές, δια ραφές και τροποποιήσεις. Το CloudBurst παρέ ει στο ρήστη τη δυνατότητα να επι έξει την παρουσίαση μόνο του κα ύτερου ταιριάσματος ια κά ε read παρέ οντας έτσι έξοδο ίδια με αυτή του α ορί μου RMAP και συ κεκριμένα της παρα α ής του RMAP που επιτρέπει μέ ρι κάποιο αρι μό διαφορών. Επομέν ς, το CloudBurst α μπορούσε να αντικαταστήσει το RMAP κατά την ανά υση τ ν δεδομέν ν ό της κα ύτερης επίδοσής του. Ο RMAP, ο οποίος ανήκει στην οικο ένεια τ ν seed-and-extend α ορί μ ν, ρησιμοποιείται ια την εύρεση ακρι ών ταιριασμάτ ν τ ν reads που προκύπτουν από την τε νο ο ία ακο ου ιοποίησης νέας ενιάς (next-generation sequencing technology) μέσα σε ακο ου ίες αναφοράς. Στη φάση της επέκτασης τ ν σπόρ ν ρησιμοποιεί πίνακα κατακερματισμού με μη επικα υπτόμενα mers μήκους m/(k+1). Το μήκος τ ν mers κα ορίζεται με άση την εξής

6.2 CloudBurst 89 παρατήρηση: ια μία ακο ου ία DNA μήκους m ζευ ών άσε ν και επιτρεπτό όριο α ών k, αν ρίσουμε την ακο ου ία σε m/(k+1) τμήματα, τότε του ά ιστον 1 από τα τμήματα α πρέπει να ταιριάζει με την ακο ου ία αναφοράς ια να υπάρ ουν το πο ύ k ά η στο ταίριαμά τους. Στη συνέ εια, τα mers επεκτείνονται ια την εύρεση σπόρ ν. Ο α όρι μος αυτός διαφέρει από τον BLAST, κα ώς ο τε ευταίος απο ηκεύει όλα τα k-mers σε πίνακα κατακερματισμού και ρησιμοποιεί τον α όρι μο Smith-Waterman ια να υπο ο ίσει ταιριάσματα με κενά. Μία παρα α ή του RMAP (RMAPQ) ρησιμοποιεί, μετά τον υπο ο ισμό τ ν ταιριασμάτ ν, τιμές ποιότητας (quality values) ια τη αξιο ό ηση τ ν ταιριασμάτ ν. Η αύξηση της ευαισ ησίας του α ορί μου μπορεί να επιτευ εί είτε με μεί ση του μήκους τ ν σπόρ ν είτε με αύξηση του αρι μού τους, α ά κάτι τέτοιο μπορεί να έ ει σημαντικές επιπτώσεις στο ρόνο εκτέ εσης του προ ράμματος. Για το ό ο αυτό, συνή ς τί εται περιορισμός στο μέ ιστο επιτρεπόμενο αρι μό διαφορών ή στον αρι μό τ ν ταιριασμάτ ν που πρέπει να αναφερ ούν ια κά ε ακο ου ία. Το CloudBurst αποτε εί συνδυασμό τ ν α ορί μ ν RMAP και BLAST, και αναπτύ- ηκε στην υ οποίηση ανοι τού κώδικα του MapReduce, Hadoop. Συ κεκριμένα, όπ ς ο α όρι μος RMAP, κατά τη φάση της επέκτασης ρησιμοποιεί ευρετήριο με μη επικα υπτόμενα mers μήκους m/(k+1) -όπου m το ε ά ιστο μήκος ακο ου ιών και k ο το επιτρεπτό όριο α ών- ια την εύρεση τ ν σπόρ ν και στη συνέ εια προσπα εί να επεκτείνει τους σπόρους ια να υπο ο ίσει τον αρι μό τ ν διαφορών στο συνο ικό ταίριασμα. Όπ ς ο α - όρι μος BLAST, έτσι και ο CloudBurst επιτυ άνει την επέκταση τ ν σπόρ ν ια την εύρεση διακεκομμέν ν ταιριασμάτ ν ρησιμοποιώντας α όρι μο δυναμικού προ ραμματισμού. Ο α όρι μος που ρησιμοποιείται ια την εύρεση τ ν ακρι ών ταιριασμάτ ν είναι ο Landau-Vishkin που αναφέρ ηκε και στην περι ραφή του BlastReduce. Τα δεδομένα εισόδου ρίσκονται σε αρ είο multi-fasta το οποίο μετασ ηματίζεται σε binary Hadoop SequencedFiles. Τα αρ εία αυτά μεταφέρονται στο HDFS ρισμένα σε chunks με έ ους 65kb και έ ουν τη μορφή κ ειδιού/τιμής (id, (sequence, start_offset)). Ακο ου εί η επτομερής περι ραφή τ ν τριών φάσε ν: map, shuffle, reduce. Στη φάση map εξά ονται ζεύ η κ ειδιού-τιμής (seed, MerInfo)=(seed,(id, position, isref, isrc, left_flank, right_flank)). Όταν πρόκειται ια ακο ου ία αναφοράς, ενημερώνονται τα αντίστοι α πεδία στην ε ραφή που δημιουρ είται (isref=1, isrc=0) και το position παίρνει την τιμή της έσης του mer μέσα στην αρ ική ακο ου ία. Αντίστοι η ενημέρ ση ίνεται ια το read (isref=0). Αξίζει να σημει εί ότι σε ενικές ραμμές το π ή ος τ ν ταιριασμάτ ν που πρέπει να εξεταστούν κατανέμονται ομοιόμορφα στους reducers. Στη συνέ εια, στη φάση shuffle ίνεται η εσ τερική ταξινόμηση τ ν ζευ ών που προέκυψαν κατά το προη ούμενο στάδιο με άση το κ ειδί τους. Εφόσον το κ ειδί είναι το mer που μπορεί να ανήκει είτε στο read είτε στις ακο ου ίες αναφοράς, οι ίστες που προκύπτουν μετά την ταξινόμηση περιέ ουν τους σπόρους που ανήκουν και στα δύο είδη ακο ου ιών. Τέ ος, στη φάση reduce ίνεται η επέκταση σε προσε ιστικά ταιριάσματα. Αρ ικά, ρίζονται οι ακο ου ίες ανά ο α με το είδος τους (R: ακο ου ίες αναφοράς, Q: reads) και ια κά ε δυνατό συνδυασμό τ ν δύο ειδών (καρτεσιανό ινόμενο RxQ) υπο ο ίζονται οι διαφορές τους. Ο υπο ο ισμός ίνεται είτε με τον α όρι μο Landau-Vishkin, είτε με

90 Κεφάλαιο 6. Σχετικές Εργασίες κατά η ο μέτρημα τ ν π ευρικών άσε ν και αφαιρούνται πι ανά διπ ότυπα ταιριάσματα. Η δυαδικά αρ εία εξόδου του CloudBurst μπορούν να μετατραπούν με κατά η η επεξερ ασία στο format τ ν αρ εί ν που προκύπτουν από το RMAP, αφού, όπ ς αναφέρ ηκε, ο στό ος είναι ο CloudBurst να αντικαταστήσει τον RMAP. Αν απαιτείται να δο εί ς αποτέ εσμα μόνο το κα ύτερο ταίριασμα ια κά ε read, αντί ια μία ίστα με τα δυνατά ταιριάσματα, όπ ς συμ αίνει με τον α όρι μο RMAPM (παρα α ή του RMAP), τότε πρέπει να ακο ου ήσει ένας ακόμη κύκ ος MapReduce. Ο όρος κα ύτερο ταίριασμα αναφέρεται στο ταίριασμα με τις ι ότερες διαφορές. Κατά το map αυτού του κύκ ου, εξά ονται ζεύ η της μορφής (read, alignmentinfo), τα οποία και ταξινομούνται και συνα ροίζονται με άση το κ ειδί κατά το shuffle. Στη φάση reduce, ε έ ονται τα ταιριάσματα ανά read, ώστε να ρε εί το κα ύτερο ταίριασμα, εφόσον υπάρ ει. Στην ερ ασία αυτή προτείνονται δύο ε τιώσεις του α ορί μου ια κα ύτερη επίδοση: Με κατά η η μετατροπή του α ορί μου, οι reducers μπορούν να ρίσκουν τα δύο κα ύτερα ταιριάσματα. Κατά το φι τράρισμα, μπορεί, αν ρησιμοποιη εί combiner, να ίνεται η εύρεση τ ν 2 κα ύτερ ν ταιριασμάτ ν στη μνήμη. Αποτε έσματα Για την αξιο ό ηση του CloudBurst ρησιμοποιή ηκαν δεδομένα από τις Illumina/Solexa ακο ου ίες, όπ ς έ ινε και με το ΒlastReduce. Μία διαφορά με τον τε ευταίο α όρι μο είναι ότι στο CloudBurst επιτράπηκαν μέ ρι και 4 διαφορές (ενώ στο BlastReduce έ ιναν δοκιμές μόνο ια 1 ή 2 διαφορές). Οι δοκιμές έ ιναν στα ίδια μη ανήματα που έ ινε και το BlastReduce. Η πρώτη δοκιμή εξέταζε την επεκτασιμότητα του CloudBurst με αύξηση του αρι μού τ ν reads και της ευαισ ησίας (μεί ση τ ν επιτρεπόμεν ν διαφορών). Χρησιμοποιή ηκαν 240 mappers και 48 reducers. Παρατηρή ηκε ότι η υ οποίηση αυτή κάνει scale ραμμικά με την αύξηση του αρι μού τ ν reads. Αξίζει να τονισ εί ότι η αναζήτηση ταιριασμάτ ν με 7Μ reads και 4 επιτρέπομενες αναντιστοι ίες δεν μπόρεσε να ο οκ ηρ εί, ό ανεπαρκούς δια έσιμου ώρου σε δίσκο. Γενικά, όσο πιο μικρό σε μέ ε ος είναι το seed, τόσο πιο πο ές ακο ου ίες περνάνε στη φάση της επέκτασης επι αρύνοντας τε ικά το ρόνο της εκτέ εσης. Κατά τη δεύτερη δοκιμή, έ ινε σύ κριση της επίδοσης του CloudBurst με τη σειριακή εκτέ εση του RMAPM. Αν και ρησιμοποιή ηκαν 24 επεξερ αστές και η αναμενόμενη επιτά- υνση ήταν 24, παρατηρή ηκε επιτά υνση μεταξύ 2 και 33 ανά ο α με το επίπεδο ευαισ ησίας και την ακο ου ία αναφοράς. Το ε ονός ότι η επιτά υνση ξεπερνάει σε κάποιες περιπτώσεις την αναμενόμενη τιμή οφεί εται σε ε τιστοποιήσεις της παρά η ης υ οποίησης του CloudBurst σε σ έση με το RMAPM. Στα υψη ότερα επίπεδα ευαισ ησίας ο α όρι μος παρουσίαζε κα ύτερη επιτά υνση, κα ώς ια με ά η ευαισ ησία έ ουμε με α ύτερους ρόνους εκτέ εσης που δεν είναι συ κρίσιμοι με το overhead που εισά ει το framework. Τέ ος, έ ινε δοκιμή ad hoc παρα η οποίησης του RMAP, κατά την οποία ρίστηκαν τα reads σε διάφορα αρ εία εισόδου και εκτε έστηκε το RMAP σε κά ε αρ είο ριστά. Πιο

6.3 Παραλληλοποίηση του αλγορίθμου tblastx 91 συ κεκριμένα, δημιουρ ή ηκαν 24 αρ εία και έ ινε η αρτο ράφηση τ ν ακο ου ιών με άση το ρ μόσ μα 22. Η αναμενόμενη επιτά υνση ήταν και πά ι 24x, στόσο κυμαινόταν από 12x ς 29x ανά ο α με τον επιτρεπόμενο αρι μό α ών. Η επιτά υνση που είναι με α ύτερη από 24x μπορεί να δικαιο ο η εί από την κα ύτερη επίδοση της cache στον α όρι μο RMAP ια μικρές ακο ου ίες. Αν και η επιτά υνση που επιτεύ ηκε στην ad hoc παρα η οποίηση του RMAP είναι παραπ ήσια με αυτή του CloudBurst, δεν έ ει τα π εονεκτήματα που προσφέρει το Hadoop, όπ ς η αντιμετώπιση αποτυ ιών, η δυνατότητα παρακο ού ησης του συστήματος, κα ώς και η κατανομή τ ν δεδομέν ν ώστε να ισομοιράζεται το φορτίο. Δοκιμές στο AMAZON cloud Στο cloud αρ ικά έ ινε δοκιμή αρτο ράφησης τ ν 7Μ ακο ου ιών στο ρ μόσ μα 22 επιτρέποντας ς 4 ά η. Στο Amazon EC2 με την κ άση High-CPU Medium instance -σε 24 πυρήνες- παρατηρή ηκε ε τί ση στο ρόνο εκτέ εσης κατά 300 περίπου δευτερό επτα σε σ έση με το τοπικο cluster που ρησιμοποιή ηκε στα προη ούμενα πειράματα. Τέ ος, εξετάστηκε η επίδοση του CloudBurst σε σ έση με το μέ ε ος του cluster και παρουσιάστηκε σ εδόν ραμμικό speedup. Είναι εντυπ σιακό ότι ενώ η σειριακή εκτέ εση του RMAP ίνεται σε περισσότερες από 14 ώρες, το CloudBurst εκτε είται σε μό ις 8 επτά, παρουσιάζοντας επιτά υνση με α ύτερη από 100. Ένας παρά οντας που δεν επιτρέπει το ιδανικό speedup στα με ά α clusters είναι η ανισοκατανομή του φορτίου που οδη εί ί ους reducers να ερ άζονται ια με α ύτερο ρόνο από τους υπό οιπους. Ωστόσο, μπορούν να ίνουν κατά η ες ρυ μίσεις ώστε να ξεπεραστεί το πρό ημα αυτό. Συμπεράσματα Η ερ ασία αυτή δεί νει ότι η πο ύ κα ή επίδοση του CloudBurst οφεί εται στο Hadoop και τις ευκο ίες που παρέ ει ια παρά η ο και κατανεμημένο προ ραμματισμό. Γενικά, φαίνεται ότι οι seed-and-extend α όρι μοι ταιριάζουν με τη φι οσοφία του MapReduce, είτε ρησιμοποιούν hast table, όπ ς ο BLAST, είτε ό ι. Με οντικά, το CloudBurst α ρησιμοποιήσει δείκτες ποιότητας ια να αξιο ο ήσει τα ταιριάσματα που προκύπτουν. Λό της κα ύτερης επίδοσης του CloudBurst από τον RMAP, α μπορούσε ο CloudBurst να αντικαταστήσει τον τε ευταίο κατά την ανά υση δεδομέν ν. 6.3 Παρα η οποίηση του α ορί μου tblastx Στην ερ ασία Parallelizing bioinformatics applications with MapReduce [9] έ ινε υ οποίηση του α ορί μου tblastx στο περι ά ον MapReduce. Ο tblastx είναι ίσ ς ο πιο απαιτητικός α όρι μος της οικο ένειας α ορί μ ν BLAST. Συνοπτικά, μετατρέπει μία νουκ εοτιδική ακο ου ία (DNA) σε πρ τει νική σε ό α τα reading frames και στη συνέ- εια τη συ κρίνει με μία άση νουκ εοτιδικών ακο ου ιών του NCBI (National Center for Biotechnology Information) που έ ει μεταφραστεί σε ό α τα reading frames.

92 Κεφάλαιο 6. Σχετικές Εργασίες Για την ανάπτυξη της εφαρμο ής ρησιμοποιή ηκε το Hadoop. Ωστόσο, οι συναρτήσεις map και reduce δεν ράφτηκαν σε Java, α ά σε Python άρη στη δυνατότητα Hadoop Streaming που επιτρέπει στο ρήστη να τρέ ει ερ ασίες (jobs) στο κατανεμημένο περι ά - ον ρησιμοποιώντας οποιοδήποτε εκτε έσιμο αρ είο. Το αρ είο εισόδου έ ει μία ακο ου ία (read) ανά ραμμή, την οποία δια άζει ο mapper, υπο ο ίζει τα ταιριάσματα και τα αποτε- έσματα εξά ονται απευ είας ρίς να περάσουν από φάση reduce. Οι δοκιμές της MapReduce υ οποίησης του BLAST έ ιναν σε cluster με 69 κόμ ους που διέ εταν δύο διπύρηνους επεξερ αστές στα 2.4GHz. Οι περισσότεροι κόμ οι εί αν μνήμη 8GB και μερικοί 16GB. Η κόμ οι συνδέονταν σε δίκτυο Gb Ethernet. Σε αυτή την ερ ασία ρησιμοποιή ηκαν δεδομένα της άσης δεδομέν ν nt από τη σε ίδα του NCBI. Όπ ς και σε ά ες ερ ασίες που έ ουν ίνει σε αυτό το περι ά ον, εξασφα- ίστηκε η κα ύτερη κατανομή του φορτίου στους κόμ ους-slaves επι ά οντας π εονασμό τ ν δεδομέν ν στο κατανεμημένο σύστημα. Για την αξιο ό ηση της υ οποίησης έ ιναν μετρήσεις της επεκτασιμότητας ια διάφορα με έ η cluster. Παρατηρή ηκε κα ό scalability μέ ρι τους 21 κόμ ους, δη αδή τους 84 πυρήνες, ενώ ια περισσότερους πυρήνες παρατηρή ηκε με ά η απόκ ιση από την ιδανική καμπύ η. Η αιτία αυτής της συμπεριφοράς είναι η μη κα ή εκμετά ευση τ ν πυρήν ν όταν ρησιμοποιούνται περισσότεροι από ένα όριο, κα ώς τότε μόνο ια μικρό ποσοστό του ρόνου εκτέ εσης ρησιμοποιούνται π ήρ ς δρομο ο ώντας 4 threads. Στο Σ ήμα 6.2 φαίνεται το π ή ος τ ν threads που τρέ ουν σε έναν υπο ο ιστή κατά την εκτέ εση της ερ ασίας που του έ ει ανατε εί. Είναι φανερό ότι δεν αξιοποιούνται επαρκώς οι πόροι του μη ανήματος. Γενικά, ια στα ερό μέ ε ος blocks ο αρι μός τ ν mappers είναι κα οριστικός ια την κατα- Σ ήμα 6.2: Load pattern σε μη άνημα που ανήκει σε cluster 69 υπο ο ιστών νομή του φορτίου στο σύστημα (εφόσον στο συ κεκριμένο πείραμα δεν υπάρ ουν reducers). Από τη μία μεριά, είναι επι υμητό να υπάρ ουν όσο το δυνατόν ι ότεροι mappers (ο αρι μός τους κα ορίζεται από το μέ ε ος τ ν blocks), ό του overhead που εισά εται στην αρ ή κατά την κατανομή τ ν ερ ασιών. Από την ά η μεριά, ια κα ύτερη αξιοποίηση τ ν πόρ ν

6.4 CloudBlast 93 του συστήματος είναι κα ό να υπάρ ουν τόσες map ερ ασίες όσοι είναι οι επεξερ αστές. Αυτό επι ε αιώ ηκε και από μετρήσεις στο σύστημα, κα ώς ο μικρότερος ρόνος εκτέ εσης παρουσιάστηκε όταν οι map ερ ασίες ήταν ισάρι μες με τους επεξερ αστές. Προτάσεις Στην ερ ασία προτείνεται τα δεδομένα εισόδου να έ ουν μέ ε ος block τέτοιο ώστε να δημιουρ ούνται τόσα blocks στο HDFS όσοι είναι οι πυρήνες του κατανεμημένου συστήματος. Επιπρόσ ετα, ια την κα ύτερη εκμετά ευση του συστήματος προτείνεται η εκτέ εση διαδο ικών ερ ασιών. Έτσι, όταν κάποιος πυρήνας τε ειώνει την επεξερ ασία τ ν δεδομέν ν που του ανατέ ηκαν κατά την πρώτη φάση από το Hadoop, αντί να παραμένει άερ ος μέ ρι να τε ειώσουν οι ά οι επεξερ αστές, του ανατί εται νέα ερ ασία. Η εκτέ εση διαδο ικών ερ ασιών συμ ά ει και στον περιορισμό της επίδρασης του αρ ικού overhead. 6.4 CloudBlast Στην ερ ασία τ ν Matsunaga, Tsugawa και Fortes [24] έ ινε παρά η η υ οποίηση του BLAST2, παρα α ής του BLAST, στο MapReduce προ ραμματιστικό μοντέ ο και συ κεκριμένα στο Hadoop. Η παρα α ή BLAST2 ονομάζεται εξε ι μένος α όρι μος BLAST και εντοπίζει ταιριάσματα που περιέ ουν κενά. Η ιδιαιτερότητα αυτής της ερ ασίας σε σ έση με ά ες που αναφέρονται σε υ οποιήσεις MapReduce του BLAST έ κειται στο δίκτυο που ρησιμοποιή ηκε ια τα πειράματα. Συ κεκριμένα η δοκιμή έ ινε σε clusters δύο διαφορετικών τοπο εσιών, του πανεπιστημίου της Florida και του Chicago, που συνδέονται μεταξύ τους με WAN. Κατ αυτόν τον τρόπο έ ινε αξιο ό ηση της υ οποίησης σε μη εικονικό περι ά ον και σε δίκτυα LAN ια να εκτιμη ούν τα overheads τ ν εικονικών δικτύ ν. Επιπ έον, η υ οποίηση MapReduce συ κρίνεται με την αντίστοι η παρά η η υ οποίηση που ρησιμοποιεί τη ι ιο ήκη MPI, το MPIBlast. Όπ ς φαίνεται στο Σ ήμα 6.3, η παρα η οποίηση του α ορί μου BLAST μπορεί να επιτευ εί με δύο τρόπους σε ένα κατανεμημένο σύστημα: Μπορεί να ριστούν οι ακο ου ίες εισόδου ώστε να εκτε είται ο α όρι μος σε υποσύνο α τ ν αρ ικών. Αυτό α μπορούσε να πρα ματοποιη εί ακόμη και με script που κάνει αρ ικά το μοίρασμα τ ν δεδομέν ν και μετά την εκτέ εση του α ορί μου BLAST ανα αμ άνει τη συνέν σή τους. Βέ αια, αυτή η υ οποίηση αντιμετ πίζει προ- ήματα, όπ ς κίνδυνος αποτυ ιών και μη κατά η ος ρισμός τ ν δεδομέν ν, τα οποία ξεπερνιούνται στο προ ραμματιστικό περι ά ον MapReduce. Μπορεί η διαίρεση τ ν ακο ου ιών εισόδου να συνοδευτεί και από διαίρεση της άσης δεδομέν ν που ρησιμοποιείται ια την εύρεση ταιριασμάτ ν. Με αυτόν τον τρόπο η άση δεδομέν ν μπορεί να επεκτα εί, ενώ ταυτό ρονα ράει στον τοπικό δίσκο ή μνήμη τ ν κόμ ν-slaves. Φυσικά, αυτός ο ρισμός της άσης δεδομέν ν επι αρύνει το ρόνο εκτέ εσης, κα ώς είναι απαραίτητη η επικοιν νία τ ν κόμ ν ια συνδυασμό τ ν επιμέρους αποτε εσμάτ ν.

94 Κεφάλαιο 6. Σχετικές Εργασίες Σ ήμα 6.3: Παρα η οποίηση του BLAST2 Η προσαρμο ή του α ορί μου BLAST2 στο περι ά ον MapReduce έ ινε με παρόμοιο τρόπο με αυτόν που περι ράφτηκε στην ερ ασία με τον α όρι μο tblastx. Πιο συ κεκριμένα, ρειάζεται μόνο η φάση map κατά την οποία εφαρμόζεται ο α όρι μος σε ένα υποσύνο ο τ ν ακο ου ιών εισόδου. Στη ενική εκδο ή αυτού του προ ράμματος, δεν ρειάζονται reducers α ά α μπορούσαν να ρησιμοποιη ούν σε ορισμένες ιο ο ικές εφαρμο ές που απαιτούν τα αποτε έσματα του BLAST ταξινομημένα με συ κεκριμένο τρόπο. Στην υ οποίηση αυτή, ο συνδυασμός τ ν αποτε εσμάτ ν έ ινε με ρήση της εντο ής merge του HDFS. Με ίδιο ακρι ώς τρόπο α μπορούσε να ίνει και η προσαρμο ή ά ν α ορί μ ν της οικο ένειας BLAST στο MapReduce. Από άποψη απαιτήσε ν σε hardware, ια την εκτέ εση του α ορί μου BLAST αρκεί ένα cluster με ε κατεστημένο το Hadoop και έκδοση της Java που συνερ άζεται με αυτό το προ ραμματιστικό περι ά ον. Για τους υπο ο ισμούς ρησιμοποιή ηκε cluster με virtual network (ViNe) το οποίο εί ε αναπτυ εί πα ιότερα από τους συ ραφείς της ερ ασίας και παρουσιάζει πο ύ κα ή επίδοση. Για τη ήψη μετρήσε ν επι ειρή ηκε η εν υ άκ ση τ ν ιο ο ικών δεδομέν ν σε VM images και σε virtual disk images, κα ώς οι υπηρεσίες που προσφέρονται από υποδομές cloud διευκο ύνουν τη διατήρηση τ ν δεδομέν ν σε αυτή τη μορφή. Περισσότερες τε νικές π ηροφορίες ια τον τρόπο που αναπτύ ηκε το virtual cluster ια την εκτέ εση του BLAST2 μπορούν να αναζητη ούν στην αντίστοι η ερ ασία [24]. Αποτε έσματα Στα πειράματα ρησιμοποιή ηκε η εκδο ή blastx, η οποία συ κρίνει μία ά ν στη ακο- ου ία DNA μεταφρασμένη σε ό α τα reading frames με μία άση πρ τει νικών ακο ου ιών του NCBI. Έ ιναν κατά η ες μετρήσεις ια την αξιο ό ηση του overhead που εισά εται από την εκτέ εση τ ν προ ραμμάτ ν σε εικονικές μη ανές σε σ έση με φυσικά μη ανήματα. Αποδεί ηκε ότι οι εικονικές μη ανές εισά ουν μικρό overhead το οποίο οφεί εται σε I/O ενέρ ειες που απαιτούνται ια την αναπαρα ή της άσης δεδομέν ν στην κύρια μνήμη κά ε κόμ ου.

6.5 Αναζήτηση SNPs 95 Όπ ς αναφέρ ηκε και παραπάν, στα π αίσια της ερ ασίας, έ ινε σύ κριση μεταξύ δύο παρά η ν υ οποιήσε ν του BLAST: CloudBLAST και mpiblast. Η δεύτερη υ οποίηση ρησιμοποιεί ι ιο ήκες που επιτρέπουν την παρα η οποίηση του α ορί μου με συ ρονισμό τ ν νημάτ ν και κα ορισμό της επικοιν νίας τους. Και οι δύο υ οποιήσεις παρουσιάζουν σημαντικά μικρότερο ρόνο εκτέ εσης από το σειριακό α όρι μο ια με ά ες ακο ου ίες αναφοράς, α ά ο CloudBLAST παρουσιάζει ί ο κα ύτερη επίδοση. Η διαφορά στην επίδοση τ ν παρά η ν α ορί μ ν είναι μά ον αμε ητέα όταν ίνεται αναζήτηση ταιριασμάτ ν σε μικρή ακο ου ία. Τα πειράματα που έ ιναν περι άμ αναν και μετρήσεις στο cluster μόνο του ενός πανεπιστημίου (Florida), α ά και στο συνο ικό WAN-based cluster που δημιούρ ησαν. Η επιτά υνση τ ν α ορί μ ν ήταν κα ύτερη στη δεύτερη περίπτ ση, ό τ ν ισ υρότερ ν επεξερ αστών στο πανεπιστήμιο του Chicago. Συμπεράσματα Εκτός από τη ί ο κα ύτερη επίδοση του α ορί μου CloudBLAST σε σύ κριση με τον mpiblast ια την περίπτ ση τ ν με ά ν ακο ου ιών, ο πρώτος α όρι μος έ ει τα π εονεκτήματα της π ατφόρμας στην οποία υ οποιή ηκε: ευκο ότερη ανάπτυξη ρίς ιδιαίτερες νώσεις παρά η ου προ ραμματισμού, ευκο ότερη δια είριση και συντήρηση του κώδικα, ειρισμός τ ν αποτυ ιών από το σύστημα, μοίρασμα τ ν ερ ασιών στους κόμ ους και ισοκατανομή τ ν δεδομέν ν. Ακόμη, η ρήση Virtual Network φαίνεται ότι διευκο ύνει σημαντικά την επεκτασιμότητα εφαρμο ών, όπ ς οι ιο ο ικές, που δια ειρίζονται πο ύ με ά ο ό κο δεδομέν ν. 6.5 Αναζήτηση SNPs Η ερευνητική ομάδα που έκανε την ερ ασία Searching for SNPs with cloud computing [23] έ ησε να ασ ο η εί με ένα από τα πιο με ά α προ ήματα στον τομέα της ιο ο ίας που αφορά τη συσ έτιση της δομής νουκ εοτιδικών ακο ου ιών με τη ειτουρ ία τους στα διάφορα έμ ια όντα. Αν και το CloudBurst -ο α όρι μος αυτός ανα ύ ηκε παραπάν - καταφέρνει να ρει ταιριάσματα ια εκατομμύρια αν ρώπινες ακο ου ίες, δεν μπορεί να ειριστεί τα δισεκατομμύρια reads που ρειάζονται σε εφαρμο ές αναζήτησης διαφορών μεταξύ πρότυπ ν ακο ου ιών και του αν ρώπινου ονιδιώματος. Με το πρό ημα αυτό και τον εντοπισμό μονονουκ εοτιδικών πο υμορφισμών (SNP) ασ ο είται η ερ ασία που περι ράφεται. Ο εντοπισμός μονονουκ εοτιδικών πο υμορφισμών αποτε εί σημαντική ιο ο ική εφαρμο ή, κατά την οποία αναζητούνται στα DNA τ ν με ών ενός είδους διαφορές σε ένα μόνο νουκ εοτίδιο. Οι παρα α ές αυτές στο DNA τ ν αν ρώπ ν μπορούν να επηρεάσουν τον τρόπο ανάπτυξης ασ ενειών, την αντίδραση σε πα ο όνους ορ ανισμούς, ημικά προι όντα, φάρμακα, εμ ό ια κ.ά. Επίσης, ο εντοπισμός τ ν SNPs αποτε εί κατα υτικό παρά οντα στην ανάπτυξη της εξατομικευμένης ιατρικής, κα ώς και στη συ κριτική ονιδι ματική. Στο π αίσιο της ερ ασίας [23], αναπτύ ηκε ένα ο ισμικό με το όνομα Crossbow. Πρόκειται ια ένα πρό ραμμα-pipeline που συνδυάζει την τα ύτητα της εφαρμο ής Bowtie, η

96 Κεφάλαιο 6. Σχετικές Εργασίες οποία ρίσκει ταιριάσματα μικρών ακο ου ιών με το αν ρώπινο ονιδί μα ρησιμοποιώντας ευρετήριο Burrows-Wheeler (BWT), και του SOAPsnp που εντοπίζει SNPs σε αν ρώπινο ονιδί μα. Αν και η υ οποίηση έ ινε στο Hadoop, δεν ράφτηκαν οι συναρτήσεις map και reduce σε κ άσεις Java, α ά ρησιμοποιή ηκαν wrapper scripts που αξιοποίησαν τη δυνατότητα streaming του Hadoop. Ακο ου εί η περι ραφή τ ν φάσε ν του προ ράμματος, οι οποίες παρουσιάζονται και στο Σ ήμα 6.4. Στο πρό ραμμα Crossbow, στη φάση map, κά ε read αναπαρίσταται από ένα ζεύ ος με κ ειδί το όνομα του read και τιμή την ακο ου ία του read και δείκτες ποιότητας. Στα δεδομένα εισόδου εφαρμόζεται το πρό ραμμα Bowtie και εξά- ονται ζεύ η που περιέ ουν ταιριάσματα. Αξίζει να σημει εί ότι το ευρετήριο που ρησιμοποιεί ο Βοwtie κατανέμεται σε ό ο το cluster με τη ρήση της distributed cache του Hadoop κι έτσι εξασφα ίζεται ότι μπορεί να το προσπε άσει κά ε κόμ- ος. Τα ζεύ η κ ειδί/τιμή που εξά ονται έ ουν ς πρ τεύον κ ειδί το ρ μόσ μα και κάποιο ανα ν ριστικό της διαμέρισης (partition), και ς δευτερεύον κ ειδί τη έση του read μέσα στο ρ μόσ μα. Ακο ου εί η φάση shuffle κατά την οποία κατη οριοποιούνται τα ταιριασμάτα με άση το πρ τεύον κ ειδί και ακο ού ς ταξινομούνται με άση το δευτερεύον κ ειδί τ ν ζευ ών που δημιουρ ή ηκαν. Σ ήμα 6.4: MapReduce Στη φάση reduce, κά ε reducer αμ άνει ό α τα ζεύ η με φάσεις του προ ράμματος το ίδιο κ ειδί και εξά ει ένα μερικό αποτέ εσμα. Πιο ανα υτικά, εισά ονται ζεύ η με τα ταξινομημένα ταιριάσματα του Crossbow προη ούμενου ήματος και ύστερα από επεξερ ασία με το SOAPsnp εξά ονται SNP calls, τα οποία απο ηκεύονται στο HDFS και μεταφέρονται στο τοπικό σύστημα αρ εί ν. Είναι προφανές ότι η αποδοτικότητα του Crossbow ασίζεται στην αποδοτικότητα τ ν 3 φάσε ν του MapReduce. Κάποιες τε νικές επτομέρειες που αφορούν στην προσαρμο ή του Bowtie και SOAPsnp ια τη σ στή ειτουρ ία τους στο Hadoop μπορούν να αναζητη ούν στην ερ ασία [23]. Μετρήσεις-Αποτε έσματα Οι μετρήσεις ια την επίδοση και την επιτυ ία του ο ισμικού Crossbow έ ιναν σε cluster 10 κόμ ν με 4 πυρήνες ο κα ένας, οι οποίοι συνδέονταν σε δίκτυο G Ethernet. Επίσης, η ερευνητική ομάδα ρησιμοποίησε την υπηρεσία Amazon EC2 και συ κεκριμένα, cluster 10, 20 και 40 κόμ ν. Τα ακρι ή κόστη ια τις υπηρεσίες της Amazon παρατί ενται στην

6.5 Αναζήτηση SNPs 97 αντίστοι η ερ ασία. Γενικά, παρατηρή ηκε επιτά υνση ειρότερη από τη ραμμική, ό της ανισοκατανομής φορτίου στις φάσεις map και reduce και της ύπαρξης stragglers (μη ανημάτ ν που είναι πιο αρ ά από τα υπό οιπα και τα οποία κα ορίζουν τε ικά το ρόνο εκτέ εσης του προ ράμματος). Συμπεράσματα Η ερευνητική ομάδα έδειξε ότι είναι δυνατόν να συνδυαστούν με το μοντέ ο MapReduce διάφορες εφαρμο ές, ώστε να επιτευ εί κάποια σύν ετη ειτουρ ία. Συνδύασαν την αναζήτηση ταιριασμάτ ν, η οποία ρειάζεται μόνο τη φάση map ια να υ οποιη εί, με ονοτυπικό α όρι μο ια αναζήτηση SNPs στη φάση reduce. Ο συνδυασμός αυτός κα ιστά δυνατή τη δια είριση πο ύ με ά ου ό κου δεδομέν ν ρίς να υσιάζεται η ακρί εια ή η ευκο ία ρήσης και το κυριότερο είναι ότι εξασφα ίζει πο ύ κα ούς ρόνους εκτέ εσης, αφού ίνεται παρα η οποίηση κατά τις επιμέρους φάσεις εκτέ εσής του. Το νέο ο ισμικό ερ α είο ρησιμοποίησε δύο υπάρ οντα προ ραμμάτα στις φάσεις του MapReduce με μικρές τροποποιήσεις ώστε να είναι συμ ατά με το Hadoop. Τέ ος, στα π αίσια της ερ ασίας έδειξαν ότι το Crossbow μπορεί να τρέξει αποδοτικά τόσο σε τοπικό δίκτυο όσο και σε απομακρυσμένο, κάνοντας ρήση τ ν υπηρεσιών παρό ου cloud.

Κεφά αιο 7 Επί ο ος 7.1 Συμπεράσματα Ένα από τα σημαντικότερα ερ τήματα που έτουν οι ιο ό οι είναι η αναζήτηση προσε ιστικών ταιριασμάτ ν σε ιο ο ικά δεδομένα επιτρέποντας ένα μικρό αρι μό α ών. Στη ενική του μορφή, το πρό ημα εύρεσης προσε ιστικών ταιριασμάτ ν εξαρτάται από το είδος τ ν α ών που αμ άνονται υπόψη και οι ύσεις κυμαίνονται από ραμμικές ς NP-complete. Για με ά ες άσεις δεδομέν ν με ακο ου ίες αναφοράς και με ά ο π ή ος προτύπ ν που πρέπει να αναζητη ούν σε αυτές, το πρό ημα είναι ιδιαίτερα ρονο όρο. Οι ιο ό οι πο ές φορές καταφεύ ουν σε προσε ιστικούς α όρι μους, όπ ς ο BLAST, που ρησιμοποιούν ευριστικές συναρτήσεις και εντοπίζουν τις πιο σημαντικές ύσεις του προ- ήματος τοπικού ταιριάσματος ακο ου ιών. Ωστόσο κάποιες φορές απαιτείται η εύρεση τ ν έ τιστ ν ή και ό ν τ ν ημι-τοπικών ταιριασμάτ ν. Στην παρούσα διπ ματική ασ ο η ήκαμε με την παραλληλοποίηση του προ ήματος αναζήτησης ό ν τ ν προσε ιστικών ταιριασμάτ ν κα ώς οι νέες τε νο ο ίες ακο ου ιοποίησης οδη ούν στην παρα ή πο ύ με ά ου ό κου ιο ο ικών δεδομέν ν που απαιτούν ρή ορη επεξερ ασία και ανά υση και φαίνεται ότι η κατανομή τ ν υπο ο ισμών σε πο ούς υπο ο ιστές α είναι αναπόφευκτη. Για το σκοπό αυτό ρησιμοποιή ηκε το προ ραμματιστικό μοντέ ο MapReduce, το οποίο επιτρέπει τη σ ετικά εύκο η επέκταση του προ ήματος σε πο ούς υπο ο ιστικούς κόμ ους. Υ οποιήσαμε στο περι ά ον MapReduce και συ κρίναμε τρεις α όρι μους που επι ύουν το συ κεκριμένο πρό ημα: α όρι μο δυναμικού προ ραμματισμού α όρι μο πο απ ού ταιριάσματος ακο ου ιών (α όρι μος του Fredriksson) επεκτείναμε τον α όρι μο πο απ ού ταιριάσματος ακο ου ιών ώστε να προη είται ένα στάδιο φι τραρίσματος τ ν προτύπ ν που πρέπει τε ικά να αναζητη ούν με προσε ιστικό τρόπο στη άση δεδομέν ν. Τα πειράματα που έ ιναν σε cluster 13 κόμ ν που στήσαμε στο Πανεπιστήμιο Πε οποννήσου έδειξαν ότι ο α όρι μος δυναμικού προ ραμματισμού παρουσιάζει τη ειρότερη επίδοση, 99

100 Κεφάλαιο 7. Επίλογος ενώ ο α όρι μος φι τραρίσματος είναι τις περισσότερες φορές ο πιο αποδοτικός. Σε ενικές ραμμές, ο α όρι μος δυναμικού προ ραμματισμού είναι 7 με 8 φορές πιο αρ ός από τον α - όρι μο φι τραρίσματος. Ο τε ευταίος α όρι μος παρουσιάζει σημαντικά κα ύτερη επίδοση από τον α όρι μο του Fredriksson όταν αναζητείται με ά ο π ή ος προτύπ ν και όταν το μήκος τους είναι με ά ο. Σε αυτές τις περιπτώσεις το πρόσ ετο στάδιο φι τραρίσματος, εν ένει, απορρίπτει με ά ο ποσοστό τ ν προτύπ ν που πρέπει να εξεταστούν ταυτό ρονα κι έτσι η επίδοση του α ορί μου Fredriksson κατά το δεύτερο στάδιο παρουσιάζει σημαντική ε τί ση. Επιπ έον, δείξαμε ότι ο α όρι μος φι τραρίσματος είναι πιο ρή ορος από τον α όρι μο Fredriksson ια με ά ο ό κο δεδομέν ν και η επιτά υνσή του μπορεί να αυξη- εί περαιτέρ με συνδυασμό τ ν με ά ν άσε ν δεδομέν ν και του με ά ου π ή ους και μήκους ακο ου ιών-προτύπ ν. Από τα πειράματα φάνηκε ακόμη ότι και οι δύο α όρι μοι επεκτείνονται κα ά με την αύξηση του αρι μού τ ν κόμ ν. Τέ ος, δείξαμε ότι ο α όρι μος φι τραρίσματος είναι πιο αποδοτικός ια μικρά και μέτρια ποσοστά επιτρεπόμεν ν α ών. Σε περιπτώσεις όπου απαιτείται η αναζήτηση με ποσοστό α ών με α ύτερο από 10% α πρέπει να ρησιμοποιη εί ο α όρι μος Fredriksson ή κάποιος ά ος α όρι μος που παρουσιάζει την απαιτούμενη ανο ή στα ά η. Γενικά, οι α όρι μοι Fredriksson και φι τραρίσματος εξαρτώνται σε με ά ο α μό από μία παράμετρο, το μήκος τ ν l-grams που ρησιμοποιεί ο α όρι μος Fredriksson. Μπορεί η τιμή l+1 να οδη ήσει σε ρόνο εκτέ εσης διπ άσιο ή ακόμη και τριπ άσιο σε σ έση με την τιμή l και ια το ό ο αυτό α πρέπει η παράμετρος αυτή να επι έ εται με προσο ή. Συμπερασματικά, η ρήση του α ορί μου φι τραρίσματος κα ίσταται κατά η η ια την ανά υση με ά ου ό κου δεδομέν ν. Με αυτόν τον τρόπο, μπορεί να ανταπεξέ ει στις νέες απαιτήσεις που προκύπτουν από το με ά ο ρυ μό παρα ής ιο ο ικών δεδομέν ν από τις νέες τε νο ο ίες ακο ου ιοποίησης. Η ρήση του α ορί μου φι τραρίσματος συνιστάται σε περιπτώσεις όπου απαιτούνται μεταξύ τ ν ά ν και τα έ τιστα ταιριάσματα, οπότε οι π έον διαδεδομένοι προσε ιστικοί α όρι μοι της οικο ένειας BLAST δεν επαρκούν, και το επίπεδο τ ν επιτρεπόμεν ν α ών είναι μικρό ή μέτριο. 7.2 Με οντικές Επεκτάσεις Προτείνονται τρεις ιδέες ια επέκταση της διπ ματικής ερ ασίας: Το πρό ημα του προσε ιστικού ταιριάσματος ακο ου ιών α μπορούσε να επι υ εί με προσέ ιση που διαφέρει από τη φι οσοφία τ ν σειριακών προ ραμμάτ ν. Δεδομένου ότι η εύρεση ακρι ών ταιριασμάτ ν είναι πιο ρή ορη από την εύρεση προσε ιστικών, α μπορούσε να ίνει ανα ή της αναζήτησης προσε ιστικών ταιριασμάτ ν σε ακρι ή σε δύο κύκ ους ς εξής: Κατά τη φάση Map του πρώτου κύκ ου, ίνεται παρα ή ό ν τ ν ακο ου ιών που προκύπτουν από την ακο ου ία-πρότυπο που επι υμούμε να ψάξουμε και οι οποίες διαφέρουν από την αρ ική ακο ου ία το πο ύ σε k σημεία. Κατά τη φάση Reduce, ίνεται η αναζήτηση στη άση δεδομέν ν ακρι ών ταιριασμάτ ν ια ό ες τις ακο ου ίες που παρά ηκαν. Κατά το δεύτερο κύκ ο, η συνάρτηση Map είναι ταυτοτική συνάρτηση και δίνει τα ζεύ η κ ειδιού/τιμής της εισόδου στην έξοδο. Κατά

7.2 Μελλοντικές Επεκτάσεις 101 τη φάση Reduce ίνεται αφαίρεση τ ν διπ ότυπ ν που έ ουν προκύψει. Επειδή κατά τη φάση Μap του πρώτου κύκ ου ενδέ εται να παρα ούν πο ές φορές οι ίδιες ακο- ου ίες, α μπορούσε να μεσο α ήσει ένας ακόμη κύκ ος κατά τον οποίο αφαιρούνται οι διπ ότυπες ακο ου ίες ώστε να αποφευ εί η αναζήτησή τους πο ές φορές. Μπορεί να τροποποιη εί ο α όρι μος φι τραρίσματος που υ οποιή ηκε στα π αίσια της διπ ματικής. Συ κεκριμένα, η φάση Μap, κατά την οποία ίνεται αποκ εισμός κάποι ν τμημάτ ν της άσης δεδομέν ν στα οποία δεν είναι δυνατόν να υπάρ ει ταίριασμα, α μπορούσε να εκτε εί κάποιον α όρι μο πο απ ών ακρι ών ταιριασμάτ ν, αντί να αναζητά σειριακά τα ακρι ή ταιριάσματα τ ν ακο ου ιών-προτύπ ν. Μπορεί να τροποποιη εί η υ οποίηση του α ορί μου φι τραρίσματος ώστε να ρησιμοποιεί την κ άση ChainMapper του Hadoop ια να περιοριστεί το κόστος τ ν ειτουρ ιών εισόδου/εξόδου, κα ώς και η επι άρυνση από την εκτέ εση δύο ξε ριστών ερ ασιών MapReduce. Επειδή η κ άση αυτή δεν έ ει προσαρμοστεί στο νέο API στο οποίο έ ουν υ οποιη εί τα προ ράμματα, α πρέπει είτε να ρησιμοποιη εί το πα ιό API, είτε να ίνει προσαρμο ή της κ άσης στο Hadoop 0.20.2.

Παράρτημα Αʹ Οδη ίες Εκτέ εσης Προ ραμμάτ ν Στο παράρτημα παρουσιάζονται οδη ίες ια την προετοιμασία τ ν δεδομέν ν εισόδου, κα ώς και ια την εκτέ εση τ ν τριών προ ραμμάτ ν που υ οποιή ηκαν. Αʹ.1 Προετοιμασία Δεδομέν ν Στην ενότητα αυτή παρατί ενται οι οδη ίες ρήσης τ ν scripts που ράφτηκαν ια να αποκτούν τα αρ εία FASTA με τα υπό εξέταση ιο ο ικά δεδομένα τη μορφή που πρέπει να έ ουν τα αρ εία εισόδου τ ν προ ραμμάτ ν MapReduce που υ οποιήσαμε. Τα δεδομένα διακρίνονται στις ακο ου ίες αναφοράς και στις ακο ου ίες-πρότυπα, οπότε οι οδη ίες παρουσιάζονται ξε ριστά. Αʹ.1.1 Ακο ου ίες αναφοράς Αν έ ουμε ένα πο ύ με ά ο αρ είο με τις ακο ου ίες αναφοράς, όπ ς αυτό που ρησιμοποιή ηκε ια τα πειράματα (8.4GB), εκτε ούμε το script splitfilepersequence.sh. Το script αυτό παίρνει ς παραμέτρους το αρ είο που έ ουμε να ριστεί σε μικρότερα, τον αρι μό τ ν ραμμών που πρέπει να επανα ηφ ούν σε διαδο ικά αρ εία που περιέ ουν τμήμα της ίδιας ακο ου ίας αναφοράς, κα ώς και τον αρι μό τ ν ραμμών κα ενός από τα αρ εία που α δημιουρ η ούν:./splitfilepersequence.sh <αρ είο εισόδου> < ραμμές επικά υψης> < ραμμές ανά αρ είο εξόδου> Αρ ικά ίνεται ρισμός του αρ είου εισόδου σε αρ εία που έ ουν από μία ο όκ ηρη ακο ου ία αναφοράς και ονομάζονται part1,, partn, όπου N το π ή ος τ ν ακο ου ιών του αρ είου εισόδου. Στη συνέ εια, μέσα στους φακέ ους με ονόματα part1_,, partn_ τοπο ετούνται τα αρ εία εξόδου με τα επι υμητά αρακτηριστικά. 103

104 Παράρτημα αʹ. Οδηγίες Εκτέλεσης Προγραμμάτων Για να πάρουν τα δεδομένα εισόδου την επι υμητή μορφή, το script splitfilepersequence.sh ρησιμοποιεί τα scripts managerepetition.sh και updateheaders.sh, α ά ο ρήστης αρκεί να εκτε έσει μόνο το πρώτο script και να έ ει τα ά α στον ίδιο φάκε ο. Αʹ.1.2 Ακο ου ίες-πρότυπα Αν ο ρήστης επι υμεί να ρησιμοποιήσει έτοιμα αρ εία FASTA από κάποια ι ιο ήκη με ιο ο ικά δεδομένα ια να αναζητήσει τις ακο ου ίες-πρότυπα στη άση δεδομέν ν, τότε μπορεί να ρησιμοποιήσει το script adderrorstoqueries.sh το οποίο προσ έτει στην κατά - η η έση του σ ο ίου τ ν ακο ου ιών-προτύπ ν το επιτρεπτό όριο α ών με το οποίο α πρέπει να επι υ εί το πρό ημα του προσε ιστικού ταιριάσματος τ ν ακο ου ιών. Το script παίρνει ς παραμέτρους το αρ είο με τις ακο ου ίες-πρότυπα (με την επέκτασή του -αν έ ει) και τον αρι μό τ ν α ών../adderrorstoqueries.sh <αρ είο εισόδου> <όριο α ών k> Αν ο ρήστης επι υμεί απ ά να δοκιμάσει τα προ ράμματα, μπορεί να ρησιμοποιήσει το script getexactqueries_generic.sh, το οποίο παίρνει ς παραμέτρους το όνομα του αρ είου εξόδου, το επι υμητό μήκος τ ν ακο ου ιών-προτύπ ν, κα ώς και το όριο τ ν α ών./getexactqueries_generic.sh <όνομα αρ είου εξόδου> <μήκος προτύπ ν> <όριο α ών k> και εξά ει ακο ου ίες από τα αρ εία με τις ακο ου ίες αναφοράς. Για το ό ο αυτό, το script getexactqueries_generic.sh α πρέπει να ρίσκεται στον ίδιο φάκε ο με τα μέρη part1,, partn που δημιουρ ή ηκαν από το αρ ικό αρ είο με τις ακο ου ίες αναφοράς. Στη συνέ- εια ο ρήστης α πρέπει να δια έξει κάποιες από τις ακο ου ίες-πρότυπα που προέκυψαν φροντίζοντας να μην περιέ ουν το ράμμα Ν. Αʹ.2 Οδη ίες εκτέ εσης τ ν MapReduce Προ ραμμάτ ν Οι οδη ίες ια την ε κατάσταση του cluster, κα ώς και την εκκίνηση της ειτουρ ίας του Hadoop περι ράφονται ανα υτικά στο wiki [12]. Για το ό ο αυτό, εδώ παρατί ενται μόνο οι εντο ές που αφορούν στις συ κεκριμένες υ οποιήσεις και προϋπο έτουν Hadoop cluster στο οποίο οι διερ ασίες NameNode, Secondary NameNode, JobTracker, TaskTracker και DataNode έ ουν ξεκινήσει στους αντίστοι ους κόμ ους. Ας υπο έσουμε ότι η ε κατάσταση του Hadoop έ ει ίνει στο φάκε ο /home/mapreduce/ hadoop, τα αρ εία εισόδου με τις ακο ου ίες αναφοράς ρίσκονται στο φάκε ο /home/mapreduce/input και το αρ είο με τις ακο ου ίες-πρότυπα ρίσκεται στο φάκε ο /home/mapreduce και έ εται queries.

αʹ.2 Οδηγίες εκτέλεσης των MapReduce Προγραμμάτων 105 Αρ ικά, ανε άζουμε τα αρ εία εισόδου στο HDFS στο φάκε ο input/: /hadoop$ bin/hadoop fs -put /home/mapreduce/input input Επίσης, ανε άζουμε στο HDFS το αρ είο με τις ακο ου ίες-πρότυπα, το οποίο πρέπει να τοπο ετη εί στη Distributed Cache: /hadoop$ bin/hadoop fs -put /home/mapreduce/queries cache/queries Αʹ.2.1 Δυναμικός Προ ραμματισμός Τοπο ετούμε το αρ είο jar του α ορί μου δυναμικού προ ραμματισμού, dynamicprogramming.jar, στο φάκε ο /home/mapreduce/hadoop. Η εκτέ εσή του ίνεται ς εξής: /hadoop$ bin/hadoop jar dynamicprogramming.jar input output -cache cache/queries όπου ο φάκε ος input ανήκει στο HDFS και είναι ο φάκε ος στον οποίο ανε άσαμε τα αρ εία εισόδου. Ο φάκε ος output είναι και αυτός στο HDFS και μετά το τέ ος της εκτέ- εσης του προ ράμματος περιέ ει αρ εία εξόδου με ταιριάσματα. Αʹ.2.2 Α όρι μος του Fredriksson Στο φάκε ο /home/mapreduce/hadoop τοπο ετούμε το αρ είο jar του α ορί μου του Fredriksson, fredriksson.jar, και το εκτε ούμε ς εξής: /hadoop$ bin/hadoop jar fredriksson.jar <μήκος l-grams> input output - cache cache/queries όπου ο φάκε ος input ανήκει στο HDFS και περιέ ει τα αρ εία εισόδου. Ο φάκε ος output είναι και αυτός στο HDFS και μετά το τέ ος της εκτέ εσης του προ ράμματος περιέ ει αρ εία εξόδου με ταιριάσματα. Η επι ο ή του l πρέπει να ίνει με δοκιμές και ο ρόνος παρουσιάζει σημαντικές διακυμάνσεις ανά ο α με την τιμή αυτή. Αʹ.2.3 Α όρι μος Φι τραρίσματος Στο φάκε ο ε κατάστασης του Hadoop, /home/mapreduce/hadoop, τοπο ετούμε το αρ είο jar του α ορί μου φι τραρίσματος, filtering.jar. Η εκτέ εσή του ίνεται ς εξής: /hadoop$ bin/hadoop jar filtering.jar <μήκος l-grams> input output -cache cache/queries

106 Παράρτημα αʹ. Οδηγίες Εκτέλεσης Προγραμμάτων όπου οι φάκε οι input και output ανήκουν στο HDFS και ο πρώτος περιέ ει τα δεδομένα εισόδου και ο δεύτερος τα ταιριάσματα (δεδομένα εξόδου). Το μήκος τ ν l-grams είναι απαραίτητο ια το δεύτερο κύκ ο Mapreduce. Όπ ς και στον προη ούμενο α όρι μο, η επι ο ή της τιμής l πρέπει να ίνει με δοκιμές. Όπ ς συμ αίνει με ό α τα προ ράμματα MapReduce σημαντικό ρό ο στην εκτέ εση τ ν παραπάν εφαρμο ών παίζουν οι παράμετροι που κα ορίζουν ιδιότητες της κά ε ερ ασίας (job). Μερικές οδη ίες ια αυτές τις παραμέτρους παρατί ενται στο wiki [12], α ά και στις υπό οιπες πη ές που αναφέρ ηκαν στο Κεφά αιο 3. Επίσης, διάφορα προ ήματα που μπορεί να προκύψουν κατά την εκτέ εση τ ν προ ραμμάτ ν ανα ύονται και επι ύονται στο wiki. Αʹ.2.4 Παράδει μα Εκτέ εσης του Α ορί μου Φι τραρίσματος Τα δεδομένα εισόδου ρίσκονται στο φάκε ο filtering2gb/input του HDFS, ενώ τα αρ εία εξόδου απο ηκεύονται στο φάκε ο filtering2gb/output. Στη Distributed Cache τοπο ετείται το αρ είο fasta queries_100_length_100 που ρίσκεται στο φάκε ο cachec του HDFS: /hadoop$ bin/hadoop jar filtering.jar 7 filtering2gb/input filtering2gb/output -cache cachec/queries_100_length_100 10/06/29 21:31:21 WARN mapred.jobclient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same. 10/06/29 21:31:22 INFO input.fileinputformat: Total input paths to process : 149 10/06/29 21:31:22 INFO mapred.jobclient: Running job: job_201006291441_0013 10/06/29 21:31:23 INFO mapred.jobclient: map 0% reduce 0% 10/06/29 21:31:39 INFO mapred.jobclient: map 4% reduce 0% 10/06/29 21:31:40 INFO mapred.jobclient: map 5% reduce 0% 10/06/29 21:31:41 INFO mapred.jobclient: map 10% reduce 0% 10/06/29 21:31:42 INFO mapred.jobclient: map 13% reduce 0% 10/06/29 21:35:48 INFO mapred.jobclient: map 96% reduce 0% 10/06/29 21:35:49 INFO mapred.jobclient: map 97% reduce 0% 10/06/29 21:35:52 INFO mapred.jobclient: map 98% reduce 0% 10/06/29 21:35:56 INFO mapred.jobclient: map 99% reduce 0% 10/06/29 21:36:00 INFO mapred.jobclient: map 100% reduce 0% 10/06/29 21:36:57 INFO mapred.jobclient: Job complete: job_201006291441_0013 10/06/29 21:36:57 INFO mapred.jobclient: Counters: 8 10/06/29 21:36:57 INFO mapred.jobclient: Job Counters 10/06/29 21:36:57 INFO mapred.jobclient: Rack-local map tasks=26 10/06/29 21:36:57 INFO mapred.jobclient: Launched map tasks=154

αʹ.2 Οδηγίες εκτέλεσης των MapReduce Προγραμμάτων 107 10/06/29 21:36:57 INFO mapred.jobclient: Data-local map tasks=128 10/06/29 21:36:57 INFO mapred.jobclient: FileSystemCounters 10/06/29 21:36:57 INFO mapred.jobclient: HDFS_BYTES_READ=2217618284 10/06/29 21:36:57 INFO mapred.jobclient: HDFS_BYTES_WRITTEN=2190784479 10/06/29 21:36:57 INFO mapred.jobclient: Map-Reduce Framework 10/06/29 21:36:57 INFO mapred.jobclient: Map input records=149 10/06/29 21:36:57 INFO mapred.jobclient: Spilled Records=0 10/06/29 21:36:57 INFO mapred.jobclient: Map output records=5044 10/06/29 21:36:57 WARN mapred.jobclient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same. 10/06/29 21:36:57 INFO input.fileinputformat: Total input paths to process : 149 10/06/29 21:36:58 INFO mapred.jobclient: Running job: job_201006291441_0014 10/06/29 21:36:59 INFO mapred.jobclient: map 0% reduce 0% 10/06/29 21:37:12 INFO mapred.jobclient: map 1% reduce 0% 10/06/29 21:37:13 INFO mapred.jobclient: map 8% reduce 0% 10/06/29 21:37:14 INFO mapred.jobclient: map 12% reduce 0% 10/06/29 21:39:47 INFO mapred.jobclient: map 97% reduce 27% 10/06/29 21:39:49 INFO mapred.jobclient: map 99% reduce 27% 10/06/29 21:39:50 INFO mapred.jobclient: map 99% reduce 28% 10/06/29 21:40:04 INFO mapred.jobclient: map 100% reduce 58% 10/06/29 21:40:05 INFO mapred.jobclient: map 100% reduce 84% 10/06/29 21:40:07 INFO mapred.jobclient: map 100% reduce 88% 10/06/29 21:40:08 INFO mapred.jobclient: map 100% reduce 100% 10/06/29 21:40:10 INFO mapred.jobclient: Job complete: job_201006291441_0014 10/06/29 21:40:10 INFO mapred.jobclient: Counters: 18 10/06/29 21:40:10 INFO mapred.jobclient: Job Counters 10/06/29 21:40:10 INFO mapred.jobclient: Launched reduce tasks=21 10/06/29 21:40:10 INFO mapred.jobclient: Rack-local map tasks=6 10/06/29 21:40:10 INFO mapred.jobclient: Launched map tasks=157 10/06/29 21:40:10 INFO mapred.jobclient: Data-local map tasks=151 10/06/29 21:40:10 INFO mapred.jobclient: FileSystemCounters 10/06/29 21:40:10 INFO mapred.jobclient: FILE_BYTES_READ=1965489 10/06/29 21:40:10 INFO mapred.jobclient: HDFS_BYTES_READ=2190784479 10/06/29 21:40:10 INFO mapred.jobclient: FILE_BYTES_WRITTEN=4012522 10/06/29 21:40:10 INFO mapred.jobclient: HDFS_BYTES_WRITTEN=166841 10/06/29 21:40:10 INFO mapred.jobclient: Map-Reduce Framework 10/06/29 21:40:10 INFO mapred.jobclient: Reduce input groups=67 10/06/29 21:40:10 INFO mapred.jobclient: Combine output records=33430

108 Παράρτημα αʹ. Οδηγίες Εκτέλεσης Προγραμμάτων 10/06/29 21:40:10 INFO mapred.jobclient: Map input records=149 10/06/29 21:40:10 INFO mapred.jobclient: Reduce shuffle bytes=1980410 10/06/29 21:40:10 INFO mapred.jobclient: Reduce output records=0 10/06/29 21:40:10 INFO mapred.jobclient: Spilled Records=66860 10/06/29 21:40:10 INFO mapred.jobclient: Map output bytes=1898521 10/06/29 21:40:10 INFO mapred.jobclient: Combine input records=0 10/06/29 21:40:10 INFO mapred.jobclient: Map output records=33430 10/06/29 21:40:10 INFO mapred.jobclient: Reduce input records=33430 Στην παραπάν εκτέ εση φαίνονται οι δύο ερ ασίες (jobs) που εκτε ούνται, μαζί με διάφορα στατιστικά στοι εία ια αυτές, όπ ς ο αρι μός τ ν ε ραφών εισόδου και εξόδου στις φάσεις map και reduce, κα ώς και το π ή ος τ ν tasks που ξεκίνησαν στο cluster. Τα στοι- εία αυτά είναι δια έσιμα και στο web interface του JobTracker (http://bias.cst.uop.gr:50030/- jobtracker.jsp), όπ ς φαίνεται στο σ ήμα Αʹ.1: Επίσης, στο ιστορικό που απο ηκεύει ο JobTracker υπάρ ουν ανα ύσεις ια κά ε ερ ασία, όπ ς αυτή που παρουσιάζεται στο σ ήμα Αʹ.2 αντιστοι εί στο παραπάν παράδει μα:

αʹ.2 Οδηγίες εκτέλεσης των MapReduce Προγραμμάτων 109 Σ ήμα Αʹ.1: Γραφικό περι ά ον εκτέ εσης ερ ασίας στο Hadoop