Διατίθεται κατανεμημένο υπολογιστικό σύστημα Apache Storm 2.0

Είδε το φως σημαντική κυκλοφορία ενός κατανεμημένου συστήματος επεξεργασίας συμβάντων Apache Storm 2.0, αξιοσημείωτο για τη μετάβασή του σε μια νέα αρχιτεκτονική που εφαρμόζεται σε Java, αντί για τη γλώσσα Clojure που χρησιμοποιήθηκε στο παρελθόν.

Το έργο σας επιτρέπει να οργανώσετε εγγυημένη επεξεργασία διαφόρων εκδηλώσεων σε πραγματικό χρόνο. Για παράδειγμα, το Storm μπορεί να χρησιμοποιηθεί για την ανάλυση ροών δεδομένων σε πραγματικό χρόνο, την εκτέλεση εργασιών μηχανικής εκμάθησης, την οργάνωση συνεχούς υπολογισμού, την εφαρμογή RPC, ETL κ.λπ. Το σύστημα υποστηρίζει ομαδοποίηση, δημιουργία διαμορφώσεων ανοχής σε σφάλματα, εγγυημένη λειτουργία επεξεργασίας δεδομένων και έχει υψηλή απόδοση, επαρκή για την επεξεργασία περισσότερων από ένα εκατομμύριο αιτημάτων ανά δευτερόλεπτο σε έναν κόμβο συμπλέγματος.

Υποστηρίζεται η ενοποίηση με διάφορα συστήματα επεξεργασίας ουράς και τεχνολογίες βάσεων δεδομένων. Η αρχιτεκτονική Storm περιλαμβάνει τη λήψη και την επεξεργασία μη δομημένων, συνεχώς ενημερωμένων ροών δεδομένων χρησιμοποιώντας αυθαίρετους πολύπλοκους επεξεργαστές με δυνατότητα διαχωρισμού μεταξύ διαφορετικών σταδίων υπολογισμών. Το έργο παραδόθηκε στην κοινότητα των Apache αφού το Twitter εξαγόρασε την BackType, την εταιρεία που ανέπτυξε αρχικά το πλαίσιο. Στην πράξη, το Storm χρησιμοποιήθηκε στο BackType για να αναλύσει την αντανάκλαση των γεγονότων στα μικρομπλόγκ, συγκρίνοντας τα νέα tweets και τους συνδέσμους που χρησιμοποιούνται σε αυτά (για παράδειγμα, αξιολογήθηκε πώς οι εξωτερικοί σύνδεσμοι ή οι ανακοινώσεις που δημοσιεύτηκαν στο Twitter αναμεταδόθηκαν από άλλους συμμετέχοντες ).

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

Το σύστημα γράφτηκε αρχικά σε Clojure και τρέχει μέσα στην εικονική μηχανή JVM. Το Ίδρυμα Apache ξεκίνησε μια πρωτοβουλία για τη μετεγκατάσταση του Storm σε έναν νέο πυρήνα γραμμένο σε Java, τα αποτελέσματα του οποίου προτείνονται στην κυκλοφορία του Apache Storm 2.0. Όλα τα βασικά στοιχεία της πλατφόρμας ξαναγράφονται σε Java. Η υποστήριξη για χειριστές γραφής στο Clojure έχει διατηρηθεί, αλλά τώρα προσφέρεται με τη μορφή βιβλιοδεσιών. Το Storm 2.0.0 απαιτεί Java 8. Το μοντέλο επεξεργασίας πολλαπλών νημάτων έχει επανασχεδιαστεί πλήρως, επιτρέποντας φέρνω σε πέρας μια αισθητή αύξηση στην απόδοση (για ορισμένες τοπολογίες, οι καθυστερήσεις μειώθηκαν κατά 50-80%).

Διατίθεται κατανεμημένο υπολογιστικό σύστημα Apache Storm 2.0

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

Υποστήριξη για τη λήψη υπόψη πρόσθετων πόρων κατά τη λήψη αποφάσεων που δεν περιορίζονται σε
CPU και μνήμη, όπως ρυθμίσεις δικτύου και GPU. Έχει γίνει ένας μεγάλος αριθμός βελτιώσεων για να διασφαλιστεί η ενοποίηση με την πλατφόρμα Κάφκα. Το σύστημα ελέγχου πρόσβασης έχει επεκταθεί ώστε να περιλαμβάνει τη δυνατότητα δημιουργίας ομάδων διαχειριστών και ανάθεσης διακριτικών. Προστέθηκαν βελτιώσεις που σχετίζονται με την υποστήριξη SQL και μετρήσεων. Έχουν εμφανιστεί νέες εντολές στη διεπαφή διαχειριστή για τον εντοπισμό σφαλμάτων της κατάστασης του συμπλέγματος.

Τομείς εφαρμογής για το Storm:

  • Επεξεργασία ροών νέων δεδομένων ή ενημερώσεων βάσης δεδομένων σε πραγματικό χρόνο.
  • Continuous Computing: Η Storm μπορεί να εκτελεί συνεχόμενα ερωτήματα και να επεξεργάζεται συνεχείς ροές, παρέχοντας αποτελέσματα επεξεργασίας στον πελάτη σε πραγματικό χρόνο.
  • Κλήση κατανεμημένης απομακρυσμένης διαδικασίας (RPC): Το Storm μπορεί να χρησιμοποιηθεί για την παροχή παράλληλης εκτέλεσης ερωτημάτων έντασης πόρων. Μια εργασία ("τοπολογία") στο Storm είναι μια συνάρτηση που κατανέμεται στους κόμβους που περιμένει να φτάσουν μηνύματα που πρέπει να υποβληθούν σε επεξεργασία. Αφού λάβει ένα μήνυμα, η συνάρτηση το επεξεργάζεται στο τοπικό πλαίσιο και επιστρέφει το αποτέλεσμα. Ένα παράδειγμα χρήσης κατανεμημένου RPC θα ήταν η παράλληλη επεξεργασία ερωτημάτων αναζήτησης ή η εκτέλεση λειτουργιών σε ένα μεγάλο σύνολο συνόλων.

Χαρακτηριστικά Storm:

  • Ένα απλό μοντέλο προγραμματισμού που απλοποιεί σημαντικά την επεξεργασία δεδομένων σε πραγματικό χρόνο.
  • Υποστήριξη για οποιαδήποτε γλώσσα προγραμματισμού. Οι ενότητες είναι διαθέσιμες για Java, Ruby και Python, η προσαρμογή για άλλες γλώσσες είναι εύκολη χάρη σε ένα πολύ απλό πρωτόκολλο επικοινωνίας που απαιτεί περίπου 100 γραμμές κώδικα για υποστήριξη.
  • Ανοχή σφαλμάτων: για να εκτελέσετε μια εργασία επεξεργασίας δεδομένων, πρέπει να δημιουργήσετε ένα αρχείο jar με κώδικα. Το Storm θα διανείμει ανεξάρτητα αυτό το αρχείο jar στους κόμβους συμπλέγματος, θα συνδέσει τους χειριστές που σχετίζονται με αυτό και θα οργανώσει την παρακολούθηση. Όταν ολοκληρωθεί η εργασία, ο κωδικός θα απενεργοποιηθεί αυτόματα σε όλους τους κόμβους.
  • Οριζόντια επεκτασιμότητα. Όλοι οι υπολογισμοί εκτελούνται σε παράλληλη λειτουργία· καθώς αυξάνεται το φορτίο, αρκεί απλώς να συνδέσετε νέους κόμβους στο σύμπλεγμα.
  • Αξιοπιστία. Το Storm διασφαλίζει ότι κάθε εισερχόμενο μήνυμα υποβάλλεται σε πλήρη επεξεργασία τουλάχιστον μία φορά. Το μήνυμα θα υποβληθεί σε επεξεργασία μία φορά μόνο εάν δεν υπάρχουν σφάλματα κατά τη διέλευση από όλους τους χειριστές· εάν προκύψουν προβλήματα, τότε οι ανεπιτυχείς προσπάθειες επεξεργασίας θα επαναληφθούν.
  • Ταχύτητα. Ο κώδικας του Storm είναι γραμμένος με γνώμονα την υψηλή απόδοση και χρησιμοποιεί το σύστημα για γρήγορη ασύγχρονη ανταλλαγή μηνυμάτων ZeroMQ.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο