Βίντεο: Hadoop Rack Awareness 2024
Η Apache Hadoop είναι μια ελεύθερη πλατφόρμα λογισμικού ανοιχτού κώδικα για τη σύνταξη και εκτέλεση εφαρμογών που επεξεργάζονται ένα μεγάλο όγκο δεδομένων για τις προβλέψεις. Επιτρέπει μια κατανεμημένη παράλληλη επεξεργασία μεγάλων συνόλων δεδομένων που παράγονται από διαφορετικές πηγές. Ουσιαστικά, είναι ένα ισχυρό εργαλείο για την αποθήκευση και επεξεργασία μεγάλων δεδομένων.
Η Hadoop αποθηκεύει κάθε τύπο δεδομένων, δομημένων ή αδόμητων, από διαφορετικές πηγές - και στη συνέχεια συγκεντρώνει τα δεδομένα αυτά σχεδόν με οποιονδήποτε τρόπο θέλετε. Ο Hadoop χειρίζεται ετερογενή δεδομένα χρησιμοποιώντας κατανεμημένη παράλληλη επεξεργασία - γεγονός που το καθιστά ένα πολύ αποτελεσματικό πλαίσιο για χρήση σε αναλυτικό λογισμικό που ασχολείται με μεγάλα δεδομένα. Δεν υπάρχει αμφιβολία ότι ορισμένες μεγάλες εταιρείες υιοθετούν τον Hadoop, όπως το Facebook, το Yahoo!, Google, IBM, Twitter και LinkedIn.
Πριν από τον Hadoop, οι εταιρείες δεν μπόρεσαν να εκμεταλλευτούν τα μεγάλα δεδομένα, τα οποία δεν αναλύθηκαν και σχεδόν άχρηστα. Το κόστος αποθήκευσης αυτών των δεδομένων σε μια ιδιόκτητη σχεσιακή βάση δεδομένων και η δημιουργία δομημένης μορφής γύρω από αυτήν δεν δικαιολογούσε τα πλεονεκτήματα της ανάλυσης αυτών των δεδομένων και της αξιοποίησής τους.
Η Hadoop, από την άλλη πλευρά, κάνει αυτό το καθήκον απρόσκοπτα - σε ένα κλάσμα του κόστους - επιτρέποντας στις εταιρείες να βρουν πολύτιμες γνώσεις για τα άφθονα δεδομένα που έχουν αποκτήσει και συσσωρεύονται.
Η δύναμη του Hadoop έγκειται στο χειρισμό διαφορετικών τύπων - στην πραγματικότητα, οποιουδήποτε τύπου - δεδομένων: κειμένου, ομιλίας, e-mail, φωτογραφιών, μηνυμάτων, tweets, το ονομάζετε. Η Hadoop φροντίζει για τη συγκέντρωση αυτών των δεδομένων, σε όλη της την ποικιλία, και σας παρέχει τη δυνατότητα να αναζητήσετε όλα τα δεδομένα όπως σας εξυπηρετεί.
Δεν χρειάζεται να δημιουργήσετε ένα σχήμα για να μπορείτε να κατανοήσετε τα δεδομένα σας. Το Hadoop σάς επιτρέπει να αναζητήσετε αυτά τα δεδομένα στην αρχική τους μορφή.
Εκτός από το χειρισμό μεγάλων ποσοτήτων ποικίλων δεδομένων, ο Hadoop είναι ανεκτικός σε σφάλματα, χρησιμοποιώντας απλά προγράμματα που χειρίζονται τον προγραμματισμό της επεξεργασίας που διανέμεται σε πολλές μηχανές. Αυτά τα προγράμματα μπορούν να ανιχνεύσουν αποτυχία υλικού και να εκτρέψουν μια εργασία σε ένα άλλο τρέχον μηχάνημα. Αυτή η ρύθμιση επιτρέπει στην Hadoop να παρέχει υψηλή διαθεσιμότητα, ανεξάρτητα από την αποτυχία υλικού.
Hadoop χρησιμοποιεί δύο κύρια στοιχεία (υποπρογράμματα) για να κάνει τη δουλειά του: MapReduce και Hadoop Distributed File System. Τα δύο συστατικά συνεργάζονται λειτουργικά:
-
MapReduce : Η εφαρμογή του MapReduce από την Hadoop βασίζεται στην έρευνα της Google σε μοντέλα προγραμματισμού για τη διεκπεραίωση μεγάλων συνόλων δεδομένων, διαιρώντας τα σε μικρές ομάδες εργασιών. Το MapReduce χρησιμοποιεί κατανεμημένους αλγόριθμους, σε μια ομάδα υπολογιστών σε ένα σύμπλεγμα, για να επεξεργάζεται μεγάλα σύνολα δεδομένων.Αποτελείται από δύο λειτουργίες:
-
Η λειτουργία Map () που βρίσκεται στον κύριο κόμβο (δικτυωμένος υπολογιστής). Διαχωρίζει το ερώτημα ή την εργασία εισόδου σε μικρότερες υποτάξεις, το οποίο στη συνέχεια διανέμει σε κόμβους εργαζομένων που επεξεργάζονται τις μικρότερες εργασίες και διαβιβάζουν τις απαντήσεις στον κύριο κόμβο. Τα υποσύνολα εκτελούνται παράλληλα σε πολλούς υπολογιστές.
-
Η συνάρτηση Reduce () συλλέγει τα αποτελέσματα όλων των υποσυνόλων και τα συνδυάζει για να παράγει ένα συγκεντρωτικό τελικό αποτέλεσμα - το οποίο επιστρέφει ως απάντηση στο αρχικό μεγάλο ερώτημα.
-
-
HDFS : Το HDFS αναπαράγει τα μπλοκ δεδομένων που βρίσκονται σε άλλους υπολογιστές του κέντρου δεδομένων σας (για να διασφαλιστεί η αξιοπιστία) και διαχειρίζεται τη μεταφορά δεδομένων στα διάφορα μέρη του κατανεμημένου σας συστήματος.
Εξετάστε μια βάση δεδομένων δύο δισεκατομμυρίων ανθρώπων και υποθέστε ότι θέλετε να υπολογίσετε τον αριθμό των κοινωνικών φίλων του κ. X και να τα οργανώσετε ανάλογα με τη γεωγραφική τους θέση. Αυτή είναι μια ψηλή τάξη.
Τα δεδομένα για δύο δισεκατομμύρια άτομα θα μπορούσαν να προέρχονται από πολύ διαφορετικές πηγές, όπως τα κοινωνικά δίκτυα, οι λίστες διευθύνσεων επαφής ηλεκτρονικού ταχυδρομείου, οι αναρτήσεις, τα tweets, τα ιστορικά περιήγησης - και αυτό είναι μόνο για τους ανοιχτές. Ο Hadoop μπορεί να συγκεντρώσει αυτήν την τεράστια, ποικίλη μάζα δεδομένων ώστε να μπορείτε να το διερευνήσετε με ένα απλό ερώτημα.
Θα χρησιμοποιούσατε τις δυνατότητες προγραμματισμού MapReduce για να λύσετε αυτό το ερώτημα. Ο καθορισμός διαδικασιών Χάρτης και Μείωσης κάνει ακόμη και αυτό το μεγάλο σύνολο δεδομένων εύχρηστο. Χρησιμοποιώντας τα εργαλεία που προσφέρει το πλαίσιο Hadoop, θα δημιουργήσετε μια εφαρμογή MapReduce που θα έκανε τον υπολογισμό ως δύο υποτάξεις:
-
Υπολογίστε τον μέσο αριθμό των κοινωνικών φίλων του κ. X.
-
Προσθέστε τους φίλους του κ. X κατά γεωγραφική θέση.
Το πρόγραμμα υλοποίησης του MapReduce θα εκτελέσει παράλληλα αυτά τα δευτερεύοντα πακέτα, θα διαχειριστεί την επικοινωνία μεταξύ των υποστυλωμάτων και θα συγκεντρώσει τα αποτελέσματα. Από δύο δισεκατομμύρια ανθρώπους, θα γνωρίζατε ποιοι είναι οι φίλοι του κ. Χ.
Η Hadoop παρέχει μια σειρά επεξεργαστών χαρτών. ποιες από τις οποίες επιλέγετε θα εξαρτώνται από την υποδομή σας.
Κάθε επεξεργαστής σας θα χειριστεί έναν ορισμένο αριθμό αρχείων. Υποθέστε ότι κάθε επεξεργαστής χειρίζεται ένα εκατομμύριο εγγραφές δεδομένων. Κάθε επεξεργαστής εκτελεί μια διαδικασία χάρτη που παράγει πολλαπλές εγγραφές ζευγών κλειδιών-τιμών όπου G (key) είναι η γεωγραφική θέση ενός ατόμου (χώρα) και N επαφές που έχει το άτομο.
Υποθέστε ότι κάθε επεξεργαστής Map παράγει πολλά ζεύγη της φόρμας, όπως τα εξής:
Χάρτης επεξεργαστή # 1:
Χάρτης επεξεργαστή # 2:
Χάρτης επεξεργαστή # 3:
Χάρτης επεξεργαστή # 4:
Χάρτης επεξεργαστή # 5:
Χάρτης επεξεργαστή # 6:
Στη φάση Μείωση, ο Hadoop εκχωρεί μια εργασία σε έναν ορισμένο αριθμό επεξεργαστών: Εκτελέστε τη διαδικασία Μείωση, ένα τελικό αποτέλεσμα. Για το παράδειγμα αυτό, η εφαρμογή Reduce συνοψίζει τον αριθμό των τιμών για κάθε κλειδί - γεωγραφική θέση. Έτσι, μετά τη φάση Χάρτη, η φάση Μείωση παράγει τα εξής:
------ ----
Είναι σαφές ότι ο κ.Το X είναι ένας δημοφιλής τύπος - αλλά αυτό ήταν ένα πολύ απλό παράδειγμα του τρόπου με τον οποίο μπορεί να χρησιμοποιηθεί το MapReduce. Φανταστείτε ότι έχετε να αντιμετωπίσετε ένα μεγάλο σύνολο δεδομένων όπου θέλετε να εκτελέσετε πολύπλοκες λειτουργίες, όπως τη συγκέντρωση δισεκατομμυρίων εγγράφων, όπου η λειτουργία και τα δεδομένα είναι απλά πάρα πολύ μεγάλα για να χειριστεί μια μεμονωμένη μηχανή. Το Hadoop είναι το εργαλείο που πρέπει να εξετάσετε.