Σπίτι Προσωπικά Οικονομικά Πώς να χρησιμοποιήσετε MapReduce για μεγάλα δεδομένα - dummies

Πώς να χρησιμοποιήσετε MapReduce για μεγάλα δεδομένα - dummies

Πίνακας περιεχομένων:

Βίντεο: Create and Execute MapReduce in Eclipse 2024

Βίντεο: Create and Execute MapReduce in Eclipse 2024
Anonim

Το MapReduce είναι ένα λογισμικό που είναι ιδανικό για μεγάλα δεδομένα, επειδή επιτρέπει στους προγραμματιστές να γράφουν προγράμματα που μπορούν να επεξεργάζονται παράλληλα τεράστιες ποσότητες μη δομημένων δεδομένων παράλληλα σε μια κατανεμημένη ομάδα επεξεργαστών.

Η λειτουργία χάρτη για μεγάλα δεδομένα

Η λειτουργία χάρτη αποτελεί μέρος πολλών λειτουργικών γλωσσών προγραμματισμού εδώ και χρόνια. Ο χάρτης έχει αναζωογονηθεί ως βασική τεχνολογία για την επεξεργασία λιστών στοιχείων στοιχείων.

Οι χειριστές σε λειτουργικές γλώσσες δεν τροποποιούν τη δομή των δεδομένων. δημιουργούν νέες δομές δεδομένων ως αποτέλεσμα. Τα ίδια τα αρχικά δεδομένα δεν έχουν τροποποιηθεί. Έτσι, μπορείτε να χρησιμοποιήσετε τη λειτουργία χαρτών με ατιμωρησία, διότι δεν θα βλάψει τα πολύτιμα αποθηκευμένα δεδομένα σας.

Ένα άλλο πλεονέκτημα του λειτουργικού προγραμματισμού δεν είναι να χρειάζεται να διαχειρίζεται ρητά την κίνηση ή τη ροή των δεδομένων. Αυτό απαλλάσσει τον προγραμματιστή από τη ρητή διαχείριση της παραγωγής και της τοποθέτησης δεδομένων. Τέλος, δεν ορίζεται η σειρά των πράξεων στα δεδομένα.

Ένας τρόπος για να επιτευχθεί η λύση είναι να προσδιοριστούν τα δεδομένα εισόδου και να δημιουργηθεί μια λίστα:

mylist = ("όλες οι κομητείες στις ΗΠΑ που συμμετείχαν στις πιο πρόσφατες γενικές εκλογές") > Δημιουργήστε τη λειτουργία howManyPeople χρησιμοποιώντας τη λειτουργία χάρτη

. Επιλέγει μόνο τις κομητείες με περισσότερους από 50.000 ανθρώπους: map howManyPeople (mylist) = [howManyPeople "νομός 1"; howManyPeople "κομητεία 2"; howManyPeople "county 3"; howManyPeople "county 4"; …]

Δημιουργήστε τώρα έναν νέο κατάλογο εξόδου όλων των κομητειών με πληθυσμούς μεγαλύτερους από 50, 000:

(όχι, κομητεία 1, ναι, κομητεία 2, όχι, κομητεία 3, ναι, κομητεία 4, ?, κομητεία nnn)
Η λειτουργία εκτελείται χωρίς να γίνουν αλλαγές στην αρχική λίστα. Επιπλέον, μπορείτε να δείτε ότι κάθε στοιχείο της λίστας εξόδων αντιστοιχεί σε ένα αντίστοιχο στοιχείο της λίστας εισόδου, με ένα ναι ή όχι συνδεδεμένο. Αν ο νομός έχει ικανοποιήσει την απαίτηση περισσότερων από 50.000 ανθρώπων, η λειτουργία του χάρτη το αναγνωρίζει με ένα ναι. Εάν όχι, δεν δηλώνεται κανένα.

Προσθέστε τη λειτουργία μείωσης για μεγάλα δεδομένα

Όπως και η λειτουργία χαρτών, η

μείωση υπήρξε χαρακτηριστικό των λειτουργικών γλωσσών προγραμματισμού για πολλά χρόνια. Η λειτουργία "μείωση" παίρνει την έξοδο μιας λειτουργίας χάρτη και "μειώνει" τη λίστα με όποιο τρόπο θέλει ο προγραμματιστής. Το πρώτο βήμα που απαιτεί η λειτουργία μείωσης είναι η τοποθέτηση μιας τιμής σε κάτι που ονομάζεται

συσσωρευτής , ο οποίος διατηρεί μια αρχική τιμή. Αφού αποθηκεύσετε μια τιμή εκκίνησης στο συσσωρευτή, η λειτουργία μείωσης στη συνέχεια επεξεργάζεται κάθε στοιχείο της λίστας και εκτελεί τη λειτουργία που χρειάζεστε σε όλη τη λίστα.

Στο τέλος της λίστας, η συνάρτηση μειώσεως επιστρέφει μια τιμή με βάση τη λειτουργία που θέλετε να εκτελέσετε στη λίστα εξόδου.

Υποθέστε ότι πρέπει να προσδιορίσετε τις κομητείες όπου η πλειοψηφία των ψήφων ήταν για τον υποψήφιο Δημοκρατικό. Θυμηθείτε ότι η λειτουργία χαρτών howManyPeople εξέτασε κάθε στοιχείο της λίστας εισόδου και δημιούργησε έναν κατάλογο εξόδων των κομητειών με περισσότερα από 50.000 άτομα (ναι) και των κομητειών με λιγότερους από 50.000 ανθρώπους (όχι).

Αφού καλέσετε τη λειτουργία χαρτών howManyPeople, έχετε την ακόλουθη λίστα εξόδου:

(όχι, νομός 1, ναι, νομός 2, όχι, νομός 3, ναι, νομός 4;, county nnn)

Αυτή είναι τώρα η είσοδος για τη λειτουργία μείωσης. Εδώ είναι αυτό που μοιάζει με:

countylist = (όχι, νομός 1, ναι, νομός 2, όχι, νομός 3, ναι, κομητεία 4,;, νομός nnn) μείωση isDemocrat κάθε στοιχείο του καταλόγου και επιστρέφει έναν κατάλογο όλων των κομητειών με πληθυσμό μεγαλύτερο από 50.000, όπου η πλειοψηφία ψήφισε Δημοκρατικός.

Κάνοντας το μεγάλο χάρτη δεδομένων και μειώνοντας μαζί

Μερικές φορές δημιουργώντας μια λίστα εξόδου είναι αρκετή. Ομοίως, αρκετές φορές οι εργασίες σε κάθε στοιχείο μιας λίστας είναι αρκετές. Τις περισσότερες φορές, θέλετε να εξετάσετε μεγάλες ποσότητες δεδομένων εισόδου, να επιλέξετε ορισμένα στοιχεία από τα δεδομένα και στη συνέχεια να υπολογίσετε κάτι από τα σχετικά στοιχεία δεδομένων.

Δεν θέλετε να αλλάξετε αυτή τη λίστα εισόδου, ώστε να μπορείτε να τη χρησιμοποιήσετε με διαφορετικούς τρόπους με νέες υποθέσεις και νέα δεδομένα.

Οι προγραμματιστές λογισμικού σχεδιάζουν εφαρμογές που βασίζονται σε αλγόριθμους. Ένας

αλγόριθμος

δεν είναι τίποτα περισσότερο από μια σειρά βημάτων που πρέπει να εμφανιστούν στην υπηρεσία σε ένα γενικό στόχο. Μπορεί να φαίνεται λίγο σαν αυτό: Ξεκινήστε με έναν μεγάλο αριθμό ή δεδομένα ή αρχεία. Εξηγήστε τα δεδομένα.

  1. Χρησιμοποιήστε τη λειτουργία χάρτη για να εξαγάγετε κάτι που σας ενδιαφέρει και να δημιουργήσετε μια λίστα εξόδου.

  2. Οργάνωση της λίστας εξόδου για βελτιστοποίηση για περαιτέρω επεξεργασία.

  3. Χρησιμοποιήστε τη λειτουργία μείωσης για να υπολογίσετε ένα σύνολο αποτελεσμάτων.

  4. Κατασκευάστε την τελική έξοδο.

  5. Οι προγραμματιστές μπορούν να εφαρμόσουν κάθε είδους εφαρμογές χρησιμοποιώντας αυτήν την προσέγγιση, αλλά τα παραδείγματα σε αυτό το σημείο ήταν πολύ απλά, οπότε η πραγματική αξία του MapReduce μπορεί να μην είναι εμφανής. Τι συμβαίνει όταν έχετε εξαιρετικά μεγάλα δεδομένα εισόδου; Μπορείτε να χρησιμοποιήσετε τον ίδιο αλγόριθμο σε terabytes δεδομένων; Τα καλά νέα είναι ναι.

  6. Όλες οι πράξεις φαίνονται ανεξάρτητες. Αυτό συμβαίνει γιατί είναι. Η πραγματική δύναμη του MapReduce είναι η ικανότητα να διαιρείται και να κατακτάται. Πάρτε ένα πολύ μεγάλο πρόβλημα και σπάστε το σε μικρότερα, πιο διαχειρίσιμα κομμάτια, λειτουργήστε σε κάθε κομμάτι ανεξάρτητα, και στη συνέχεια τραβήξτε όλα μαζί στο τέλος. Επιπλέον, η λειτουργία χαρτών είναι μεταβλητή - με άλλα λόγια, η σειρά εκτέλεσης μιας λειτουργίας δεν έχει σημασία.

Έτσι, το MapReduce μπορεί να εκτελέσει τις εργασίες του σε διαφορετικά μηχανήματα σε ένα δίκτυο. Μπορεί επίσης να αντλεί από πολλαπλές πηγές δεδομένων, εσωτερικές ή εξωτερικές. Το MapReduce παρακολουθεί την εργασία του δημιουργώντας ένα μοναδικό κλειδί για να διασφαλίσει ότι όλη η επεξεργασία σχετίζεται με την επίλυση του ίδιου προβλήματος.Αυτό το κλειδί χρησιμοποιείται επίσης για να τραβήξετε όλη την έξοδο μαζί στο τέλος όλων των κατανεμημένων εργασιών.

Πώς να χρησιμοποιήσετε MapReduce για μεγάλα δεδομένα - dummies

Η επιλογή των συντακτών

Εξαρτήματα ηλεκτρονικών: Ενισχυτές ανοιχτού βρόχου

Εξαρτήματα ηλεκτρονικών: Ενισχυτές ανοιχτού βρόχου

Οι πιο βασικές ηλεκτρονικές χρήσεις ενός ενισχυτή Op είναι ως ενισχυτής. Εάν συνδέσετε μια πηγή εισόδου σε έναν από τους ακροδέκτες εισόδου και γειώσετε τον άλλο ακροδέκτη εισόδου, εμφανίζεται μια ενισχυμένη έκδοση του σήματος εισόδου στο εξωτερικό τερματικό. Μια σημαντική ιδέα στα κυκλώματα op-amp ...

Ηλεκτρονικά Στοιχεία: Δημοφιλή Op Amp Ενσωματωμένα Κυκλώματα - Dummy

Ηλεκτρονικά Στοιχεία: Δημοφιλή Op Amp Ενσωματωμένα Κυκλώματα - Dummy

Για την οικοδόμηση ενός πραγματικού ηλεκτρονικού κυκλώματος χρησιμοποιώντας Op-amp, φυσικά, θα πρέπει να χρησιμοποιήσετε ένα πραγματικό ενισχυτή op. Ευτυχώς, τα ενσωματωμένα ολοκληρωμένα κυκλώματα (IC) είναι άφθονα και σχεδόν όλα τα καταστήματα που πωλούν ηλεκτρονικά εξαρτήματα πωλούν διάφορους τύπους φθηνών IC-ενισχυτών. Το πιο δημοφιλές op-amp IC είναι το LM741, το οποίο έρχεται ...

Ηλεκτρονικά Συστατικά: Κύκλοι ταλαντωτών - ανδρείκελοι

Ηλεκτρονικά Συστατικά: Κύκλοι ταλαντωτών - ανδρείκελοι

. Η ακριβής κυματομορφή που παράγεται εξαρτάται από τον τύπο του κυκλώματος που χρησιμοποιείται για τη δημιουργία του ταλαντωτή. Ένα από τα συνηθέστερα χρησιμοποιούμενα κυκλώματα ταλαντωτών είναι κατασκευασμένο από ένα ζεύγος τρανζίστορ που είναι εφοδιασμένα για να εναλλάσσονται και να σβήνουν εναλλάξ. Αυτός ο τύπος κυκλώματος είναι ...

Η επιλογή των συντακτών

Ασκήσεις για ανδρείκελα Κατάρτιση για ανδρείκελα Εξάσκηση - ανδρείκελα

Ασκήσεις για ανδρείκελα Κατάρτιση για ανδρείκελα Εξάσκηση - ανδρείκελα

Η ασήμαντη εκπαίδευση είναι ένα σημαντικό βήμα στην ανάπτυξη των παιδιών. Ως γονέας, θα πρέπει να αναγνωρίσετε τα σημάδια ότι το παιδί σας είναι έτοιμο για την ομιλία της τουαλέτας, να ξεκινήσει μια διαδικασία ασήμαντης κατάρτισης, να συνεχίσει τη διαδικασία και να αναγνωρίσει πότε το παιδί σας είναι σχεδόν εκεί. Κατά τη διάρκεια της διαδρομής, πρέπει να σιγουρευτείτε ότι το παιδί σας ξέρει ...

Εκπαίδευση για παιδιά με αναπηρίες - ανδρείκελα

Εκπαίδευση για παιδιά με αναπηρίες - ανδρείκελα

Παιδιά, ανάλογα με την αναπηρία. Μπορεί να χρειαστεί να παρέχετε στηρίγματα υψηλής τεχνολογίας που διευκολύνουν την κίνηση από τον περιπατητή ή την αναπηρική καρέκλα στην τουαλέτα (δείτε την ενότητα "Εργασία με ειδικό εργαλείο" σε αυτό το άρθρο.) Από την άλλη πλευρά, το παιδί σας μπορεί να ...

Υποδηλώνουν ότι το παιδί σας είναι έτοιμο για ασήμαντη εκπαίδευση - ανδρείκελα

Υποδηλώνουν ότι το παιδί σας είναι έτοιμο για ασήμαντη εκπαίδευση - ανδρείκελα

Την ημέρα που κάθε γονιός επιθυμεί, αλλά δεν μπορείτε να βιάσετε τη διαδικασία. Περιμένετε τα σημάδια ότι το παιδί σας είναι έτοιμο να αντιμετωπίσει αυτή τη μεγάλη πρόκληση. Παρακολουθήστε τα σημεία στην παρακάτω λίστα. οι πρώτες πέντε είναι απολύτως απαραίτητες: μένει ξηρό τουλάχιστον δύο ώρες παίρνει Bummed από υγρό ή ...

Η επιλογή των συντακτών

Πώς να χρησιμοποιήσετε τη φαντασία σας για να χαλαρώσετε το σώμα σας για διαλογισμό - Dummies

Πώς να χρησιμοποιήσετε τη φαντασία σας για να χαλαρώσετε το σώμα σας για διαλογισμό - Dummies

Αναδυόμενο πεδίο της ιατρικής μυαλού-σώματος υπενθυμίζει στους ανθρώπους - και γιόγκι και σοφοί έχουν πει για χιλιετίες - το σώμα σας, το μυαλό σας και η καρδιά σας αποτελούν ένα ενιαίο και αδιάσπαστο σύνολο. Όταν οι σκέψεις σας συνεχίζουν να σφύζουν από την ανησυχία σας, το σώμα σας αποκρίνεται με τη σύσφιξη και την τάνυση, ειδικά σε ορισμένες σημαντικές θέσεις ...

Πώς να χρησιμοποιήσετε την προσοχή για τη διαχείριση του πόνου

Πώς να χρησιμοποιήσετε την προσοχή για τη διαχείριση του πόνου

Πόνος είναι κάτι που θα αντιμετωπίσει κάποιος σε κάποιο σημείο . Η προσοχή μπορεί να σας βοηθήσει να προσεγγίσετε πόνο με υγιεινό τρόπο. Ο οξύς πόνος είναι ένας αιχμηρός πόνος που διαρκεί για μικρό χρονικό διάστημα, μερικές φορές ορίζεται ως λιγότερο από 12 εβδομάδες. Η ιατρική είναι αρκετά καλή για τη θεραπεία του οξέος πόνου. Ο χρόνιος πόνος είναι ο πόνος που διαρκεί ...

Βελτίωση των σχέσεών σας - ανδρείκεS

Βελτίωση των σχέσεών σας - ανδρείκεS

Σχέσεις - είτε με την οικογένεια, τους φίλους ή τους εραστές; Και δεν έχει σημασία πόσο χαρούμενος και ευχαριστημένος είστε με τις σημαντικές σχέσεις στη ζωή σας, υπάρχει πάντα περιθώριο βελτίωσης. Οι σχέσεις, όπως όλες οι διεργασίες, επίσης καταλήγουν και ρέουν και σας παρουσιάζουν προκλήσεις. Εδώ είναι μερικές εξαιρετικές τεχνικές για να σας βοηθήσουμε ...