SlideShare una empresa de Scribd logo
1 de 63
Descargar para leer sin conexión
Computing Systems Laboratory
School of Electrical and Computer Engineering
National Technical University of Athens
Dr. Ioannis Konstantinou
ikons@cslab.ece.ntua.gr
Big Data
 90% των σημερινών δεδομένων δημιουργήθηκαν τα
τελευταία 2 χρόνια
 Νόμος του Moore: Διπλασιασμός δεδομένων κάθε 18 μήνες
 YouTube: 13 εκατ. ώρες και 700 δις αναπαραγωγές το 2010
 Facebook: 20TB/ημέρα συμπιεσμένα
 CERN/LHC: 40TB/μέρα (15PB/έτος)
 Πολλά, πολλά ακόμα…
 Web logs, αρχεία ομιλιών, ιατρικοί φάκελοι, κλπ
 Ακόμα και μικρές εταιρίες έχουν ανάγκες data analysis!
Πρόβλημα: Έκρηξη δεδομένων
1 EB (Exabyte=1018bytes) = 1000 PB (Petabyte=1015bytes)
Κίνηση δεδομένων κινητής τηλεφωνίας στις ΗΠΑ για το 2010
1.2 ZB (Zettabyte) = 1200 EB
Σύνολο ψηφιακών δεδομένων το 2010
35 ZB (Zettabyte = 1021 bytes)
Εκτίμηση για σύνολο ψηφιακών
δεδομένων το 2020
Λύση: Κλιμακωσιμότητα
(scalability στα ελληνικά)
Πως?
Source: Wikipedia (IBM Roadrunner)
διαίρει και βασίλευε
(divide and conquer στα ελληνικά)
“Εργασία”
w1 w2 w3
r1 r2 r3
“Αποτέλεσμα”
“worker” “worker” “worker”
Partition
Combine
Προκλήσεις παραλληλοποίησης
 Πως αναθέτουμε μονάδες εργασίας σε workers?
 Αν έχουμε περισσότερες μονάδες εργασίας από
workers?
 Εάν οι workers χρειαστεί να μοιραστούν ενδιάμεσα
ημιτελή δεδομένα?
 Πως συνοψίζουμε τέτοιου είδους ενδιάμεσα δεδομένα?
 Πως ξέρουμε ότι όλοι οι workers τελειώσανε?
 Τι γίνεται εάν κάποιοι workers διακοπήκανε?
Τι είναι το MapReduce?
 Ένα προγραμματιστικό μοντέλο
 Ένα προγραμματιστικό πλαίσιο
 Για την ανάπτυξη εφαρμογών οι οποίες
 επεξεργάζονται γρήγορα και παράλληλα τεράστιες ποσότητες
δεδομένων
 Σε συστοιχίες (clusters) υπολογιστών
 Closed-source υλοποίηση Google
 Scientific papers του ’03 και ’04 που το περιγράφουν
 Hadoop: opensource υλοποίηση των αλγορίθμων που
περιγράφονται στα paper
 http://hadoop.apache.org/
Τι είναι το Hadoop?
 Αποτελείται από 2 μεγάλα υποσυστήματα, ένα για data management
(I/O) και ένα για computation (CPU):
 HDFS (Hadoop Distributed File System)
 MapReduce το computation framework που τρέχει «πάνω» από το HDFS
 Το I/O του MapReduce είναι το HDFS
 Γραμμένο σε java: Στην ουσία πρόκειται για μια συλλογή από java
processes που τρέχουν σε ένα σύνολο από machines.
 Υποστηρίζει πολλές γλώσσες μέσω hadoop streaming
 Ποιοι το χρησιμοποιούν:
 Yahoo!
 Amazon
 Facebook
 Twitter
 και πολλοί άλλοι...
HDFS – Κατανεμημένο σύστημα
αρχείων
 Ένα κατανεμημένο κλιμακώσιμο σύστημα αρχείων για
εφαρμογές που διαχειρίζονται σύνολα δεδομένων.
 Κατανεμημένο: τρέχει σε υπολογιστικό cluster
 Κλιμακώσιμο: 10Κ κόμβοι, 100Κ αρχεία 10PB storage
 Closed-source βελτιστοποιήσεις (MapR M5-M7)
 Ο χώρος των αρχείων είναι ενιαίος για όλο το cluster
 Τα αρχεία διασπόνται σε blocks
 Τυπικό μέγεθος block 128 MB.
 Replication: Κάθε block αντιγράφεται σε πολλαπλούς
κόμβους δεδομένων (DataNodes) - default 3 (rack
aware).
Αρχιτεκτονική HDFS/MapReduce
 Αρχιτεκτονική Master/Slave
 HDFS: Ένας κεντρικός NameNode διαχειρίζεται
πολλαπλούς DataNodes
 NameNode: κρατάει ποιος DataNode έχει πoιό αρχείο (σαν FAT)
 DataNodes: «χαζοί» servers που κρατάνε raw file chunks
 MapReduce: Ένας κεντρικός JobTracker διαχειρίζεται
πολλαπλούς TaskTrackers
-NameNode και JobTracker
τρέχουν στον master
-DataNode και TaskTracker
τρέχουν στους slaves
- Data locality
MapReduce
 Το πρόβλημα “σπάει” σε 2 φάσεις, την Map και την Reduce
 Map: Μη αλληλο-επικαλυπτόμενα κομμάτια από
δεδομένα εισόδου (εγγραφές <key,value>) ανατίθενται σε
διαφορετικές διεργασίες (mappers) οι οποίες βγάζουν ένα
σετ από ενδιάμεσα <key,value> αποτελέσματα
 Reduce: Τα δεδομένα της Map φάσης τροφοδοτούνται σε
ένα συνήθως μικρότερο αριθμό διεργασιών (reducers) οι
οποίες “συνοψίζουν” τα αποτελέσματα εισόδου σε
μικρότερο αριθμό <key,value> εγγραφών
Πώς δουλεύει?
Initialization phase
 Η είσοδος ανεβαίνει στο HDFS “χωρίζεται” σε
κομμάτια σταθερού μεγέθους τάξης MB
 Κάθε κομμάτι περιέχει “ζεύγη” εγγραφών <key,value>
 Κάθε μηχάνημα TaskTracker που συμμετέχει στον
υπολογισμό εκτελεί ένα αντίγραφο του προγράμματος
MapReduce σε ένα κομμάτι των δεδομένων
 Ένα από όλα τα μηχανήματα αναλαμβάνει το ρόλο του
master JobTracker. Αυτός αναθέτει εργασίες στα
υπόλοιπα(εργάτες). Οι εργασίες μπορεί να είναι map ή
reduce.
JobTracker (Master)
 Ο jobTracker διατηρεί δομές δεδομένων όπως:
 Κατάσταση μίας εργασίας
 Τοποθεσίες των δεδομένων εισόδου, εξόδου και
ενδιάμεσων αποτελεσμάτων (λογικό αφού τρέχει μαζί με
τον NameNode - HDFS master)
 Ο master είναι υπεύθυνος για το χρονοπρογραμματισμό
της εκτέλεσης των εργασιών
TaskTracker (Slave)
 Ο TaskTracker τρέχει εργασίες που του αναθέτει ο
master.
 Τρέχει στο ίδιο hardware που τρέχει και ο DataNode
(HFDS slave) – (είναι feature, όχι bug…)
 Οι εργασίες μπορεί να είναι είτε Map είτε Reduce
 Συνήθως οι μέγιστες ταυτόχρονες εργασίες που τρέχει
είναι ίσες με τον αριθμό των cores του cpu (για να
πετύχει 100% CPU utilization)
Map εργασία
 Για έναν εργάτη (TaskTracker) που του έχει ανατεθεί μία map
εργασία
 Διαβάζει από το HDFS το κομμάτι της εισόδου(input split) που του
αντιστοιχεί, αναλύει τα ζεύγη <key, value> που προκύπτουν και τα δίνει
σαν είσοδο στη map συνάρτηση.
 Η map συνάρτηση επεξεργάζεται τα ζεύγη και παράγει ενδιάμεσα ζεύγη
και τα συσσωρεύει στη μνήμη.
 Περιοδικά εκτελείται μία συνάρτηση διαίρεσης(partition function). Αυτή
αποθηκεύει τα ενδιάμεσα ζεύγη στον τοπικό δίσκο. Επιπλεόν τα χωρίζει σε
R ομάδες. Η συνάρτηση αυτή μπορεί να προσδιοριστεί από τον χρήστη.
 Πολύ βασική!!!! Βλέπε HashPartitioner, TotalOrderPartitioner, κλπ…
 Όταν η συνάρτηση διαίρεσης ολοκληρώσει την αποθήκευση των ζευγών
ενημερώνει τον master για το που βρίσκονται τα δεδομένα.
 Ο master προωθεί αυτή την πληροφορία στους εργάτες που εκτελούν
reduce εργασίες.
Reduce εργασία
 Για έναν εργάτη που του έχει ανατεθεί μία reduce εργασία
 Διαβάζει από κάθε διεργασία map που έχει εκτελεσθεί τα ζεύγη που
του αντιστοιχούν από τις τοποθεσίες που του υποδεικνύει ο master.
 Κάθε reducer παίρνει από μια συγκεκριμένη από τις R ομάδες
 Όταν όλα τα ενδιάμεσα ζεύγη έχουν ανακτηθεί ταξινομούνται
βάση του key. Όσα values έχουν κοινό key ομαδοποιούνται.
 Εκτελείται η συνάρτηση reduce με είσοδο τα ζεύγη <key,
group_of_values> που προέκυψαν στην προηγούμενη φάση.
 Η reduce επεξεργάζεται τα δεδομένα εισόδου και παράγει τα
τελικά ζεύγη.
 Τα ζεύγη εξόδου προσαρτώνται σε ένα αρχείο στο τοπικό
σύστημα αρχείων. Όταν ολοκληρωθεί η reduce το αρχείο
γίνεται διαθέσιμο στο κατανεμημένο σύστημα αρχείων.
Ολοκλήρωση εργασιών
 Όταν ένας εργάτης ολοκληρώσει την εργασία του
ενημερώνει τον master.
 Όταν όλοι ενημερωσουν τον master τότε αυτός
επιστρέφει τη λειτουργία στο αρχικό πρόγραμμα
του χρήστη.
worker
worker
worker
worker
worker
worker
Input
Map
Map
Map
Reduce
Reduce
Reduce
Master
Output
Part 1
Part 2
Part 3
MapReduce
Παράδειγμα: Μέτρηση λέξεων 1/3
 Στόχος: μέτρηση της συχνότητας εμφάνισης λέξεων σε ένα
μεγάλο σύνολο κειμένων
 Πιθανή χρήση: Εύρεση δημοφιλών url σε webserver logfiles
 Πλάνο υλοποίησης:
 “Ανέβασμα” των κειμένων στο MapReduce
 Γράφω μια map και μια reduce συνάρτηση
 Τρέχω μια MapReduce εργασία
 Παίρνω πίσω τα αποτελέσματα
Παράδειγμα: Μέτρηση λέξεων 2/3
map(key, value):
// key: document name; value: text of document
for each word w in value:
emit(w, 1)
reduce(key, values):
// key: a word; value: an iterator over counts
result = 0
for each count v in values:
result += v
emit(result)
Παράδειγμα: Μέτρηση λέξεων 3/3
(d1, ‘’w1 w2 w4’)
(d2, ‘ w1 w2 w3 w4’)
(w2, 3)
(w2,4)
(w3, 2)
(w3,2)
(w2,3)
(d4, ‘ w1 w2 w3’)
(d5, ‘w1 w3 w4’)
(d8, ‘ w2 w2 w3’)
(d9, ‘w1 w1 w3 w3’)
(d3, ‘ w2 w3 w4’)
(w2,4)
(w1,3)
(w3,2)
(w4,3)
(w3,2)
(w1,7)
(d10, ‘ w2 w1 w4 w3’) (w3,4)
(w2,3) (w2,15)
M=3 mappers R=2 reducers
(w1, 2)
(w4,3)
(w1,3)
(w4,3)
(w1,3)
(w4,1)
(d6, ‘ w1 w4 w2 w2)
(d7, ‘ w4 w2 w1’)
(w1,3)
(w4,3)
(w2,3)
(w1,2)
(w3,4)
(w4,1)
(w3,8)
(w4,7)
Επιπλέον λειτουργίες
Τοπικότητα
 Move computation near the data: Ο master προσπαθεί
να εκτελέσει μία εργασία σε ένα εργάτη “κοντά” στα
δεδομένα εισόδου, ώστε να μειωθεί το εύρος δικτύου
που θα καταναλωθεί.
 Πώς το ξέρει?
Διακριτότητα εργασιών
 Ο αριθμός των προς εκτέλεση εργασιών είναι
συνήθως μεγαλύτερος από το πλήθος των
διαθέσιμων εργατών (data chunks>>workers)
 Ένας εργάτης μπορεί να εκτελέσει περισσότερες
από μία εργασίες
 Έτσι η ισορροπία φόρτου βελτιώνεται και σε
περίπτωση που υπάρξει βλάβη σε έναν εργάτη
υπάρχει γρηγορότερη ανάρρωση με την
επανακατανομή των εργασιών του σε άλλους
Εφεδρικές εργασίες
 Μερικές εργασίες καθυστερούν την ολοκλήρωση τους
και μαζί και την ολοκλήρωση της συνολικής δουλειάς
 Η λύση στο πρόβλημα είναι η δημιουργία αντιγράφων
της εργασίας (speculative execution)
 Μία εργασία θεωρείται ολοκληρωμένη όταν
ενημερώσει τον master αυτή ή ένα αντίγραφο της
Partitioning
 Ένας χρήστης μπορεί να ορίσει μία δική του συνάρτηση
διαίρεσης κατά το shuffling.
 HashPartitioner: Typical “vanilla” partitioner
 Δίκαιος, αλλά δεν διατηρεί συνολική ταξινόμηση
 TotalOrder Partitioner: διατηρεί την συνολική
ταξινόμηση των ενδιάμεσων αποτελεσμάτων
 Αρκετά άδικος σε περιπτώσεις ανομοιόμορφων κατανομών
 Ο τύπος των δεδομένων εισόδου και εξόδου μπορεί να
καθοριστεί από το χρήστη και δεν έχει περιορισμούς
του τι μορφής μπορεί να είναι.
 Η είσοδος ενός reducer είναι πάντα ταξινομημένη
 Υπάρχει δυνατότητα τοπικής εκτέλεσης που εκτελεί
όλες τις εργασίες σειριακά
 Ο master προσφέρει web interfaces για την
 Παρακολούθηση της εκτέλεσης των εργασιών
 Browsing του HDFS
Πότε είναι χρήσιμο?
 Καλή επιλογή για “παράλληλοποιήσιμες” jobs:
 Δεικτοδότηση/ανάλυση log αρχείων
 Ταξινόμηση μεγάλου όγκου δεδομένων
 Ανάλυση εικόνων
• Κακή επιλογή για σειριακές/low latency jobs:
– Υπολογισμός π με ακρίβεια 1,000,000 ψηφία
– Υπολογισμός ακολουθιών Fibonacci
– Αντικατάσταση της MySQL
Apache Mahout
 Συλλογή από βιβλιοθήκες για scalable machine
learning
 “Machine Learning is programming computers to
optimize a performance criterion using example data or
past experience”
Intro. To Machine Learning by E. Alpaydin
 Κλιμακωσιμότητα επιτυγχάνεται με χρήση Hadoop
 Οι αλγόριθμοι του Mahout χρησιμοποιούν το
υπολογιστικό μοντέλο του Map-Reduce: linear
scalability
 Latest release version: Mahout 0.8
Τι υποστηρίζει?
 3C + FPM + 0 = Mahout
 Clustering
 Classification
 Collaborative Filtering
 Frequent Pattern Mining
 Other
Clustering (ομαδοποίηση)
 Ομαδοποίηση βασισμένη σε μια έννοια «ομοιότητας»
 Plenty of Algorithms: K-Means,
Fuzzy K-Means, Mean Shift,
Canopy, Dirichlet
 Γκρουπάρισμα αντικειμένων που μοιάζουν μεταξύ τους
 Έννοια ομοιότητας: Μετρικό απόστασης:
 Euclidean
 Cosine
 Tanimoto
 Manhattan
Classification (Κατάταξη)
 Αναγνώριση “τύπου” ενός νέου αντικειμένου με βάση
τα χαρακτηριστικά του (features)
 Οι τύποι είναι προ-αποφασισμένοι
Dog Cat
Positive
Negative
Classification (Κατάταξη)
 Πληθώρα αλγορίθμων
 Naïve Bayes
 Complementary Naïve Bayes
 Random Forests
 Logistic Regression (SGD)
 Support Vector Machines (patch ready)
 Εκμάθηση μοντέλου από χειροκίνητα καταταγμένα
δεδομένα (training – offline procedure)
 Πρόβλεψη του τύπου ενός νέου αντικειμένου με βάση τα
χαρακτηριστικά του (features) και το υπάρχον μοντέλο
 Twitter sentiment analysis
 Πολλά => Positive, πολλά  => Negative
Collaborative filtering (CF)
 Recommenders
 Πρόβλεψη «αρεσκειών» χρήστη με βάση:
 Τις μέχρι τώρα επιλογές του
 Τις επιλογές παρόμοιων ατόμων με αυτόν (collaborative)
 Πρόταση περιορισμένων επιλογών (filtering)
Collaborative filtering (CF)
 Διάφορα είδη recommenders
 User based
 Item based
 Πλήρες framework για αποθήκευση, online και offline
υπολογισμό προτιμήσεων
 Όπως στην ομαδοποίηση, υπάρχει η έννοια της
ομοιότητας χρηστών ή αντικειμένων
 Cosine, Tanimoto, Pearson and LLR
Παράδειγμα Collaborative Filtering
 Στον τελευταίο χρήστη
μάλλον δεν αρέσει η τηλε-
όραση γιατί το προφίλ του
μοιάζει με αυτό των άλλων
χρηστών στους οποίους
επίσης δεν αρέσει η
τηλεόραση
Frequent pattern mining
 Εύρεση ενδιαφέροντων γκρουπ αντικειμένων με βάση
την συνύπαρξή τους σε ένα dataset
Frequent pattern mining
 Εύρεση των πιο κοινών ταυτόχρονων εμφανίσεων σε:
 Συναλλαγές πωλήσεων
αγόρασε “Γάλα, αυγά και ψωμί”
 Query Logs
ipad -> apple, tablet, iphone
FP-Growth algorithm
Use cases 1/3
 Large Scale Image Conversions
 100 Amazon EC2 Instances, 4TB raw TIFF data
 11 Million PDF in 24 hours and 240$
• Internal log processing
• Reporting, analytics and machine
learning
• Cluster of 1110 machines, 8800 cores and
12PB raw storage
• Open source contributors (Hive)
• Store and process tweets, logs, etc
• Open source contributors (hadoop-lzo)
• Large scale machine learning
Use cases 2/3
 100.000 CPUs in 25.000 computers
 Content/Ads Optimization, Search index
 Machine learning (e.g. spam filtering)
 Open source contributors (Pig)
• Natural language search (through
Powerset)
• 400 nodes in EC2, storage in S3
• Open source contributors (!) to HBase
• ElasticMapReduce service
• On demand elastic Hadoop clusters for the
Cloud
Use cases 3/3
 ETL processing, statistics generation
 Advanced algorithms for behavioral
analysis and targeting
• Used for discovering People you May Know,
and for other apps
• 3X30 node cluster, 16GB RAM and 8TB
storage
• Leading Chinese language search engine
• Search log analysis, data mining
• 300TB per week
• 10 to 500 node clusters
Amazon ElasticMapReduce (EMR)
 hosted Hadoop as a service solution
 Ξεκινάει on-demand ένα preconfigured virtual hadoop
cluster με όσους slaves θέλεις
 Data/Storage
 Αντί για το HDFS μπορεί να έχει I/O operations με το S3
ή το DynamoDB
 Support for HBase (NoSQL)
 Support for big-data analytics tools
 Hive and Pig
Κατανόηση δεδομένων: διανύσματα
X = 5 , Y = 3
(5, 3)
 Το διάνυσμα που χαρακτηρίζεται από το σημείο (5, 3) είναι
Array([5, 3]) ή HashMap([0 => 5], [1 => 3])
Y
X
Παρουσίαση διανυσμάτων – Τα
βασικά
 Από 2-d πάμε σε 3, 4, 5, ….. n-dimensional
 Βλέπουμε το κείμενο σαν ένα “bag of words”.
Π.χ. “she sells sea shells on the sea shore”
 Τώρα, τις αντιστοιχούμε σε ακέραιους
she => 0
sells => 1
sea => 2
and so on
 Το διάνυσμα που προκύπτει είναι [1.0, 1.0, 2.0, … ]
 Μια διάσταση (1d) για κάθε λέξη.
Παράδειγμα k-means clustering
 Διάλεξε μια τυχαία αρχική τοποθέτηση των κέντρων
(centroids) στον n-διάστατο χώρο
 Ανέθεσε τα πιο κοντινά “σημεία” στα centroids
 Ξανα-υπολόγισε το centroid
 Επανέλαβε μέχρι τα προηγούμενα centroids να είναι
πολύ κοντά με τα φρεσκο-υπολογισμένα.
Questions

Más contenido relacionado

La actualidad más candente

Google Bigtable Paper Presentation
Google Bigtable Paper PresentationGoogle Bigtable Paper Presentation
Google Bigtable Paper Presentationvanjakom
 
Virtual Memory
Virtual MemoryVirtual Memory
Virtual Memoryebt
 
Using Netezza Query Plan to Improve Performace
Using Netezza Query Plan to Improve PerformaceUsing Netezza Query Plan to Improve Performace
Using Netezza Query Plan to Improve PerformaceBiju Nair
 
Stata Cheat Sheets (all)
Stata Cheat Sheets (all)Stata Cheat Sheets (all)
Stata Cheat Sheets (all)Laura Hughes
 
MySQL Replication: Pros and Cons
MySQL Replication: Pros and ConsMySQL Replication: Pros and Cons
MySQL Replication: Pros and ConsRachel Li
 
Building a Dataset Search Engine with Spark and Elasticsearch: Spark Summit E...
Building a Dataset Search Engine with Spark and Elasticsearch: Spark Summit E...Building a Dataset Search Engine with Spark and Elasticsearch: Spark Summit E...
Building a Dataset Search Engine with Spark and Elasticsearch: Spark Summit E...Spark Summit
 
The Google File System (GFS)
The Google File System (GFS)The Google File System (GFS)
The Google File System (GFS)Romain Jacotin
 
Community detection in graphs
Community detection in graphsCommunity detection in graphs
Community detection in graphsNicola Barbieri
 
Google File System
Google File SystemGoogle File System
Google File Systemnadikari123
 
google file system
google file systemgoogle file system
google file systemdiptipan
 
Cassandra - Research Paper Overview
Cassandra - Research Paper OverviewCassandra - Research Paper Overview
Cassandra - Research Paper Overviewsameiralk
 
Parallel Algorithm Models
Parallel Algorithm ModelsParallel Algorithm Models
Parallel Algorithm ModelsMartin Coronel
 
Slides for In-Datacenter Performance Analysis of a Tensor Processing Unit
Slides for In-Datacenter Performance Analysis of a Tensor Processing UnitSlides for In-Datacenter Performance Analysis of a Tensor Processing Unit
Slides for In-Datacenter Performance Analysis of a Tensor Processing UnitCarlo C. del Mundo
 
Spatial Data Mining : Seminar
Spatial Data Mining : SeminarSpatial Data Mining : Seminar
Spatial Data Mining : SeminarIpsit Dash
 

La actualidad más candente (20)

Google Bigtable Paper Presentation
Google Bigtable Paper PresentationGoogle Bigtable Paper Presentation
Google Bigtable Paper Presentation
 
Big table
Big tableBig table
Big table
 
Virtual Memory
Virtual MemoryVirtual Memory
Virtual Memory
 
Using Netezza Query Plan to Improve Performace
Using Netezza Query Plan to Improve PerformaceUsing Netezza Query Plan to Improve Performace
Using Netezza Query Plan to Improve Performace
 
Stata Cheat Sheets (all)
Stata Cheat Sheets (all)Stata Cheat Sheets (all)
Stata Cheat Sheets (all)
 
MySQL Replication: Pros and Cons
MySQL Replication: Pros and ConsMySQL Replication: Pros and Cons
MySQL Replication: Pros and Cons
 
Building a Dataset Search Engine with Spark and Elasticsearch: Spark Summit E...
Building a Dataset Search Engine with Spark and Elasticsearch: Spark Summit E...Building a Dataset Search Engine with Spark and Elasticsearch: Spark Summit E...
Building a Dataset Search Engine with Spark and Elasticsearch: Spark Summit E...
 
The Google File System (GFS)
The Google File System (GFS)The Google File System (GFS)
The Google File System (GFS)
 
Community detection in graphs
Community detection in graphsCommunity detection in graphs
Community detection in graphs
 
Google File System
Google File SystemGoogle File System
Google File System
 
Sustainable Computing
Sustainable ComputingSustainable Computing
Sustainable Computing
 
Google file system
Google file systemGoogle file system
Google file system
 
google file system
google file systemgoogle file system
google file system
 
Redis database
Redis databaseRedis database
Redis database
 
IBM GPFS
IBM GPFSIBM GPFS
IBM GPFS
 
Cassandra - Research Paper Overview
Cassandra - Research Paper OverviewCassandra - Research Paper Overview
Cassandra - Research Paper Overview
 
Parallel Algorithm Models
Parallel Algorithm ModelsParallel Algorithm Models
Parallel Algorithm Models
 
Slides for In-Datacenter Performance Analysis of a Tensor Processing Unit
Slides for In-Datacenter Performance Analysis of a Tensor Processing UnitSlides for In-Datacenter Performance Analysis of a Tensor Processing Unit
Slides for In-Datacenter Performance Analysis of a Tensor Processing Unit
 
Spatial Data Mining : Seminar
Spatial Data Mining : SeminarSpatial Data Mining : Seminar
Spatial Data Mining : Seminar
 
Principal component analysis
Principal component analysisPrincipal component analysis
Principal component analysis
 

Similar a Παρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetup

Διαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματα
Διαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματαΔιαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματα
Διαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματαNikolaos Konstantinou
 
Κεφάλαιο 4 Λογισμικό συστήματος
Κεφάλαιο 4 Λογισμικό συστήματοςΚεφάλαιο 4 Λογισμικό συστήματος
Κεφάλαιο 4 Λογισμικό συστήματοςEleni Kokkinou
 
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 3 1
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 3 1Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 3 1
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 3 1Ιωάννου Γιαννάκης
 
Κ3_1_Λειτουργικά_Συστήματα_NC.pdf
Κ3_1_Λειτουργικά_Συστήματα_NC.pdfΚ3_1_Λειτουργικά_Συστήματα_NC.pdf
Κ3_1_Λειτουργικά_Συστήματα_NC.pdfssuserc3950c
 
C2 2 microprocessor-cpu
C2 2 microprocessor-cpuC2 2 microprocessor-cpu
C2 2 microprocessor-cpupapettas
 
Angelos kaltsikis
Angelos kaltsikisAngelos kaltsikis
Angelos kaltsikisISSEL
 
2.2.6 ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ
2.2.6 ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ2.2.6 ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ
2.2.6 ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝAnastasia Stathopoulou
 
Εισήγηση Ημερίδα ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου
Εισήγηση Ημερίδα ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος ΘεοδώρουΕισήγηση Ημερίδα ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου
Εισήγηση Ημερίδα ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρουfthplinet
 
DATAMANAGEMENT.GR - DIGITAL TRANSFORMATION AND STRATEGY
DATAMANAGEMENT.GR - DIGITAL TRANSFORMATION AND STRATEGYDATAMANAGEMENT.GR - DIGITAL TRANSFORMATION AND STRATEGY
DATAMANAGEMENT.GR - DIGITAL TRANSFORMATION AND STRATEGYGeorgeDiamandis11
 
Big Data with Apache Spark and Graphx
Big Data with Apache Spark and GraphxBig Data with Apache Spark and Graphx
Big Data with Apache Spark and GraphxGeorge Sidiras
 
A rule-based approach for the real-time semantic annotation in context-aware ...
A rule-based approach for the real-time semantic annotation in context-aware ...A rule-based approach for the real-time semantic annotation in context-aware ...
A rule-based approach for the real-time semantic annotation in context-aware ...Nikolaos Konstantinou
 
ΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΩΝ
ΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΩΝΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΩΝ
ΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΩΝ3lykgala
 
Εμπλουτισμένη εισήγηση ημερίδας ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου (χωρίς vi...
Εμπλουτισμένη εισήγηση ημερίδας ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου (χωρίς vi...Εμπλουτισμένη εισήγηση ημερίδας ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου (χωρίς vi...
Εμπλουτισμένη εισήγηση ημερίδας ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου (χωρίς vi...fthplinet
 
βασικές έννοιες λειτουργικών συστημάτων
βασικές έννοιες λειτουργικών συστημάτωνβασικές έννοιες λειτουργικών συστημάτων
βασικές έννοιες λειτουργικών συστημάτωνeseralid
 
κεφάλαιο 3 απαντήσεις στις ερωτήσεις βιβλίου
κεφάλαιο 3   απαντήσεις στις ερωτήσεις βιβλίουκεφάλαιο 3   απαντήσεις στις ερωτήσεις βιβλίου
κεφάλαιο 3 απαντήσεις στις ερωτήσεις βιβλίουΤΑΤΙΑΝΑ ΠΕΤΡΟΠΟΥΛΟΥ
 
Theofilos Georgiadis: Library recommendation system for the reuse of software...
Theofilos Georgiadis: Library recommendation system for the reuse of software...Theofilos Georgiadis: Library recommendation system for the reuse of software...
Theofilos Georgiadis: Library recommendation system for the reuse of software...Manos Tsardoulias
 

Similar a Παρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetup (20)

Διαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματα
Διαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματαΔιαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματα
Διαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματα
 
Κεφάλαιο 4 Λογισμικό συστήματος
Κεφάλαιο 4 Λογισμικό συστήματοςΚεφάλαιο 4 Λογισμικό συστήματος
Κεφάλαιο 4 Λογισμικό συστήματος
 
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 3 1
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 3 1Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 3 1
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 3 1
 
Κ3_1_Λειτουργικά_Συστήματα_NC.pdf
Κ3_1_Λειτουργικά_Συστήματα_NC.pdfΚ3_1_Λειτουργικά_Συστήματα_NC.pdf
Κ3_1_Λειτουργικά_Συστήματα_NC.pdf
 
C2 2 microprocessor-cpu
C2 2 microprocessor-cpuC2 2 microprocessor-cpu
C2 2 microprocessor-cpu
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
Angelos kaltsikis
Angelos kaltsikisAngelos kaltsikis
Angelos kaltsikis
 
2.2.6 ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ
2.2.6 ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ2.2.6 ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ
2.2.6 ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ
 
Εισήγηση Ημερίδα ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου
Εισήγηση Ημερίδα ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος ΘεοδώρουΕισήγηση Ημερίδα ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου
Εισήγηση Ημερίδα ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου
 
Exercise3
Exercise3Exercise3
Exercise3
 
Git intro
Git introGit intro
Git intro
 
DATAMANAGEMENT.GR - DIGITAL TRANSFORMATION AND STRATEGY
DATAMANAGEMENT.GR - DIGITAL TRANSFORMATION AND STRATEGYDATAMANAGEMENT.GR - DIGITAL TRANSFORMATION AND STRATEGY
DATAMANAGEMENT.GR - DIGITAL TRANSFORMATION AND STRATEGY
 
Big Data with Apache Spark and Graphx
Big Data with Apache Spark and GraphxBig Data with Apache Spark and Graphx
Big Data with Apache Spark and Graphx
 
A rule-based approach for the real-time semantic annotation in context-aware ...
A rule-based approach for the real-time semantic annotation in context-aware ...A rule-based approach for the real-time semantic annotation in context-aware ...
A rule-based approach for the real-time semantic annotation in context-aware ...
 
ΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΩΝ
ΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΩΝΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΩΝ
ΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΩΝ
 
Εμπλουτισμένη εισήγηση ημερίδας ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου (χωρίς vi...
Εμπλουτισμένη εισήγηση ημερίδας ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου (χωρίς vi...Εμπλουτισμένη εισήγηση ημερίδας ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου (χωρίς vi...
Εμπλουτισμένη εισήγηση ημερίδας ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου (χωρίς vi...
 
εντοτητα 2.2
εντοτητα 2.2εντοτητα 2.2
εντοτητα 2.2
 
βασικές έννοιες λειτουργικών συστημάτων
βασικές έννοιες λειτουργικών συστημάτωνβασικές έννοιες λειτουργικών συστημάτων
βασικές έννοιες λειτουργικών συστημάτων
 
κεφάλαιο 3 απαντήσεις στις ερωτήσεις βιβλίου
κεφάλαιο 3   απαντήσεις στις ερωτήσεις βιβλίουκεφάλαιο 3   απαντήσεις στις ερωτήσεις βιβλίου
κεφάλαιο 3 απαντήσεις στις ερωτήσεις βιβλίου
 
Theofilos Georgiadis: Library recommendation system for the reuse of software...
Theofilos Georgiadis: Library recommendation system for the reuse of software...Theofilos Georgiadis: Library recommendation system for the reuse of software...
Theofilos Georgiadis: Library recommendation system for the reuse of software...
 

Παρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetup

  • 1. Computing Systems Laboratory School of Electrical and Computer Engineering National Technical University of Athens Dr. Ioannis Konstantinou ikons@cslab.ece.ntua.gr
  • 2. Big Data  90% των σημερινών δεδομένων δημιουργήθηκαν τα τελευταία 2 χρόνια  Νόμος του Moore: Διπλασιασμός δεδομένων κάθε 18 μήνες  YouTube: 13 εκατ. ώρες και 700 δις αναπαραγωγές το 2010  Facebook: 20TB/ημέρα συμπιεσμένα  CERN/LHC: 40TB/μέρα (15PB/έτος)  Πολλά, πολλά ακόμα…  Web logs, αρχεία ομιλιών, ιατρικοί φάκελοι, κλπ  Ακόμα και μικρές εταιρίες έχουν ανάγκες data analysis!
  • 3. Πρόβλημα: Έκρηξη δεδομένων 1 EB (Exabyte=1018bytes) = 1000 PB (Petabyte=1015bytes) Κίνηση δεδομένων κινητής τηλεφωνίας στις ΗΠΑ για το 2010 1.2 ZB (Zettabyte) = 1200 EB Σύνολο ψηφιακών δεδομένων το 2010 35 ZB (Zettabyte = 1021 bytes) Εκτίμηση για σύνολο ψηφιακών δεδομένων το 2020
  • 6. διαίρει και βασίλευε (divide and conquer στα ελληνικά) “Εργασία” w1 w2 w3 r1 r2 r3 “Αποτέλεσμα” “worker” “worker” “worker” Partition Combine
  • 7. Προκλήσεις παραλληλοποίησης  Πως αναθέτουμε μονάδες εργασίας σε workers?  Αν έχουμε περισσότερες μονάδες εργασίας από workers?  Εάν οι workers χρειαστεί να μοιραστούν ενδιάμεσα ημιτελή δεδομένα?  Πως συνοψίζουμε τέτοιου είδους ενδιάμεσα δεδομένα?  Πως ξέρουμε ότι όλοι οι workers τελειώσανε?  Τι γίνεται εάν κάποιοι workers διακοπήκανε?
  • 8. Τι είναι το MapReduce?  Ένα προγραμματιστικό μοντέλο  Ένα προγραμματιστικό πλαίσιο  Για την ανάπτυξη εφαρμογών οι οποίες  επεξεργάζονται γρήγορα και παράλληλα τεράστιες ποσότητες δεδομένων  Σε συστοιχίες (clusters) υπολογιστών  Closed-source υλοποίηση Google  Scientific papers του ’03 και ’04 που το περιγράφουν  Hadoop: opensource υλοποίηση των αλγορίθμων που περιγράφονται στα paper  http://hadoop.apache.org/
  • 9. Τι είναι το Hadoop?  Αποτελείται από 2 μεγάλα υποσυστήματα, ένα για data management (I/O) και ένα για computation (CPU):  HDFS (Hadoop Distributed File System)  MapReduce το computation framework που τρέχει «πάνω» από το HDFS  Το I/O του MapReduce είναι το HDFS  Γραμμένο σε java: Στην ουσία πρόκειται για μια συλλογή από java processes που τρέχουν σε ένα σύνολο από machines.  Υποστηρίζει πολλές γλώσσες μέσω hadoop streaming  Ποιοι το χρησιμοποιούν:  Yahoo!  Amazon  Facebook  Twitter  και πολλοί άλλοι...
  • 10. HDFS – Κατανεμημένο σύστημα αρχείων  Ένα κατανεμημένο κλιμακώσιμο σύστημα αρχείων για εφαρμογές που διαχειρίζονται σύνολα δεδομένων.  Κατανεμημένο: τρέχει σε υπολογιστικό cluster  Κλιμακώσιμο: 10Κ κόμβοι, 100Κ αρχεία 10PB storage  Closed-source βελτιστοποιήσεις (MapR M5-M7)  Ο χώρος των αρχείων είναι ενιαίος για όλο το cluster  Τα αρχεία διασπόνται σε blocks  Τυπικό μέγεθος block 128 MB.  Replication: Κάθε block αντιγράφεται σε πολλαπλούς κόμβους δεδομένων (DataNodes) - default 3 (rack aware).
  • 11. Αρχιτεκτονική HDFS/MapReduce  Αρχιτεκτονική Master/Slave  HDFS: Ένας κεντρικός NameNode διαχειρίζεται πολλαπλούς DataNodes  NameNode: κρατάει ποιος DataNode έχει πoιό αρχείο (σαν FAT)  DataNodes: «χαζοί» servers που κρατάνε raw file chunks  MapReduce: Ένας κεντρικός JobTracker διαχειρίζεται πολλαπλούς TaskTrackers -NameNode και JobTracker τρέχουν στον master -DataNode και TaskTracker τρέχουν στους slaves - Data locality
  • 12. MapReduce  Το πρόβλημα “σπάει” σε 2 φάσεις, την Map και την Reduce  Map: Μη αλληλο-επικαλυπτόμενα κομμάτια από δεδομένα εισόδου (εγγραφές <key,value>) ανατίθενται σε διαφορετικές διεργασίες (mappers) οι οποίες βγάζουν ένα σετ από ενδιάμεσα <key,value> αποτελέσματα  Reduce: Τα δεδομένα της Map φάσης τροφοδοτούνται σε ένα συνήθως μικρότερο αριθμό διεργασιών (reducers) οι οποίες “συνοψίζουν” τα αποτελέσματα εισόδου σε μικρότερο αριθμό <key,value> εγγραφών
  • 14. Initialization phase  Η είσοδος ανεβαίνει στο HDFS “χωρίζεται” σε κομμάτια σταθερού μεγέθους τάξης MB  Κάθε κομμάτι περιέχει “ζεύγη” εγγραφών <key,value>  Κάθε μηχάνημα TaskTracker που συμμετέχει στον υπολογισμό εκτελεί ένα αντίγραφο του προγράμματος MapReduce σε ένα κομμάτι των δεδομένων  Ένα από όλα τα μηχανήματα αναλαμβάνει το ρόλο του master JobTracker. Αυτός αναθέτει εργασίες στα υπόλοιπα(εργάτες). Οι εργασίες μπορεί να είναι map ή reduce.
  • 15. JobTracker (Master)  Ο jobTracker διατηρεί δομές δεδομένων όπως:  Κατάσταση μίας εργασίας  Τοποθεσίες των δεδομένων εισόδου, εξόδου και ενδιάμεσων αποτελεσμάτων (λογικό αφού τρέχει μαζί με τον NameNode - HDFS master)  Ο master είναι υπεύθυνος για το χρονοπρογραμματισμό της εκτέλεσης των εργασιών
  • 16. TaskTracker (Slave)  Ο TaskTracker τρέχει εργασίες που του αναθέτει ο master.  Τρέχει στο ίδιο hardware που τρέχει και ο DataNode (HFDS slave) – (είναι feature, όχι bug…)  Οι εργασίες μπορεί να είναι είτε Map είτε Reduce  Συνήθως οι μέγιστες ταυτόχρονες εργασίες που τρέχει είναι ίσες με τον αριθμό των cores του cpu (για να πετύχει 100% CPU utilization)
  • 17. Map εργασία  Για έναν εργάτη (TaskTracker) που του έχει ανατεθεί μία map εργασία  Διαβάζει από το HDFS το κομμάτι της εισόδου(input split) που του αντιστοιχεί, αναλύει τα ζεύγη <key, value> που προκύπτουν και τα δίνει σαν είσοδο στη map συνάρτηση.  Η map συνάρτηση επεξεργάζεται τα ζεύγη και παράγει ενδιάμεσα ζεύγη και τα συσσωρεύει στη μνήμη.  Περιοδικά εκτελείται μία συνάρτηση διαίρεσης(partition function). Αυτή αποθηκεύει τα ενδιάμεσα ζεύγη στον τοπικό δίσκο. Επιπλεόν τα χωρίζει σε R ομάδες. Η συνάρτηση αυτή μπορεί να προσδιοριστεί από τον χρήστη.  Πολύ βασική!!!! Βλέπε HashPartitioner, TotalOrderPartitioner, κλπ…  Όταν η συνάρτηση διαίρεσης ολοκληρώσει την αποθήκευση των ζευγών ενημερώνει τον master για το που βρίσκονται τα δεδομένα.  Ο master προωθεί αυτή την πληροφορία στους εργάτες που εκτελούν reduce εργασίες.
  • 18. Reduce εργασία  Για έναν εργάτη που του έχει ανατεθεί μία reduce εργασία  Διαβάζει από κάθε διεργασία map που έχει εκτελεσθεί τα ζεύγη που του αντιστοιχούν από τις τοποθεσίες που του υποδεικνύει ο master.  Κάθε reducer παίρνει από μια συγκεκριμένη από τις R ομάδες  Όταν όλα τα ενδιάμεσα ζεύγη έχουν ανακτηθεί ταξινομούνται βάση του key. Όσα values έχουν κοινό key ομαδοποιούνται.  Εκτελείται η συνάρτηση reduce με είσοδο τα ζεύγη <key, group_of_values> που προέκυψαν στην προηγούμενη φάση.  Η reduce επεξεργάζεται τα δεδομένα εισόδου και παράγει τα τελικά ζεύγη.  Τα ζεύγη εξόδου προσαρτώνται σε ένα αρχείο στο τοπικό σύστημα αρχείων. Όταν ολοκληρωθεί η reduce το αρχείο γίνεται διαθέσιμο στο κατανεμημένο σύστημα αρχείων.
  • 19. Ολοκλήρωση εργασιών  Όταν ένας εργάτης ολοκληρώσει την εργασία του ενημερώνει τον master.  Όταν όλοι ενημερωσουν τον master τότε αυτός επιστρέφει τη λειτουργία στο αρχικό πρόγραμμα του χρήστη.
  • 22. Παράδειγμα: Μέτρηση λέξεων 1/3  Στόχος: μέτρηση της συχνότητας εμφάνισης λέξεων σε ένα μεγάλο σύνολο κειμένων  Πιθανή χρήση: Εύρεση δημοφιλών url σε webserver logfiles  Πλάνο υλοποίησης:  “Ανέβασμα” των κειμένων στο MapReduce  Γράφω μια map και μια reduce συνάρτηση  Τρέχω μια MapReduce εργασία  Παίρνω πίσω τα αποτελέσματα
  • 23. Παράδειγμα: Μέτρηση λέξεων 2/3 map(key, value): // key: document name; value: text of document for each word w in value: emit(w, 1) reduce(key, values): // key: a word; value: an iterator over counts result = 0 for each count v in values: result += v emit(result)
  • 24. Παράδειγμα: Μέτρηση λέξεων 3/3 (d1, ‘’w1 w2 w4’) (d2, ‘ w1 w2 w3 w4’) (w2, 3) (w2,4) (w3, 2) (w3,2) (w2,3) (d4, ‘ w1 w2 w3’) (d5, ‘w1 w3 w4’) (d8, ‘ w2 w2 w3’) (d9, ‘w1 w1 w3 w3’) (d3, ‘ w2 w3 w4’) (w2,4) (w1,3) (w3,2) (w4,3) (w3,2) (w1,7) (d10, ‘ w2 w1 w4 w3’) (w3,4) (w2,3) (w2,15) M=3 mappers R=2 reducers (w1, 2) (w4,3) (w1,3) (w4,3) (w1,3) (w4,1) (d6, ‘ w1 w4 w2 w2) (d7, ‘ w4 w2 w1’) (w1,3) (w4,3) (w2,3) (w1,2) (w3,4) (w4,1) (w3,8) (w4,7)
  • 26. Τοπικότητα  Move computation near the data: Ο master προσπαθεί να εκτελέσει μία εργασία σε ένα εργάτη “κοντά” στα δεδομένα εισόδου, ώστε να μειωθεί το εύρος δικτύου που θα καταναλωθεί.  Πώς το ξέρει?
  • 27. Διακριτότητα εργασιών  Ο αριθμός των προς εκτέλεση εργασιών είναι συνήθως μεγαλύτερος από το πλήθος των διαθέσιμων εργατών (data chunks>>workers)  Ένας εργάτης μπορεί να εκτελέσει περισσότερες από μία εργασίες  Έτσι η ισορροπία φόρτου βελτιώνεται και σε περίπτωση που υπάρξει βλάβη σε έναν εργάτη υπάρχει γρηγορότερη ανάρρωση με την επανακατανομή των εργασιών του σε άλλους
  • 28. Εφεδρικές εργασίες  Μερικές εργασίες καθυστερούν την ολοκλήρωση τους και μαζί και την ολοκλήρωση της συνολικής δουλειάς  Η λύση στο πρόβλημα είναι η δημιουργία αντιγράφων της εργασίας (speculative execution)  Μία εργασία θεωρείται ολοκληρωμένη όταν ενημερώσει τον master αυτή ή ένα αντίγραφο της
  • 29. Partitioning  Ένας χρήστης μπορεί να ορίσει μία δική του συνάρτηση διαίρεσης κατά το shuffling.  HashPartitioner: Typical “vanilla” partitioner  Δίκαιος, αλλά δεν διατηρεί συνολική ταξινόμηση  TotalOrder Partitioner: διατηρεί την συνολική ταξινόμηση των ενδιάμεσων αποτελεσμάτων  Αρκετά άδικος σε περιπτώσεις ανομοιόμορφων κατανομών  Ο τύπος των δεδομένων εισόδου και εξόδου μπορεί να καθοριστεί από το χρήστη και δεν έχει περιορισμούς του τι μορφής μπορεί να είναι.
  • 30.  Η είσοδος ενός reducer είναι πάντα ταξινομημένη  Υπάρχει δυνατότητα τοπικής εκτέλεσης που εκτελεί όλες τις εργασίες σειριακά  Ο master προσφέρει web interfaces για την  Παρακολούθηση της εκτέλεσης των εργασιών  Browsing του HDFS
  • 31. Πότε είναι χρήσιμο?  Καλή επιλογή για “παράλληλοποιήσιμες” jobs:  Δεικτοδότηση/ανάλυση log αρχείων  Ταξινόμηση μεγάλου όγκου δεδομένων  Ανάλυση εικόνων • Κακή επιλογή για σειριακές/low latency jobs: – Υπολογισμός π με ακρίβεια 1,000,000 ψηφία – Υπολογισμός ακολουθιών Fibonacci – Αντικατάσταση της MySQL
  • 32. Apache Mahout  Συλλογή από βιβλιοθήκες για scalable machine learning  “Machine Learning is programming computers to optimize a performance criterion using example data or past experience” Intro. To Machine Learning by E. Alpaydin  Κλιμακωσιμότητα επιτυγχάνεται με χρήση Hadoop  Οι αλγόριθμοι του Mahout χρησιμοποιούν το υπολογιστικό μοντέλο του Map-Reduce: linear scalability  Latest release version: Mahout 0.8
  • 33. Τι υποστηρίζει?  3C + FPM + 0 = Mahout  Clustering  Classification  Collaborative Filtering  Frequent Pattern Mining  Other
  • 34. Clustering (ομαδοποίηση)  Ομαδοποίηση βασισμένη σε μια έννοια «ομοιότητας»  Plenty of Algorithms: K-Means, Fuzzy K-Means, Mean Shift, Canopy, Dirichlet  Γκρουπάρισμα αντικειμένων που μοιάζουν μεταξύ τους  Έννοια ομοιότητας: Μετρικό απόστασης:  Euclidean  Cosine  Tanimoto  Manhattan
  • 35. Classification (Κατάταξη)  Αναγνώριση “τύπου” ενός νέου αντικειμένου με βάση τα χαρακτηριστικά του (features)  Οι τύποι είναι προ-αποφασισμένοι Dog Cat Positive Negative
  • 36. Classification (Κατάταξη)  Πληθώρα αλγορίθμων  Naïve Bayes  Complementary Naïve Bayes  Random Forests  Logistic Regression (SGD)  Support Vector Machines (patch ready)  Εκμάθηση μοντέλου από χειροκίνητα καταταγμένα δεδομένα (training – offline procedure)  Πρόβλεψη του τύπου ενός νέου αντικειμένου με βάση τα χαρακτηριστικά του (features) και το υπάρχον μοντέλο  Twitter sentiment analysis  Πολλά => Positive, πολλά  => Negative
  • 37. Collaborative filtering (CF)  Recommenders  Πρόβλεψη «αρεσκειών» χρήστη με βάση:  Τις μέχρι τώρα επιλογές του  Τις επιλογές παρόμοιων ατόμων με αυτόν (collaborative)  Πρόταση περιορισμένων επιλογών (filtering)
  • 38. Collaborative filtering (CF)  Διάφορα είδη recommenders  User based  Item based  Πλήρες framework για αποθήκευση, online και offline υπολογισμό προτιμήσεων  Όπως στην ομαδοποίηση, υπάρχει η έννοια της ομοιότητας χρηστών ή αντικειμένων  Cosine, Tanimoto, Pearson and LLR
  • 39. Παράδειγμα Collaborative Filtering  Στον τελευταίο χρήστη μάλλον δεν αρέσει η τηλε- όραση γιατί το προφίλ του μοιάζει με αυτό των άλλων χρηστών στους οποίους επίσης δεν αρέσει η τηλεόραση
  • 40. Frequent pattern mining  Εύρεση ενδιαφέροντων γκρουπ αντικειμένων με βάση την συνύπαρξή τους σε ένα dataset
  • 41. Frequent pattern mining  Εύρεση των πιο κοινών ταυτόχρονων εμφανίσεων σε:  Συναλλαγές πωλήσεων αγόρασε “Γάλα, αυγά και ψωμί”  Query Logs ipad -> apple, tablet, iphone FP-Growth algorithm
  • 42. Use cases 1/3  Large Scale Image Conversions  100 Amazon EC2 Instances, 4TB raw TIFF data  11 Million PDF in 24 hours and 240$ • Internal log processing • Reporting, analytics and machine learning • Cluster of 1110 machines, 8800 cores and 12PB raw storage • Open source contributors (Hive) • Store and process tweets, logs, etc • Open source contributors (hadoop-lzo) • Large scale machine learning
  • 43. Use cases 2/3  100.000 CPUs in 25.000 computers  Content/Ads Optimization, Search index  Machine learning (e.g. spam filtering)  Open source contributors (Pig) • Natural language search (through Powerset) • 400 nodes in EC2, storage in S3 • Open source contributors (!) to HBase • ElasticMapReduce service • On demand elastic Hadoop clusters for the Cloud
  • 44. Use cases 3/3  ETL processing, statistics generation  Advanced algorithms for behavioral analysis and targeting • Used for discovering People you May Know, and for other apps • 3X30 node cluster, 16GB RAM and 8TB storage • Leading Chinese language search engine • Search log analysis, data mining • 300TB per week • 10 to 500 node clusters
  • 45. Amazon ElasticMapReduce (EMR)  hosted Hadoop as a service solution  Ξεκινάει on-demand ένα preconfigured virtual hadoop cluster με όσους slaves θέλεις  Data/Storage  Αντί για το HDFS μπορεί να έχει I/O operations με το S3 ή το DynamoDB  Support for HBase (NoSQL)  Support for big-data analytics tools  Hive and Pig
  • 46. Κατανόηση δεδομένων: διανύσματα X = 5 , Y = 3 (5, 3)  Το διάνυσμα που χαρακτηρίζεται από το σημείο (5, 3) είναι Array([5, 3]) ή HashMap([0 => 5], [1 => 3]) Y X
  • 47. Παρουσίαση διανυσμάτων – Τα βασικά  Από 2-d πάμε σε 3, 4, 5, ….. n-dimensional  Βλέπουμε το κείμενο σαν ένα “bag of words”. Π.χ. “she sells sea shells on the sea shore”  Τώρα, τις αντιστοιχούμε σε ακέραιους she => 0 sells => 1 sea => 2 and so on  Το διάνυσμα που προκύπτει είναι [1.0, 1.0, 2.0, … ]  Μια διάσταση (1d) για κάθε λέξη.
  • 48. Παράδειγμα k-means clustering  Διάλεξε μια τυχαία αρχική τοποθέτηση των κέντρων (centroids) στον n-διάστατο χώρο  Ανέθεσε τα πιο κοντινά “σημεία” στα centroids  Ξανα-υπολόγισε το centroid  Επανέλαβε μέχρι τα προηγούμενα centroids να είναι πολύ κοντά με τα φρεσκο-υπολογισμένα.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.