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

Τα 7 πιο συνηθισμένα έργα Hadoop και Spark

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

Έτσι συμβαίνει με τους Hadoop, Spark και Storm. Όλοι πιστεύουν ότι κάνουν κάτι ξεχωριστό με αυτές τις νέες μεγάλες τεχνολογίες δεδομένων, αλλά δεν χρειάζεται πολύς χρόνος για να συναντήσουμε τα ίδια μοτίβα ξανά και ξανά. Οι συγκεκριμένες υλοποιήσεις μπορεί να διαφέρουν κάπως, αλλά με βάση την εμπειρία μου, εδώ είναι τα επτά πιο κοινά έργα.

Έργο Νο. 1: Συγκέντρωση δεδομένων

Ονομάστε το ως "επιχειρησιακός κόμβος δεδομένων" ή "λίμνη δεδομένων". Η ιδέα είναι ότι έχετε διαφορετικές πηγές δεδομένων και θέλετε να κάνετε ανάλυση σε αυτές. Αυτός ο τύπος έργου συνίσταται στη λήψη ροών από όλες τις πηγές (είτε σε πραγματικό χρόνο είτε ως παρτίδα) και να τις μετακινήσουμε στο Hadoop. Μερικές φορές αυτό είναι το πρώτο βήμα για να γίνει μια «εταιρεία βάσει δεδομένων». μερικές φορές απλά θέλετε όμορφες αναφορές. Οι λίμνες δεδομένων πραγματοποιούνται συνήθως ως αρχεία σε HDFS και πίνακες στο Hive ή στο Impala. Υπάρχει ένας τολμηρός, νέος κόσμος όπου μεγάλο μέρος αυτού εμφανίζεται στο HBase - και στο Phoenix, στο μέλλον, επειδή η κυψέλη είναι αργή.

Οι πωλητές θέλουν να λένε πράγματα όπως «σχήμα σε ανάγνωση», αλλά στην πραγματικότητα, για να είναι επιτυχημένο, πρέπει να έχετε μια καλή ιδέα για το ποιες θα είναι οι περιπτώσεις χρήσης σας (ότι το σχήμα κυψέλης δεν θα φαίνεται τρομερά διαφορετικό από αυτό που θα κάνατε αποθήκη δεδομένων επιχείρησης). Ο πραγματικός λόγος για μια λίμνη δεδομένων είναι η οριζόντια επεκτασιμότητα και πολύ χαμηλότερο κόστος από τα Teradata ή Netezza. Για την «ανάλυση», πολλοί άνθρωποι δημιούργησαν το Tableau και το Excel στη διεπαφή. Πιο εξελιγμένες εταιρείες με «πραγματικούς επιστήμονες δεδομένων» (μαθητές που γράφουν κακό Python) χρησιμοποιούν το Zeppelin ή το iPython notebook ως διεπαφή.

Έργο Νο. 2: Εξειδικευμένη ανάλυση

Πολλά έργα ενοποίησης δεδομένων ξεκινούν εδώ, όπου έχετε ειδική ανάγκη και τραβήξτε ένα σύνολο δεδομένων για ένα σύστημα που κάνει ένα είδος ανάλυσης. Αυτά τείνουν να είναι απίστευτα συγκεκριμένα για τον τομέα, όπως προσομοίωση κινδύνου ρευστότητας / Monte Carlo σε μια τράπεζα. Στο παρελθόν, τέτοιες εξειδικευμένες αναλύσεις εξαρτώνταν από παλιότερα, ιδιόκτητα πακέτα που δεν μπορούσαν να κλιμακωθούν όπως τα δεδομένα και συχνά υπέφεραν από ένα περιορισμένο σύνολο δυνατοτήτων (εν μέρει επειδή ο πωλητής λογισμικού δεν μπορούσε να γνωρίζει τόσο πολύ για τον τομέα όσο και το ίδρυμα βυθισμένος σε αυτό).

Στους κόσμους Hadoop και Spark, αυτά τα συστήματα μοιάζουν περίπου με τα συστήματα ενοποίησης δεδομένων, αλλά συχνά έχουν περισσότερους HBase, προσαρμοσμένο κώδικα εκτός SQL και λιγότερες πηγές δεδομένων (αν όχι μόνο μία). Όλο και περισσότερο, βασίζονται στο Spark.

Έργο No. 3: Hadoop ως υπηρεσία

Σε οποιονδήποτε μεγάλο οργανισμό με έργα «εξειδικευμένης ανάλυσης» (και κατά ειρωνικό τρόπο ένα ή δύο έργα «ενοποίησης δεδομένων») αναπόφευκτα θα αρχίσουν να αισθάνονται τη «χαρά» (δηλαδή πόνο) της διαχείρισης μερικών διαφορετικών διαμορφωμένων συστάδων Hadoop, μερικές φορές από διαφορετικά πωλητές. Στη συνέχεια θα πουν, "Ίσως πρέπει να ενοποιήσουμε αυτό και να συγκεντρώσουμε πόρους", αντί να αφήσουμε τους μισούς κόμβους τους να μείνουν αδρανείς στο μισό χρόνο. Θα μπορούσαν να πάνε στο cloud, αλλά πολλές εταιρείες είτε δεν μπορούν είτε δεν θα το κάνουν, συχνά για λόγους ασφάλειας (διαβάστε: εσωτερική πολιτική και προστασία της εργασίας). Αυτό σημαίνει γενικά πολλές συνταγές σεφ και τώρα πακέτα κοντέινερ Docker.

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

Έργο No. 4: Streaming analytics

Πολλοί άνθρωποι θα το αποκαλούσαν "ροή", αλλά η ανάλυση ροής είναι αρκετά διαφορετική από τη ροή από συσκευές. Συχνά, η ροή αναλυτικών στοιχείων είναι μια πιο πραγματική έκδοση του τι έκανε ένας οργανισμός σε παρτίδες. Λάβετε υπόψη τον εντοπισμό νομιμοποίησης εσόδων από παράνομες δραστηριότητες ή απάτης: Γιατί να μην το κάνετε αυτό στη βάση συναλλαγής και να το πιάσετε όπως συμβαίνει παρά στο τέλος ενός κύκλου; Το ίδιο ισχύει για τη διαχείριση αποθεμάτων ή οτιδήποτε άλλο.

Σε ορισμένες περιπτώσεις, αυτός είναι ένας νέος τύπος συστήματος συναλλαγών που αναλύει τα δεδομένα σιγά-σιγά καθώς τα μετατρέπει σε ένα αναλυτικό σύστημα παράλληλα. Τέτοια συστήματα εκδηλώνονται ως Spark ή Storm με το HBase ως το συνηθισμένο κατάστημα δεδομένων. Λάβετε υπόψη ότι η ανάλυση ροής δεν αντικαθιστά όλες τις μορφές αναλυτικών στοιχείων. θα εξακολουθήσετε να θέλετε να εμφανίσετε ιστορικές τάσεις ή να δείτε προηγούμενα δεδομένα για κάτι που δεν έχετε σκεφτεί ποτέ.

Έργο Νο. 5: Σύνθετη επεξεργασία εκδηλώσεων

Εδώ μιλάμε για επεξεργασία συμβάντων σε πραγματικό χρόνο, όπου έχουν σημασία τα δευτερόλεπτα. Παρόλο που δεν είναι αρκετά γρήγορο για εφαρμογές εξαιρετικά χαμηλού λανθάνοντος χρόνου (picosecond ή nanosecond), όπως συστήματα διαπραγμάτευσης υψηλού επιπέδου, μπορείτε να περιμένετε χρόνους απόκρισης χιλιοστών του δευτερολέπτου. Τα παραδείγματα περιλαμβάνουν αξιολόγηση σε πραγματικό χρόνο των εγγραφών δεδομένων κλήσεων για τηλεπικοινωνίες ή την επεξεργασία διαδικτυακών γεγονότων πραγμάτων. Μερικές φορές, θα δείτε ότι τέτοια συστήματα χρησιμοποιούν Spark και HBase - αλλά γενικά πέφτουν στο πρόσωπό τους και πρέπει να μετατραπούν σε Storm, το οποίο βασίζεται στο σχέδιο Disruptor που αναπτύχθηκε από το LMAX exchange.

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

Έργο No. 6: Ροή ως ETL

Μερικές φορές θέλετε να καταγράψετε δεδομένα ροής και να τα αποθηκεύσετε κάπου. Αυτά τα έργα συμπίπτουν συνήθως με το Νο. 1 ή το Νο. 2, αλλά προσθέτουν το δικό τους πεδίο και τα χαρακτηριστικά τους. (Μερικοί άνθρωποι πιστεύουν ότι κάνουν το Νο. 4 ή το Νο. 5, αλλά στην πραγματικότητα ρίχνουν στο δίσκο και αναλύουν τα δεδομένα αργότερα.) Πρόκειται σχεδόν πάντα για έργα Kafka και Storm. Το Spark χρησιμοποιείται επίσης, αλλά χωρίς αιτιολόγηση, καθώς δεν χρειάζεστε πραγματικά αναλυτικά στοιχεία στη μνήμη.

Έργο Αρ. 7: Αντικατάσταση ή αύξηση του SAS

Η SAS είναι μια χαρά. Το SAS είναι ωραίο. Το SAS είναι επίσης ακριβό και δεν αγοράζουμε κουτιά για όλους σας επιστήμονες δεδομένων και αναλυτές, ώστε να μπορείτε να "παίζετε" με τα δεδομένα. Εκτός αυτού, θέλατε να κάνετε κάτι διαφορετικό από το SAS που θα μπορούσε να κάνει ή να δημιουργήσετε ένα πιο όμορφο γράφημα. Εδώ είναι η ωραία λίμνη δεδομένων σας. Εδώ είναι το Notebook iPython (τώρα) ή το Zeppelin (αργότερα). Θα τροφοδοτήσουμε τα αποτελέσματα στο SAS και θα αποθηκεύσουμε τα αποτελέσματα από το SAS εδώ.

Ενώ έχω δει άλλα έργα Hadoop, Spark ή Storm, αυτά είναι τα «κανονικά» καθημερινά είδη. Εάν χρησιμοποιείτε το Hadoop, πιθανότατα τα αναγνωρίζετε. Μερικές από τις περιπτώσεις χρήσης για αυτά τα συστήματα που έχω εφαρμόσει χρόνια πριν, σε συνεργασία με άλλες τεχνολογίες.

Αν είστε παλιομοδίτης φοβάστε το "big" σε big data ή το "do" στο Hadoop, μην είστε. Όσο περισσότερα πράγματα αλλάζουν τόσο περισσότερο παραμένουν ίδια. Θα βρείτε πολλές παραλληλότητες μεταξύ των πραγμάτων που χρησιμοποιήσατε για την ανάπτυξη και των τεχνολογιών hipster που περιστρέφονται γύρω από την Hadooposphere.