TWiki
>
CSLab Web
>
LargeScaleDataManagement
>
DistributedProcessingFrameworks
(revision 1) (raw view)
Edit
Attach
The distributed cooperation of computational and storage resources to perform large scale data management is a challenging task. Application specific requirements (e.g. the need to push computation near the data) prohibit the use of typical general purpose job schedulers. To cope with these requirements, "data-aware" distributed data management frameworks have been proposed, with Google's MapRreduce as the most prevalent. MapReduce is inspired by the typical "map" and "reduce" functions found in Lisp and other functional programming languages: a problem is separated in two different phases, the Map and Reduce phase. In the Map phase, non overlapping chunks of the input data get assigned to seperate processes, called mappers, which process their input and emmit a set of intermediate results. In the Reduce phase, these results are fed to a (usually smaller) number of seperate processes called Reducers, that ''summarize'' their input in a smaller number of results that are the solution to the original problem. For more complex situations, a workflow of map and reduce steps is followed, where mappers feed reducers and vice versa. Τυπικές εφαρμογές στις οποίες χρησιμοποιείται η τεχνολογία MapReduce είναι η κατανεμημένη εκτέλεση ταιριάσματος προτύπων (pattern matching), η κατανεμημένη διαλογή (sorting), η διάσχιση γράφων συνδέσμων ιστού, η κατασκευή ανεστραμμένου ευρετηρίου (inverted index), η ανάλυση στοιχείων επισκεψιμότητας διαδικτυακών τόπων, κλπ. Μια υλοποίηση σε Java της αρχιτεκτονικής MapReduce είναι το πρόγραμμα ανοιχτού κώδικα Hadoop . Το Hadoop χρησιμοποιείται τόσο ερευνητικά όσο και επαγγελματικά από ένα μεγάλο αριθμό οργανισμών , ανάμεσά τους και οι Adobe, IBM, Yahoo, Facebook και NY Times. Το Hadoop μπορεί αρκετά εύκολα να χρησιμοποιηθεί σε υποδομές cloud computing όπως το Amazon Elastic Compute Cloud (EC2) (η Amazon προσφέρει την εκτέλεση MapReduce μέσω Hadoop στο EC2 σαν υπηρεσία με την ονομασία Elastic MapReduce [17]). Μάλιστα, στο [18] οι συγγραφείς προτείνουν βελτιώσεις στον αρχικό κώδικα του Hadoop μετά από μελέτη της συμπεριφοράς του στο EC2. Λαμβάνοντας υπόψη την αποδοτικότητα του Map/Reduce και την ευκολία έκφρασης ερωτημάτων μέσω της γλώσσας SQL, γίνεται μια προσπάθεια ενοποίησης των δύο αυτών προσεγγίσεων. Στο [19] οι συγγραφείς συγκρίνουν την MapReduce υλοποίηση του Hadoop με αντίστοιχες επαγγελματικές παράλληλες βάσεις δεδομένων που υποστηρίζουν SQL, εντοπίζουν περιπτώσεις όπου είναι πιο αποδοτικό, και στο [20] προτείνουν ένα υβρίδιο βασισμένο στο Hadoop και το οποίο ενσωματώνει τα θετικά στοιχεία του και των βάσεων αυτών. Επιπλέον, η Yahoo αναπτύσσει και προσφέρει σαν λογισμικό ανοιχτού κώδικα το Pig project [21]. Το Pig προσφέρει δυνατότητες παράλληλης ανάλυσης μεγάλου όγκου δεδομένων χρησιμοποιώντας τεχνικές Map/Reduce, οι οποίες απλουστεύονται και προσφέρονται στον τελικό χρήστη/προγραμματιστή με την μορφή ερωτημάτων SQL. Επιπλέον, το Pig μπορεί να συνεργαστεί με το αποθηκευτικό υπόστρωμα του Hadoop. Το πρόγραμμα ανοιχτού κώδικα Hive [22] προσφέρει και αυτό την δυνατότητα εκτέλεσης map/reduce εργασιών μέσω SQL-like ερωτημάτων. Η εκδοχή της Microsoft είναι το πρόγραμμα Scope [23] το οποίο είναι εγκατεστημένο επάνω από το Dryad [24], την κατανεμημένη πλατφόρμα εκτέλεσης εφαρμογών της.
Edit
|
Attach
|
Watch
|
P
rint version
|
H
istory
:
r3
<
r2
<
r1
|
B
acklinks
|
V
iew topic
|
Raw edit
|
More topic actions...
Topic revision: r1 - 2010-01-19
-
IoannisKonstantinou
CSLab
Research
Research Areas
Activities/Projects
Bibliography Portal
Courses
Computer Architecture
Advanced Computer Architecture
Operating Systems
CSLab
Home
People
CSLab Web
Create New Topic
Index
Search
Changes
Notifications
Statistics
Preferences
No permission to view
TWiki.WebLeftBarWebsList
No permission to view
TWiki.WebTopBar
No permission to view
TWiki.WebBottomBar