Σε αυτό το σεμινάριο, θα μάθετε-
- Τι είναι η κυψέλη;
- Αρχιτεκτονική κυψέλης
- Διαφορετικοί τρόποι κυψέλης
- Τι είναι το Hive Server2 (HS2);
Τι είναι η κυψέλη;
Το Hive είναι ένα εργαλείο αποθήκευσης ETL και δεδομένων που αναπτύχθηκε πάνω από το Hadoop Distributed File System (HDFS). Η κυψέλη κάνει τη δουλειά εύκολη για την εκτέλεση λειτουργιών όπως
- Ενθυλάκωση δεδομένων
- Ad-hoc ερωτήματα
- Ανάλυση τεράστιων συνόλων δεδομένων
Σημαντικά χαρακτηριστικά της κυψέλης
- Στην ομάδα, δημιουργούνται πρώτα πίνακες και βάσεις δεδομένων και στη συνέχεια φορτώνονται δεδομένα σε αυτούς τους πίνακες.
- Hive ως αποθήκη δεδομένων που έχει σχεδιαστεί για τη διαχείριση και την αναζήτηση μόνο δομημένων δεδομένων που αποθηκεύονται σε πίνακες.
- Ενώ ασχολείστε με δομημένα δεδομένα, το Map Reduce δεν διαθέτει δυνατότητες βελτιστοποίησης και χρηστικότητας, όπως UDF, αλλά το πλαίσιο Hive. Η βελτιστοποίηση ερωτήματος αναφέρεται σε έναν αποτελεσματικό τρόπο εκτέλεσης ερωτημάτων όσον αφορά την απόδοση.
- Η γλώσσα εμπνευσμένη από το SQL της Hive διαχωρίζει τον χρήστη από την πολυπλοκότητα του προγραμματισμού Map Reduce. Επαναχρησιμοποιεί γνωστές έννοιες από τον κόσμο της σχεσιακής βάσης δεδομένων, όπως πίνακες, σειρές, στήλες και σχήμα κ.λπ. για ευκολία μάθησης.
- Ο προγραμματισμός του Hadoop λειτουργεί σε επίπεδα αρχεία. Έτσι, η Hive μπορεί να χρησιμοποιήσει δομές καταλόγου για να "διαμερίσει" δεδομένα για να βελτιώσει την απόδοση σε ορισμένα ερωτήματα.
- Ένα νέο και σημαντικό συστατικό του Hive, δηλαδή το Metastore που χρησιμοποιείται για την αποθήκευση πληροφοριών σχήματος. Αυτό το Metastore συνήθως βρίσκεται σε σχεσιακή βάση δεδομένων. Μπορούμε να αλληλεπιδράσουμε με το Hive χρησιμοποιώντας μεθόδους όπως
- GUI ιστού
- Διεπαφή Java Database Connectivity (JDBC)
- Οι περισσότερες αλληλεπιδράσεις τείνουν να πραγματοποιούνται μέσω μιας διεπαφής γραμμής εντολών (CLI). Η Hive παρέχει ένα CLI για τη σύνταξη ερωτημάτων Hive χρησιμοποιώντας τη γλώσσα ερωτήματος Hive (HQL)
- Γενικά, η σύνταξη HQL είναι παρόμοια με τη σύνταξη SQL με την οποία γνωρίζουν οι περισσότεροι αναλυτές δεδομένων. Το παρακάτω δείγμα ερωτήματος εμφανίζει όλες τις εγγραφές που υπάρχουν στο όνομα του πίνακα που αναφέρεται.
- Δείγμα ερωτήματος : Επιλέξτε * από
- Δείγμα ερωτήματος : Επιλέξτε * από
- Η ομάδα υποστηρίζει τέσσερις μορφές αρχείων που είναι TEXTFILE, SEQUENCEFILE, ORC και RCFILE (Record Columnar File).
- Για αποθήκευση μεταδεδομένων ενός χρήστη, η Hive χρησιμοποιεί βάση δεδομένων derby και για πολλά μεταδεδομένα χρήστη ή κοινόχρηστη περίπτωση μεταδεδομένων Η Hive χρησιμοποιεί MYSQL.
Για τη ρύθμιση της MySQL ως βάσης δεδομένων και για την αποθήκευση μεταδεδομένων πληροφοριών, ελέγξτε τον Οδηγό "Εγκατάσταση και διαμόρφωση του HIVE και MYSQL"
Μερικά από τα βασικά σημεία για την κυψέλη:
- Η κύρια διαφορά μεταξύ HQL και SQL είναι ότι το ερώτημα Hive εκτελείται στην υποδομή του Hadoop και όχι στην παραδοσιακή βάση δεδομένων.
- Η εκτέλεση του ερωτήματος Hive θα είναι σαν μια σειρά από αυτόματα δημιουργημένες εργασίες μείωσης χαρτών.
- Η ομάδα υποστηρίζει έννοιες διαμέρισης και κάδων για εύκολη ανάκτηση δεδομένων όταν ο πελάτης εκτελεί το ερώτημα.
- Η Hive υποστηρίζει ειδικά προσαρμοσμένα UDF (Λειτουργίες που καθορίζονται από το χρήστη) για τον καθαρισμό δεδομένων, το φιλτράρισμα κ.λπ. Σύμφωνα με τις απαιτήσεις των προγραμματιστών μπορεί κανείς να ορίσει Hive UDFs.
Σχεσιακές βάσεις δεδομένων Hive Vs: -
Χρησιμοποιώντας το Hive, μπορούμε να εκτελέσουμε κάποια ιδιαίτερη λειτουργικότητα που δεν επιτυγχάνεται στις σχεσιακές βάσεις δεδομένων. Για έναν τεράστιο όγκο δεδομένων που είναι σε χάρτη-bytes, είναι σημαντικό να το ζητήσετε και να λάβετε αποτελέσματα σε δευτερόλεπτα. Και το Hive το κάνει αρκετά αποτελεσματικά, επεξεργάζεται τα ερωτήματα γρήγορα και παράγει αποτελέσματα στη δεύτερη στιγμή.
Ας δούμε τώρα τι κάνει την κυψέλη τόσο γρήγορα.
Ορισμένες βασικές διαφορές μεταξύ Hive και σχεσιακών βάσεων δεδομένων είναι οι ακόλουθες.
Οι σχεσιακές βάσεις δεδομένων είναι " Schema on READ και Schema on Write ". Πρώτα δημιουργώντας έναν πίνακα και μετά εισάγοντας δεδομένα στον συγκεκριμένο πίνακα. Σε σχεσιακούς πίνακες βάσεων δεδομένων, λειτουργίες όπως Εισαγωγές, Ενημερώσεις και Τροποποιήσεις μπορούν να εκτελεστούν.
Η κυψέλη είναι " Schema on READ only ". Λοιπόν, λειτουργίες όπως η ενημέρωση, οι τροποποιήσεις κ.λπ. δεν λειτουργούν με αυτό. Επειδή το ερώτημα Hive σε ένα τυπικό σύμπλεγμα εκτελείται σε πολλούς κόμβους δεδομένων. Επομένως, δεν είναι δυνατή η ενημέρωση και τροποποίηση δεδομένων σε πολλούς κόμβους. (Εκδόσεις κυψελών κάτω από 0,13)
Επίσης, το Hive υποστηρίζει το μοτίβο " READ Many WRITE Once ". Αυτό σημαίνει ότι μετά την εισαγωγή πίνακα μπορούμε να ενημερώσουμε τον πίνακα στις τελευταίες εκδόσεις Hive.
ΣΗΜΕΙΩΣΗ : Ωστόσο, η νέα έκδοση του Hive έρχεται με ενημερωμένες δυνατότητες. Οι εκδόσεις Hive (Hive 0.14) έρχονται με επιλογές ενημέρωσης και διαγραφής ως νέες δυνατότητες
Αρχιτεκτονική κυψέλης
Το παραπάνω στιγμιότυπο οθόνης εξηγεί λεπτομερώς την αρχιτεκτονική Apache Hive
Η κυψέλη αποτελείται κυρίως από 3 βασικά μέρη
- Πελάτες κυψέλης
- Υπηρεσίες κυψελών
- Αποθήκευση και υπολογισμός κυψελών
Πελάτες κυψέλης:
Η Hive παρέχει διαφορετικά προγράμματα οδήγησης για επικοινωνία με διαφορετικό τύπο εφαρμογών. Για εφαρμογές βασισμένες σε Thrift, θα παρέχει πελάτη Thrift για επικοινωνία.
Για εφαρμογές που σχετίζονται με Java, παρέχει προγράμματα οδήγησης JDBC. Εκτός από κάθε τύπο εφαρμογών που παρέχονται προγράμματα οδήγησης ODBC. Αυτοί οι Πελάτες και προγράμματα οδήγησης με τη σειρά τους επικοινωνούν ξανά με τον διακομιστή Hive στις υπηρεσίες Hive.
Υπηρεσίες κυψέλης:
Οι αλληλεπιδράσεις πελατών με το Hive μπορούν να πραγματοποιηθούν μέσω των Υπηρεσιών Hive. Εάν ο πελάτης θέλει να εκτελέσει οποιεσδήποτε λειτουργίες σχετικές με ερωτήματα στο Hive, πρέπει να επικοινωνήσει μέσω των υπηρεσιών Hive
Το CLI είναι η διεπαφή γραμμής εντολών που λειτουργεί ως υπηρεσία Hive για λειτουργίες DDL (Γλώσσα ορισμού δεδομένων). Όλα τα προγράμματα οδήγησης επικοινωνούν με τον διακομιστή Hive και με τον κύριο οδηγό στις υπηρεσίες Hive όπως φαίνεται στο παραπάνω διάγραμμα αρχιτεκτονικής.
Το πρόγραμμα οδήγησης που υπάρχει στις υπηρεσίες Hive αντιπροσωπεύει το κύριο πρόγραμμα οδήγησης και επικοινωνεί όλους τους τύπους εφαρμογών JDBC, ODBC και άλλων συγκεκριμένων πελατών. Το πρόγραμμα οδήγησης θα επεξεργαστεί αυτά τα αιτήματα από διαφορετικές εφαρμογές σε συστήματα μετα-αποθήκευσης και πεδίου για περαιτέρω επεξεργασία.
Αποθήκευση και υπολογισμός κυψελών:
Οι υπηρεσίες κυψέλης, όπως το Meta store, το σύστημα αρχείων και ο Job Client, με τη σειρά τους, επικοινωνούν με το Hive storage και εκτελούν τις ακόλουθες ενέργειες
- Οι πληροφορίες μεταδεδομένων των πινάκων που δημιουργήθηκαν στο Hive αποθηκεύονται στο Heta "Meta storage database".
- Τα αποτελέσματα των ερωτημάτων και τα δεδομένα που φορτώνονται στους πίνακες θα αποθηκευτούν στο σύμπλεγμα Hadoop σε HDFS.
Ροή εκτελέσεων εργασίας:
Από το παραπάνω στιγμιότυπο οθόνης μπορούμε να κατανοήσουμε τη ροή εκτέλεσης εργασίας στο Hive with Hadoop
Η ροή δεδομένων στο Hive συμπεριφέρεται στο ακόλουθο μοτίβο.
- Εκτέλεση ερωτήματος από το περιβάλλον εργασίας χρήστη (διεπαφή χρήστη)
- Το πρόγραμμα οδήγησης αλληλεπιδρά με το Compiler για να πάρει το πρόγραμμα. (Εδώ το σχέδιο αναφέρεται στην εκτέλεση ερωτήματος) διαδικασία και τη σχετική συγκέντρωση πληροφοριών μεταδεδομένων
- Ο μεταγλωττιστής δημιουργεί το σχέδιο για μια εργασία που θα εκτελεστεί. Ο μεταγλωττιστής επικοινωνεί με το κατάστημα Meta για λήψη αιτήματος μεταδεδομένων
- Το Meta store στέλνει πληροφορίες μεταδεδομένων πίσω στον μεταγλωττιστή
- Ο μεταγλωττιστής επικοινωνεί με το πρόγραμμα οδήγησης με το προτεινόμενο σχέδιο εκτέλεσης του ερωτήματος
- Πρόγραμμα οδήγησης Αποστολή σχεδίων εκτέλεσης στον κινητήρα εκτέλεσης
- Το Execution Engine (EE) λειτουργεί ως γέφυρα μεταξύ Hive και Hadoop για την επεξεργασία του ερωτήματος. Για λειτουργίες DFS.
- Ο ΕΕ πρέπει πρώτα να επικοινωνήσει με τον Όνομα κόμβου και έπειτα στους κόμβους δεδομένων για να πάρει τις τιμές που είναι αποθηκευμένες στους πίνακες.
- Η ΕΕ θα πάρει τα επιθυμητά αρχεία από τους κόμβους δεδομένων. Τα πραγματικά δεδομένα των πινάκων βρίσκονται μόνο στον κόμβο δεδομένων. Ενώ από το Name Node ανακτά μόνο τις πληροφορίες μεταδεδομένων για το ερώτημα.
- Συλλέγει πραγματικά δεδομένα από κόμβους δεδομένων που σχετίζονται με το αναφερόμενο ερώτημα
- Το Execution Engine (EE) επικοινωνεί αμφίδρομα με το Meta store που υπάρχει στο Hive για να εκτελεί λειτουργίες DDL (Data Definition Language). Εδώ γίνονται πράξεις DDL όπως CREATE, DROP και ALTERING πίνακες και βάσεις δεδομένων. Το Meta store θα αποθηκεύει πληροφορίες σχετικά με το όνομα της βάσης δεδομένων, τα ονόματα πινάκων και τα ονόματα στηλών. Θα ανακτήσει δεδομένα που σχετίζονται με το ερώτημα που αναφέρεται.
- Το Execution Engine (EE) με τη σειρά του επικοινωνεί με δαίμονες Hadoop όπως κόμβος ονόματος, κόμβοι δεδομένων και εντοπιστής εργασίας για την εκτέλεση του ερωτήματος πάνω από το σύστημα αρχείων Hadoop
- Λήψη αποτελεσμάτων από το πρόγραμμα οδήγησης
- Αποστολή αποτελεσμάτων στον κινητήρα εκτέλεσης. Μόλις ληφθούν τα αποτελέσματα από κόμβους δεδομένων στο ΕΕ, θα στείλει τα αποτελέσματα πίσω στο πρόγραμμα οδήγησης και στο περιβάλλον χρήστη (διεπαφή)
Hive Συνεχώς σε επαφή με το σύστημα αρχείων Hadoop και τους δαίμονες του μέσω της μηχανής εκτέλεσης. Το διακεκομμένο βέλος στο διάγραμμα ροής εργασίας δείχνει την επικοινωνία κινητήρα εκτέλεσης με δαίμονες Hadoop.
Διαφορετικοί τρόποι κυψέλης
Η κυψέλη μπορεί να λειτουργήσει με δύο τρόπους ανάλογα με το μέγεθος των κόμβων δεδομένων στο Hadoop.
Αυτοί οι τρόποι είναι,
- Τοπική λειτουργία
- Λειτουργία μείωσης χάρτη
Πότε να χρησιμοποιήσετε την τοπική λειτουργία:
- Εάν το Hadoop εγκατασταθεί σε λειτουργία ψευδο με έναν κόμβο δεδομένων, χρησιμοποιούμε Hive σε αυτήν τη λειτουργία
- Εάν το μέγεθος των δεδομένων είναι μικρότερο από την άποψη του περιορισμένου σε ένα τοπικό μηχάνημα, μπορούμε να χρησιμοποιήσουμε αυτήν τη λειτουργία
- Η επεξεργασία θα είναι πολύ γρήγορη σε μικρότερα σύνολα δεδομένων που υπάρχουν στο τοπικό μηχάνημα
Πότε να χρησιμοποιήσετε τη λειτουργία μείωσης χάρτη:
- Εάν το Hadoop έχει πολλούς κόμβους δεδομένων και τα δεδομένα κατανέμονται σε διαφορετικούς κόμβους, χρησιμοποιούμε Hive σε αυτήν τη λειτουργία
- Θα εκτελεστεί σε μεγάλο αριθμό συνόλων δεδομένων και το ερώτημα θα εκτελεστεί με παράλληλο τρόπο
- Η επεξεργασία μεγάλων συνόλων δεδομένων με καλύτερη απόδοση μπορεί να επιτευχθεί μέσω αυτής της λειτουργίας
Στην κυψέλη, μπορούμε να ορίσουμε αυτήν την ιδιότητα ώστε να αναφέρει ποια λειτουργία μπορεί να λειτουργήσει η κυψέλη; Από προεπιλογή, λειτουργεί σε λειτουργία μείωσης χάρτη και για τοπική λειτουργία μπορείτε να έχετε την ακόλουθη ρύθμιση.
Κυψέλη για εργασία σε τοπική λειτουργία
SET mapred.job.tracker = τοπικό;
Από την έκδοση Hive 0.7 υποστηρίζει τη λειτουργία αυτόματης εκτέλεσης χαρτών μείωσης εργασιών στην τοπική λειτουργία.
Τι είναι το Hive Server2 (HS2);
Το HiveServer2 (HS2) είναι μια διεπαφή διακομιστή που εκτελεί τις ακόλουθες λειτουργίες:
- Επιτρέπει στους απομακρυσμένους πελάτες να εκτελούν ερωτήματα εναντίον του Hive
- Ανακτήστε τα αποτελέσματα των αναφερόμενων ερωτημάτων
Από την τελευταία έκδοση έχει κάποιες προηγμένες δυνατότητες Βάσει Thrift RPC όπως?
- Συνδυασμός πολλαπλών πελατών
- Αυθεντικοποίηση
Περίληψη:
Το Hive είναι ένα εργαλείο αποθήκευσης δεδομένων ETL και δεδομένων πάνω από το οικοσύστημα Hadoop και χρησιμοποιείται για την επεξεργασία δομημένων και ημι-δομημένων δεδομένων.
- Το Hive είναι μια βάση δεδομένων που υπάρχει στο οικοσύστημα Hadoop και εκτελεί λειτουργίες DDL και DML και παρέχει ευέλικτη γλώσσα ερωτημάτων όπως HQL για καλύτερη αναζήτηση και επεξεργασία δεδομένων.
- Παρέχει τόσα πολλά χαρακτηριστικά σε σύγκριση με το RDMS που έχει ορισμένους περιορισμούς.
Για συγκεκριμένη λογική χρήστη για την κάλυψη των απαιτήσεων του πελάτη.
- Παρέχει δυνατότητα γραφής και ανάπτυξης προσαρμοσμένων καθορισμένων σεναρίων και λειτουργιών καθορισμένων από τον χρήστη.
- Επιπλέον, παρέχει διαμερίσματα και κάδους για συγκεκριμένες λογικές αποθήκευσης.