Το Hive είναι ένα ευρέως χρησιμοποιούμενο εργαλείο Big Data Analytics στην επιχείρηση και είναι ένα φανταστικό μέρος για να ξεκινήσετε εάν είστε νέοι στα Big Data. Αυτό το μάθημα του Apache Hive περιγράφει τις βασικές αρχές του Apache Hive, γιατί είναι απαραίτητο μια κυψέλη, τα χαρακτηριστικά της και οτιδήποτε άλλο πρέπει να γνωρίζετε.
Ας καταλάβουμε πρώτα το πλαίσιο Hadoop πάνω στο οποίο βασίζεται το Apache Hive.
Apache Hadoop
Το Apache Hadoop είναι ένα δωρεάν και ανοικτού κώδικα πλατφόρμα για την αποθήκευση και την επεξεργασία μεγάλων συνόλων δεδομένων που κυμαίνονται σε μέγεθος από gigabyte έως petabyte. Το Hadoop επιτρέπει τη ομαδοποίηση πολλών υπολογιστών για την ανάλυση τεράστιων συνόλων δεδομένων παράλληλα, αντί να απαιτείται ένας μεγάλος υπολογιστής για την αποθήκευση και ανάλυση των δεδομένων.
Το MapReduce και το κατανεμημένο σύστημα αρχείων Hadoop είναι δύο από τα στοιχεία:
- ΜΕΙΩΣΗ ΧΑΡΤΗ – Το MapReduce είναι μια τεχνική παράλληλου προγραμματισμού για τη διαχείριση τεράστιων όγκων οργανωμένων, ημιδομημένων και μη δομημένων δεδομένων σε συστάδες υλικού εμπορευμάτων.
- ΚΑΕ – Το HDFS (Hadoop Distributed File System) είναι ένα στοιχείο πλαισίου Hadoop που αποθηκεύει και επεξεργάζεται δεδομένα. Είναι ένα σύστημα αρχείων με ανοχή σε σφάλματα που εκτελείται σε τυπικό υλικό
Διαφορετικά υποέργα (εργαλεία) στο οικοσύστημα Hadoop, συμπεριλαμβανομένων των Sqoop, Pig και Hive, χρησιμοποιούνται για να βοηθήσουν τις μονάδες Hadoop.
- Κυψέλη – Το Hive είναι ένα πλαίσιο για τη σύνταξη σεναρίων σε στυλ SQL που εκτελούν υπολογισμούς MapReduce.
- Χοίρος – Το Pig είναι μια διαδικαστική γλώσσα προγραμματισμού που μπορεί να χρησιμοποιηθεί για τη δημιουργία ενός σεναρίου για διαδικασίες MapReduce.
- Κουτάλα – Το Sqoop είναι ένα εργαλείο εισαγωγής και εξαγωγής δεδομένων μεταξύ HDFS και RDBMS.
Τι είναι Κυψέλη Apache?
Το Apache Hive είναι ανοιχτού κώδικα αποθήκη δεδομένων πρόγραμμα για ανάγνωση, γραφή και διαχείριση τεράστιων συνόλων δεδομένων που είναι αποθηκευμένα απευθείας στο Apache Hadoop Distributed File System (HDFS) ή σε άλλα συστήματα αποθήκευσης δεδομένων όπως το Apache HBase.
Οι προγραμματιστές SQL μπορούν να χρησιμοποιήσουν το Hive για να δημιουργήσουν δηλώσεις Hive Query Language (HQL) για ερωτήματα και ανάλυση δεδομένων που είναι συγκρίσιμες με τις κανονικές δηλώσεις SQL. Δημιουργήθηκε για να διευκολύνει τον προγραμματισμό του MapReduce εξαλείφοντας την ανάγκη εκμάθησης και εγγραφής μεγάλου κώδικα Java. Αντίθετα, μπορείτε να γράψετε τα ερωτήματά σας σε HQL και το Hive θα δημιουργήσει τον χάρτη και θα μειώσει τις λειτουργίες για εσάς.
Η διεπαφή τύπου SQL του Apache Hive έχει γίνει το Gold Standard για την εκτέλεση ad-hoc αναζητήσεων, τη σύνοψη και την ανάλυση δεδομένων Hadoop. Όταν περιλαμβάνεται στο σύννεφο υπολογιστικά δίκτυα, αυτή η λύση είναι ιδιαίτερα οικονομική και επεκτάσιμη, γι' αυτό πολλές εταιρείες, συμπεριλαμβανομένων των Netflix και Amazon, συνεχίζουν να αναπτύσσουν και να βελτιώνουν το Apache Hive.
Ιστορικό
Κατά τη διάρκεια του χρόνου τους στο Facebook, ο Joydeep Sen Sarma και ο Ashish Suchoo συνδημιούργησαν το Apache Hive. Και οι δύο αναγνώρισαν ότι για να αξιοποιήσουν στο έπακρο το Hadoop, θα έπρεπε να δημιουργήσουν μερικές αρκετά περίπλοκες εργασίες Java Map-Reduce. Αναγνώρισαν ότι δεν θα ήταν σε θέση να εκπαιδεύσουν τις ταχέως αναπτυσσόμενες μηχανικές και αναλυτικές ομάδες τους σχετικά με τις δεξιότητες που θα χρειάζονταν για να αξιοποιήσουν το Hadoop σε όλη την εταιρεία. Οι μηχανικοί και οι αναλυτές χρησιμοποιούσαν συχνά την SQL ως διεπαφή χρήστη.
Ενώ η SQL θα μπορούσε να καλύψει την πλειοψηφία των αναγκών ανάλυσης, οι προγραμματιστές σκόπευαν επίσης να ενσωματώσουν τη δυνατότητα προγραμματισμού του Hadoop. Το Apache Hive προέκυψε από αυτούς τους δύο στόχους: μια δηλωτική γλώσσα βασισμένη σε SQL που επέτρεπε επίσης στους προγραμματιστές να εισάγουν τα δικά τους σενάρια και προγράμματα όταν η SQL δεν ήταν αρκετή.
Αναπτύχθηκε επίσης για να διατηρεί κεντρικά μεταδεδομένα (με βάση το Hadoop) σχετικά με όλα τα σύνολα δεδομένων της εταιρείας για να διευκολύνει την κατασκευή οργανισμών που βασίζονται σε δεδομένα.
Πώς λειτουργεί το Apache Hive;
Με λίγα λόγια, το Apache Hive μετατρέπει ένα πρόγραμμα εισόδου γραμμένο στη γλώσσα HiveQL (όπως SQL) σε μία ή περισσότερες εργασίες Java MapReduce, Tez ή Spark. (Όλες αυτές οι μηχανές εκτέλεσης είναι συμβατές με το Hadoop YARN.) Μετά από αυτό, το Apache Hive ταξινομεί τα δεδομένα σε πίνακες για το κατανεμημένο σύστημα αρχείων Hadoop HDFS) και εκτελεί τις εργασίες σε ένα σύμπλεγμα για να λάβει μια απάντηση.
ημερομηνία
Οι πίνακες Apache Hive είναι διατεταγμένοι με τον ίδιο τρόπο που οργανώνονται οι πίνακες σε μια σχεσιακή βάση δεδομένων, με μονάδες δεδομένων που κυμαίνονται σε μέγεθος από μεγαλύτερο έως μικρότερο. Οι βάσεις δεδομένων αποτελούνται από πίνακες που χωρίζονται σε τμήματα, τα οποία χωρίζονται περαιτέρω σε κουβάδες. Το HiveQL (Hive Query Language) χρησιμοποιείται για την πρόσβαση στα δεδομένα, τα οποία μπορούν να τροποποιηθούν ή να προσαρτηθούν. Τα δεδομένα πίνακα είναι σειριακά σε κάθε βάση δεδομένων και κάθε πίνακας έχει τον δικό του κατάλογο HDFS.
Αρχιτεκτονική
Τώρα θα μιλήσουμε για την πιο σημαντική πτυχή του Hive Architecture. Τα στοιχεία του Apache Hive είναι τα εξής:
Metastore — Παρακολουθεί πληροφορίες για κάθε τραπέζι, όπως τη δομή και τη θέση του. Τα μεταδεδομένα του διαμερίσματος περιλαμβάνονται επίσης στο Hive. Αυτό επιτρέπει στο πρόγραμμα οδήγησης να παρακολουθεί την πρόοδο διαφορετικών συνόλων δεδομένων που είναι κατανεμημένα σε όλο το σύμπλεγμα. Τα δεδομένα αποθηκεύονται σε μια συμβατική μορφή RDBMS. Τα μεταδεδομένα Hive είναι εξαιρετικά σημαντικά για τον οδηγό να παρακολουθεί τα δεδομένα. Ο διακομιστής δημιουργίας αντιγράφων ασφαλείας αντιγράφει δεδομένα σε τακτική βάση, ώστε να μπορεί να ανακτηθεί σε περίπτωση απώλειας δεδομένων.
Οδηγός – Οι δηλώσεις HiveQL λαμβάνονται από ένα πρόγραμμα οδήγησης, το οποίο λειτουργεί ως ελεγκτής. Με τη δημιουργία συνεδριών, το πρόγραμμα οδήγησης ξεκινά την εκτέλεση της δήλωσης. Παρακολουθεί τη διάρκεια ζωής και την πρόοδο του στελέχους. Κατά την εκτέλεση μιας δήλωσης HiveQL, το πρόγραμμα οδήγησης αποθηκεύει τα απαιτούμενα μεταδεδομένα. Λειτουργεί επίσης ως σημείο συλλογής αποτελεσμάτων δεδομένων ή ερωτημάτων μετά τη διαδικασία Μείωσης.
Μεταγλωττιστής – Εκτελεί τη συλλογή ερωτημάτων HiveQL. Το ερώτημα μετατρέπεται τώρα σε σχέδιο εκτέλεσης. Οι εργασίες αναφέρονται στο σχέδιο. Περιλαμβάνει επίσης τα βήματα που πρέπει να κάνει το MapReduce για να αποκτήσει το αποτέλεσμα όπως μεταφράζεται από το ερώτημα. Το ερώτημα μετατρέπεται σε Abstract Syntax Tree από τον μεταγλωττιστή του Hive (AST). Μετατρέπει το AST σε Κατευθυνόμενο Ακυκλικό Γράφημα μετά από έλεγχο συμβατότητας και σφαλμάτων χρόνου μεταγλώττισης (DAG).
Optimizer – Βελτιστοποιεί το DAG εκτελώντας διαφορετικές αλλαγές στο σχέδιο εκτέλεσης. Συνδυάζει μετασχηματισμούς για βελτιωμένη απόδοση, όπως η μετατροπή ενός αγωγού συνδέσμων σε ενιαία ένωση. Για να βελτιώσει την ταχύτητα, το εργαλείο βελτιστοποίησης μπορεί να διαιρέσει δραστηριότητες, όπως η εφαρμογή μετασχηματισμού σε δεδομένα πριν από την εκτέλεση μιας λειτουργίας μείωσης.
Εκτελεστής διαθήκης – Ο εκτελεστής εκτελεί τις εργασίες όταν ολοκληρωθεί η μεταγλώττιση και η βελτιστοποίηση. Οι εργασίες διοχετεύονται από τον Εκτελεστή.
CLI, UI και Thrift Server – Η διεπαφή γραμμής εντολών (CLI) είναι μια διεπαφή χρήστη που επιτρέπει σε έναν εξωτερικό χρήστη να επικοινωνεί με το Hive. Ο thrift server του Hive, παρόμοιος με τα πρωτόκολλα JDBC ή ODBC, επιτρέπει σε εξωτερικούς πελάτες να επικοινωνούν με το Hive μέσω δικτύου.
Ασφάλεια
Το Apache Hive είναι ενσωματωμένο με την ασφάλεια Hadoop, η οποία χρησιμοποιεί Kerberos για αμοιβαίο έλεγχο ταυτότητας πελάτη-διακομιστή. Το HDFS υπαγορεύει δικαιώματα για αρχεία που δημιουργήθηκαν πρόσφατα στο Apache Hive, επιτρέποντάς σας να εγκρίνετε από τον χρήστη, την ομάδα και άλλους.
Βασικά χαρακτηριστικά
- Το Hive υποστηρίζει εξωτερικούς πίνακες, οι οποίοι σας επιτρέπουν να επεξεργάζεστε δεδομένα χωρίς να τα αποθηκεύετε σε HDFS.
- Επιτρέπει επίσης την τμηματοποίηση δεδομένων σε επίπεδο πίνακα για αύξηση της ταχύτητας.
- Το Apache Hive καλύπτει άριστα την ανάγκη διεπαφής χαμηλού επιπέδου του Hadoop.
- Το Hive διευκολύνει τη σύνοψη, την υποβολή ερωτημάτων και την ανάλυση δεδομένων.
- Το HiveQL δεν απαιτεί δεξιότητες προγραμματισμού. αρκεί μια απλή κατανόηση των ερωτημάτων SQL.
- Μπορούμε επίσης να χρησιμοποιήσουμε το Hive για να διεξάγουμε ad-hoc ερωτήματα για ανάλυση δεδομένων.
- Είναι επεκτάσιμο, οικείο και προσαρμόσιμο.
- Το HiveQL δεν απαιτεί δεξιότητες προγραμματισμού. αρκεί μια απλή κατανόηση των ερωτημάτων SQL.
Oφέλη
Το Apache Hive επιτρέπει αναφορές τέλους ημέρας, ημερήσιες αξιολογήσεις συναλλαγών, ad-hoc αναζητήσεις και ανάλυση δεδομένων. Οι ολοκληρωμένες πληροφορίες που παρέχονται από το Apache Hive προσφέρουν σημαντικά ανταγωνιστικά πλεονεκτήματα και σας διευκολύνουν να ανταποκριθείτε στις απαιτήσεις της αγοράς.
Ακολουθούν ορισμένα από τα πλεονεκτήματα της άμεσης διαθεσιμότητας τέτοιων πληροφοριών:
- Ευκολία στη χρήση – Με τη γλώσσα που μοιάζει με SQL, τα δεδομένα ερωτημάτων είναι εύκολα κατανοητά.
- Ταχεία εισαγωγή δεδομένων — Επειδή το Apache Hive διαβάζει το σχήμα χωρίς να επαληθεύει τον τύπο του πίνακα ή τον ορισμό του σχήματος, τα δεδομένα δεν χρειάζεται να διαβαστούν, να αναλυθούν και να σειριοποιηθούν σε δίσκο στην εσωτερική μορφή της βάσης δεδομένων. Αντίθετα, σε μια συμβατική βάση δεδομένων, τα δεδομένα πρέπει να επικυρώνονται κάθε φορά που προστίθενται.
- Ανώτερη επεκτασιμότητα, ευελιξία και οικονομική απόδοση – Επειδή τα δεδομένα αποθηκεύονται στο HDFS, το Apache Hive μπορεί να χωρέσει 100s petabyte δεδομένων, καθιστώντας το μια πολύ πιο επεκτάσιμη επιλογή από μια τυπική βάση δεδομένων. Το Apache Hive, ως υπηρεσία Hadoop που βασίζεται σε σύννεφο, επιτρέπει στους πελάτες να περιστρέφουν γρήγορα πάνω και κάτω εικονικούς διακομιστές για να ανταποκρίνονται στους μεταβαλλόμενους φόρτους εργασίας.
- Εκτεταμένη ικανότητα εργασίας – Τα μεγάλα σύνολα δεδομένων μπορούν να χειριστούν έως και 100,000 ερωτήματα ανά ώρα.
Περιορισμοί
- Γενικά, τα ερωτήματα του Apache Hive έχουν πολύ υψηλή καθυστέρηση.
- Η υποστήριξη υποερωτημάτων είναι περιορισμένη.
- Τα ερωτήματα σε πραγματικό χρόνο και οι αλλαγές σε επίπεδο σειράς δεν είναι διαθέσιμα στο Apache Hive.
- Δεν υπάρχει υποστήριξη για υλοποιημένες απόψεις.
- Στην ομάδα, οι ενέργειες ενημέρωσης και διαγραφής δεν υποστηρίζονται.
- Δεν προορίζεται για OLTP (διαδικτυακή μεταβατική διαδικασία).
Ξεκινώντας με το Apache Hive
Το Apache Hive είναι ένας ισχυρός συνεργάτης Hadoop που απλοποιεί και εκσυγχρονίζει τις ροές εργασίας σας. Για να αξιοποιήσετε στο έπακρο το Apache Hive, η απρόσκοπτη ενσωμάτωση είναι απαραίτητη. Το πρώτο βήμα είναι να πάτε στο .
1. Κυψέλη εγκατάστασης από σταθερή απελευθέρωση
Ξεκινήστε κάνοντας λήψη της πιο πρόσφατης σταθερής έκδοσης του Hive από έναν από τους καθρέφτες λήψης Apache (βλ. Εκδόσεις κυψέλης). Το tarball πρέπει στη συνέχεια να αποσυσκευαστεί. Αυτό θα δημιουργήσει έναν υποφάκελο που ονομάζεται hive-xyz (όπου xyz είναι ο αριθμός έκδοσης):
Ρυθμίστε τη μεταβλητή περιβάλλοντος HIVE_HOME ώστε να οδηγεί στον κατάλογο εγκατάστασης:
Τέλος, προσθέστε το $HIVE_HOME/bin στο δικό σας PATH
:
2. Running Hive
Το Hive χρησιμοποιεί Hadoop, έτσι:
- πρέπει να έχετε το Hadoop στο δρόμο σας Ή
3. Λειτουργία DLL
Δημιουργία πίνακα Hive
δημιουργεί έναν πίνακα με το όνομα pokes με δύο στήλες, η πρώτη από τις οποίες είναι ακέραιος και η δεύτερη είναι μια συμβολοσειρά.
Περιήγηση στους Πίνακες
Καταχώρηση όλων των πινάκων
Τροποποίηση και πτώση πινάκων
Τα ονόματα των πινάκων μπορούν να αλλάξουν και να προστεθούν ή να αντικατασταθούν στήλες:
Αξίζει να σημειωθεί ότι το REPLACE COLUMNS αντικαθιστά όλες τις υπάρχουσες στήλες, ενώ αλλάζει μόνο τη δομή του πίνακα και όχι τα δεδομένα. Ένα εγγενές SerDe πρέπει να χρησιμοποιείται στον πίνακα. Το REPLACE COLUMNS μπορεί επίσης να χρησιμοποιηθεί για την κατάργηση στηλών από το σχήμα ενός πίνακα:
Πίνακες πτώσης
Υπάρχουν πολλές πρόσθετες λειτουργίες και δυνατότητες στο Apache Hive για τις οποίες μπορείτε να μάθετε από την επίσκεψη στον επίσημο ιστότοπο.
Συμπέρασμα
Ο ορισμός Hive είναι μια διεπαφή προγράμματος δεδομένων για ερωτήματα και ανάλυση για τεράστια σύνολα δεδομένων που είναι χτισμένα πάνω από το Apache Hadoop. Οι επαγγελματίες το επιλέγουν έναντι άλλων προγραμμάτων, εργαλείων και λογισμικού, καθώς έχει σχεδιαστεί κυρίως για εκτεταμένα δεδομένα Hive και είναι απλό στη χρήση.
Ελπίζουμε ότι αυτό το σεμινάριο θα σας βοηθήσει να ξεκινήσετε με το Apache Hive και να κάνετε τις ροές εργασίας σας πιο αποτελεσματικές. Ενημερώστε μας στα σχόλια.
Αφήστε μια απάντηση