Προγραμματισμός

Πέντε πράγματα που πρέπει να γνωρίζετε για τον Hadoop v. Apache Spark

Ακούστε οποιαδήποτε συζήτηση για μεγάλα δεδομένα και πιθανότατα θα ακούσετε αναφορά για Hadoop ή Apache Spark. Ακολουθεί μια σύντομη ματιά στο τι κάνουν και πώς συγκρίνονται.

1: Κάνουν διαφορετικά πράγματα. Τα Hadoop και Apache Spark είναι και τα δύο πλαίσια μεγάλων δεδομένων, αλλά δεν εξυπηρετούν πραγματικά τους ίδιους σκοπούς. Το Hadoop είναι ουσιαστικά μια υποδομή κατανεμημένων δεδομένων: Διανέμει μαζικές συλλογές δεδομένων σε πολλούς κόμβους σε ένα σύμπλεγμα διακομιστών εμπορευμάτων, πράγμα που σημαίνει ότι δεν χρειάζεται να αγοράσετε και να διατηρήσετε ακριβό προσαρμοσμένο υλικό. Ευρετηριάζει επίσης και παρακολουθεί αυτά τα δεδομένα, επιτρέποντας την επεξεργασία μεγάλων δεδομένων και τα αναλυτικά στοιχεία πολύ πιο αποτελεσματικά από ό, τι ήταν δυνατό στο παρελθόν. Το Spark, από την άλλη πλευρά, είναι ένα εργαλείο επεξεργασίας δεδομένων που λειτουργεί σε αυτές τις κατανεμημένες συλλογές δεδομένων. δεν κάνει κατανεμημένο χώρο αποθήκευσης.

2: Μπορείτε να χρησιμοποιήσετε το ένα χωρίς το άλλο. Το Hadoop περιλαμβάνει όχι μόνο ένα στοιχείο αποθήκευσης, γνωστό ως Hadoop Distributed File System, αλλά και ένα στοιχείο επεξεργασίας που ονομάζεται MapReduce, οπότε δεν χρειάζεστε το Spark για να ολοκληρώσετε την επεξεργασία σας. Αντίθετα, μπορείτε επίσης να χρησιμοποιήσετε το Spark χωρίς Hadoop. Το Spark δεν συνοδεύεται από το δικό του σύστημα διαχείρισης αρχείων, οπότε πρέπει να ενσωματωθεί σε ένα - αν όχι το HDFS, με μια άλλη πλατφόρμα δεδομένων που βασίζεται σε σύννεφο. Το Spark σχεδιάστηκε για τον Hadoop, ωστόσο, πολλοί συμφωνούν ότι είναι καλύτερα μαζί.

3: Το Spark είναι πιο γρήγορο. Το Spark είναι γενικά πολύ πιο γρήγορο από το MapReduce λόγω του τρόπου επεξεργασίας δεδομένων. Ενώ το MapReduce λειτουργεί σε βήματα, το Spark λειτουργεί σε ολόκληρο το σύνολο δεδομένων σε μία εναλλαγή. "Η ροή εργασίας του MapReduce μοιάζει με αυτήν: διαβάστε δεδομένα από το σύμπλεγμα, εκτελέστε μια λειτουργία, γράψτε αποτελέσματα στο σύμπλεγμα, διαβάστε ενημερωμένα δεδομένα από το σύμπλεγμα, εκτελέστε την επόμενη λειτουργία, γράψτε τα επόμενα αποτελέσματα στο σύμπλεγμα κ.λπ.", εξήγησε ο Kirk Borne, κύριος επιστήμονας δεδομένων στο Booz Allen Hamilton. Ο Spark, από την άλλη πλευρά, ολοκληρώνει τις πλήρεις λειτουργίες ανάλυσης δεδομένων στη μνήμη και σε σχεδόν πραγματικό χρόνο: "Διαβάστε δεδομένα από το σύμπλεγμα, εκτελέστε όλες τις απαραίτητες αναλυτικές λειτουργίες, γράψτε αποτελέσματα στο σύμπλεγμα, ολοκληρώθηκε", δήλωσε ο Borne. Ο Spark μπορεί να είναι έως και 10 φορές πιο γρήγορος από το MapReduce για επεξεργασία παρτίδας και έως και 100 φορές πιο γρήγορος για αναλυτικά μέσα στη μνήμη, είπε.

4: Ίσως δεν χρειάζεστε την ταχύτητα του Spark. Το στυλ επεξεργασίας του MapReduce μπορεί να είναι καλό αν οι λειτουργίες δεδομένων και οι απαιτήσεις αναφοράς σας είναι κυρίως στατικές και μπορείτε να περιμένετε για επεξεργασία κατά παρτίδες. Αλλά αν πρέπει να κάνετε αναλυτικά στοιχεία για ροή δεδομένων, όπως από αισθητήρες σε εργοστασιακό πάτωμα ή να έχετε εφαρμογές που απαιτούν πολλαπλές λειτουργίες, ίσως θέλετε να πάτε με το Spark. Οι περισσότεροι αλγόριθμοι μηχανικής μάθησης, για παράδειγμα, απαιτούν πολλαπλές λειτουργίες. Οι κοινές εφαρμογές για το Spark περιλαμβάνουν εκστρατείες μάρκετινγκ σε πραγματικό χρόνο, διαδικτυακές προτάσεις προϊόντων, αναλυτικά στοιχεία για την ασφάλεια στον κυβερνοχώρο και παρακολούθηση καταγραφής μηχανών.

5: Αποκατάσταση αποτυχίας: διαφορετικό, αλλά ακόμα καλό. Το Hadoop είναι φυσικά ανθεκτικό σε σφάλματα συστήματος ή αστοχίες, δεδομένου ότι τα δεδομένα γράφονται στο δίσκο μετά από κάθε λειτουργία, αλλά το Spark έχει παρόμοια ενσωματωμένη ανθεκτικότητα λόγω του γεγονότος ότι τα αντικείμενα δεδομένων του αποθηκεύονται σε κάτι που ονομάζεται ανθεκτικά κατανεμημένα σύνολα δεδομένων που διανέμονται στο σύμπλεγμα δεδομένων. "Αυτά τα αντικείμενα δεδομένων μπορούν να αποθηκευτούν στη μνήμη ή σε δίσκους και το RDD παρέχει πλήρη αποκατάσταση από σφάλματα ή αστοχίες", επεσήμανε ο Borne.

$config[zx-auto] not found$config[zx-overlay] not found