Πώς να εγκαταστήσετε το HIVE Ubuntu (Οδηγός λήψης και ρύθμισης)

⚡ Έξυπνη Σύνοψη

Εγκαταστάσεις Apache Hive σε Ubuntu ως ένα λεπτό επίπεδο αποθήκης δεδομένων πάνω από ένα ήδη εκτελούμενο σύμπλεγμα Hadoop, επομένως η εγκατάσταση είναι κυρίως θέμα αποσυμπίεσης ενός αρχείου και κατάδειξης τριών μεταβλητών περιβάλλοντος στους σωστούς καταλόγους.

  • 🧱 Hadoop πρώτα: Κάθε daemon Hadoop πρέπει να εκτελείται ήδη, επειδή το Hive αποθηκεύει τα δεδομένα του πίνακα σε HDFS και υποβάλλει τις εργασίες του στο cluster.
  • (Π.χ. Πηγή λήψης: Οι εκδόσεις δυαδικών αρχείων προέρχονται από τη σελίδα κατοπτρισμού του Apache και η γραμμή 3.x έφτασε στο τέλος της ζωής της τον Οκτώβριο του 2024.
  • 📁 Δύο αρχεία ρυθμίσεων: Το HIVE_HOME ανήκει στο bashrc και το HADOOP_HOME ανήκει στο hive-config.sh μέσα στον κατάλογο Hive bin.
  • 💾 Φάκελοι HDFS: Οι κατάλογοι warehouse και tmp πρέπει να υπάρχουν στο HDFS με δικαιώματα ομαδικής εγγραφής πριν από τη δημιουργία του πρώτου πίνακα.
  • 🧩 Βήμα σχήματος: Το βοηθητικό πρόγραμμα schematool δημιουργεί τους πίνακες metastore και το Hive 3.x και οι νεότερες εκδόσεις αρνούνται να ξεκινήσουν σε ένα μη αρχικοποιημένο σχήμα.
  • 🔨 Επαληθεύστε γρήγορα: Μια εντολή create ακολουθούμενη από describe αποδεικνύει ότι το shell, το metastore και το HDFS είναι όλα συνδεδεμένα σωστά.

Πώς να εγκαταστήσετε το Hive στο Ubuntu

Πριν από την εγκατάσταση του Apache Hive, χρειαζόμαστε έναν ειδικό Hadoop εγκατάσταση, σε λειτουργία με όλους τους δαίμονες Hadoop.

Για την εγκατάσταση του Hadoop, ελέγξτε αυτό σύνδεσμος.

Μόλις όλα τα daemon του Hadoop λειτουργούν σωστά, απλώς ξεκινήστε την εγκατάσταση του τμήματος Hive. Η παρακάτω αναλυτική παρουσίαση περιλαμβάνει τέσσερα στάδια:

Διαδικασία εγκατάστασης Apache Hive

  1. Προαπαιτούμενα και συμβατότητα εκδόσεων
  2. Εγκατάσταση Hive
  3. Αρχικοποίηση σχήματος Metastore
  4. Εντολές κελύφους κυψέλης

Προϋποθέσεις για την εγκατάσταση του Apache Hive σε Ubuntu

Το Hive δεν είναι μια αυτόνομη βάση δεδομένων. Είναι ένα επίπεδο ερωτημάτων που μεταφράζει το HiveQL σε εργασίες που εκτελούνται σε ένα υπάρχον σύμπλεγμα, επομένως σχεδόν κάθε αποτυχημένη εγκατάσταση tracεπιστρέφει σε μια προαπαιτούμενη προϋπόθεση που λείπει αντί για το ίδιο το Hive. Επιβεβαιώστε τα ακόλουθα πριν από τη λήψη οποιουδήποτε στοιχείου:

  • Ένα υποστηριζόμενο JDK. Το Hive 4.1.x τρέχει σε JDK 17, ενώ το Hive 4.2.x ανεβάζει το ελάχιστο σε JDK 21. Ελέγξτε την έκδοση με java -version και βεβαιωθείτε ότι έχει εξαχθεί το JAVA_HOME.
  • Ένα εκτελούμενο σύμπλεγμα Hadoop. Τόσο το NameNode όσο και το DataNode πρέπει να είναι ενεργά. Εκτέλεση jps και επιβεβαιώστε ότι τα NameNode, DataNode, ResourceManager και NodeManager εμφανίζονται όλα στη λίστα.
  • Πρόσβαση εγγραφής στο HDFS. Ο λογαριασμός που εκκινεί το Hive χρειάζεται άδεια για να δημιουργήσει καταλόγους στην ενότητα ΚΑΕ.
  • Αντίστοιχες εκδόσεις. Το Hive 4.2.0 βασίζεται στα Hadoop 3.4.1 και Tez 0.10.5. Η σειρά Hive 3.x έφτασε στο τέλος της τον Οκτώβριο του 2024, επομένως μια νέα εγκατάσταση θα πρέπει να στοχεύσει τη γραμμή 4.x.
  • Δωρεάν πόροι. Μια ρύθμιση εκμάθησης με έναν κόμβο είναι άνετη με περίπου 4 GB μνήμης RAM και 20 GB ελεύθερου δίσκου.

Με αυτά τα πλαίσια επιλεγμένα, η παρακάτω ακολουθία λήψης και αποσυμπίεσης εκτελείται χωρίς εκπλήξεις.

Πώς να εγκαταστήσετε το Hive στο Ubuntu

Παρακάτω είναι μια διαδικασία βήμα προς βήμα σχετικά με τον τρόπο εγκατάστασης του Hive in Ubuntu:

Βήμα 1) Λήψη και εγκατάσταση του Hive στο Ubuntu

Για λήψη της σταθερής ρύθμισης του Hive, ανατρέξτε στο Apache URL όπως αναφέρεται παρακάτω.

https://www.apache.org/dyn/closer.cgi/hive/ — πηγαίνετε στο URL και επιλέξτε τον σύνδεσμο λήψης του κατοπτρισμού Apache. Σελίδα λήψεων Apache Hive παραθέτει ποια ζεύγη κυκλοφορίας με ποια έκδοση Hadoop.

Η σελίδα ειδώλου ανοίγει με τη λίστα των διαθέσιμων καταλόγων έκδοσης του Hive, όπως φαίνεται παρακάτω.

Σελίδα καθρέφτη Apache που παραθέτει τους διαθέσιμους καταλόγους έκδοσης Apache Hive

Επιλέξτε την πιο πρόσφατη έκδοση της εγκατάστασης του Hive. (Στην τρέχουσα περίπτωσή μου είναι το hive – 3.1.2.) Ο φάκελος έκδοσης παραθέτει τα αρχεία δυαδικού κώδικα και πηγαίου κώδικα δίπλα-δίπλα.

Φάκελος έκδοσης Hive που εμφανίζει τα αρχεία δυαδικής και πηγαίας διανομής

Κάντε κλικ στο αρχείο bin και η λήψη θα ξεκινήσει.

Προτροπή λήψης προγράμματος περιήγησης για το αρχείο διανομής apache-hive bin tar.gz

Βήμα 2) Π.χ.tracτο αρχείο tar

Μεταβείτε στη θέση του ληφθέντος αρχείου tar και, στη συνέχεια, π.χ.tract το αρχείο tar χρησιμοποιώντας την ακόλουθη εντολή για να εγκαταστήσετε το Hive στο Ubuntu στο σύστημά σας.

tar -xvf  apache-hive-3.1.2-bin.tar.gz

Το τερματικό επαναλαμβάνει κάθε αρχείο καθώς αποσυμπιέζεται στον νέο κατάλογο Hive.

Έξοδος τερματικού ενώ το αρχείο tar Hive είναι εκτός λειτουργίαςtracted σε Ubuntu

Βήμα 3) Τοποθετήστε διαφορετικές ιδιότητες διαμόρφωσης στο Apache Hive

Σε αυτό το βήμα, θα κάνουμε δύο πράγματα:

  1. Τοποθέτηση της αρχικής διαδρομής του Hive στο αρχείο bashrc
  2. Τοποθέτηση της θέσης της αρχικής διαδρομής Hadoop στο hive-config.sh

1) Αναφέρετε τη διαδρομή Hive στο ~/.bashrc

Ανοίξτε το αρχείο για επεξεργασία με την εντολή που φαίνεται παρακάτω.

Εντολή που ανοίγει το αρχείο bashrc για την επεξεργασία των μεταβλητών περιβάλλοντος Hive

  • Ανοίξτε το αρχείο bashrc όπως φαίνεται στο παραπάνω στιγμιότυπο οθόνης
  • Αναφέρετε την αρχική διαδρομή του Hive, δηλαδή τη διαδρομή HIVE_HOME, στο αρχείο bashrc και εξαγάγετε το όπως φαίνεται παρακάτω.

Προστέθηκαν οι γραμμές εξαγωγής HIVE_HOME και PATH στο τέλος του αρχείου bashrc

Code για τοποθέτηση στο bashrc:

export HIVE_HOME="/home/guru99hive/apache-hive-1.2.0-bin"
export PATH=$PATH:$HIVE_HOME/bin

Επαναφορτώστε το αρχείο με πηγή ~ / .bashrc έτσι ώστε η νέα διαδρομή να ισχύει στην τρέχουσα συνεδρία τερματικού.

2) Εξαγωγή της διαδρομής Hadoop στο hive-config.sh

Για να επικοινωνήσουμε με το οικοσύστημα Hadoop, ορίζουμε την αρχική διαδρομή του Hadoop στο αρχείο ρυθμίσεων Hive. Ανοίξτε το hive-config.sh όπως φαίνεται παρακάτω.

Εντολή που χρησιμοποιήθηκε για το άνοιγμα του hive-config.sh από τον κατάλογο Hive bin

Αναφέρετε τη διαδρομή HADOOP_HOME στο αρχείο hive-config.sh όπως φαίνεται παρακάτω.

Η διαδρομή HADOOP_HOME δηλώθηκε μέσα στο αρχείο hive-config.sh

Βήμα 4) Δημιουργήστε καταλόγους Hive στο Hadoop

Για να επικοινωνήσουμε με το Hadoop, πρέπει να δημιουργήσουμε καταλόγους στο Hadoop όπως φαίνεται παρακάτω. Το Hive γράφει δεδομένα διαχειριζόμενου πίνακα στον κατάλογο αποθήκης και έξοδο staging στον κατάλογο tmp.

Εντολές HDFS που δημιουργούν τους καταλόγους tmp και αποθήκης Hive

Δίνουμε δικαιώματα root για τη δημιουργία φακέλων Hive στο Hadoop. Εάν δεν εμφανιστεί κανένα μήνυμα σφάλματος, τότε σημαίνει ότι το Hadoop έχει δώσει με επιτυχία δικαιώματα στους φακέλους Hive.

Τερματικό που εμφανίζει δικαιώματα ομαδικής εγγραφής που έχουν εκχωρηθεί στους φακέλους Hive στο HDFS

Βήμα 5) Εισέλθετε στο κέλυφος της κυψέλης

Μπείτε στο κέλυφος της Hive εισάγοντας το '. /κυψέλη' εντολή όπως φαίνεται παρακάτω.

Το μήνυμα προτροπής κελύφους Hive άνοιξε από τον κατάλογο Hive bin στις Ubuntu

Πώς να αρχικοποιήσετε το σχήμα Hive Metastore

Το Hive διατηρεί κάθε όνομα πίνακα, όνομα στήλης και τύπο δεδομένων σε ένα σχεσιακό χώρο αποθήκευσης που ονομάζεται metastore. Σε μια νέα εγκατάσταση, αυτός ο χώρος αποθήκευσης είναι κενός και από το Hive 3.x και μετά το κέλυφος αρνείται να ξεκινήσει μέχρι να υπάρχουν οι πίνακες σχήματος. Το βοηθητικό πρόγραμμα schematool που περιλαμβάνεται στον κατάλογο bin του Hive τους δημιουργεί.

Για μια ρύθμιση εκμάθησης ενός χρήστη, η ενσωματωμένη βάση δεδομένων Derby είναι αρκετή:

$HIVE_HOME/bin/schematool -dbType derby -initSchema

Η εντολή εκτυπώνει την έκδοση σχήματος που δημιούργησε και τελειώνει με Το schemaTool ολοκληρώθηκεΤο Derby γράφει τα αρχεία του σε οποιονδήποτε κατάλογο από τον οποίο εκτελέστηκε η εντολή, επομένως εκκινήστε πάντα το Hive από τον ίδιο κατάλογο στη συνέχεια.

Το Derby δέχεται μόνο μία ενεργή συνεδρία κάθε φορά, γεγονός που το καθιστά ακατάλληλο για κοινόχρηστο σύμπλεγμα. Point Hive στο MySQL αντίθετα, προσθέτοντας τις ιδιότητες σύνδεσης στο hive-site.xml και εκτελώντας ξανά το εργαλείο με διαφορετικό τύπο βάσης δεδομένων:

$HIVE_HOME/bin/schematool -dbType mysql -initSchema

Η πλήρης λίστα ακινήτων και η τοποθέτηση οδηγών καλύπτονται στον οδηγό σχετικά με τον τρόπο ρυθμίστε το μετα-αποθετήριο Hive με MySQLΔύο ακόμη σημαίες που αξίζει να θυμόμαστε:

  • - πληροφορίες Αναφέρει την έκδοση σχήματος που είναι καταγεγραμμένη αυτήν τη στιγμή στο metastore χωρίς να αλλάξει τίποτα.
  • -αναβάθμισηΣχήματος μετεγκαθιστά ένα υπάρχον metastore στην έκδοση σχήματος της πρόσφατα εγκατεστημένης έκδοσης Hive.

Με το σχήμα στη θέση του, το κέλυφος είναι έτοιμο να δεχτεί την πρώτη του πρόταση HiveQL.

Εντολές κελύφους κυψέλης

Εδώ θα δημιουργήσουμε ένα δείγμα πίνακα χρησιμοποιώντας την εντολή "create" του κελύφους Hive με ονόματα στηλών.

Δείγμα κώδικα για τη δημιουργία μιας βάσης δεδομένων στο Hive. Το παρακάτω στιγμιότυπο οθόνης δείχνει την εντολή create και την έξοδο describe, η μία μετά την άλλη.

Έξοδος κελύφους κυψέλης για τον πίνακα δημιουργίας και περιγραφή εντολών προϊόντος

Από το παραπάνω στιγμιότυπο οθόνης μπορούμε να παρατηρήσουμε τα εξής:

1) Δημιουργία ενός δείγματος πίνακα με ονόματα στηλών στο Hive

  • Εδώ το όνομα του πίνακα είναι "προϊόν" με τρία ονόματα στηλών προϊόν, όνομα και τιμή
  • Τα τρία ονόματα στηλών συμβολίζονται με τον αντίστοιχο τύπο δεδομένων τους
  • Όλα τα πεδία τερματίζονται με κόμμα ', '

2) Εμφάνιση πληροφοριών πίνακα Hive

  • Χρησιμοποιώντας την εντολή "describe" μπορούμε να δούμε τις πληροφορίες του πίνακα που υπάρχουν στο Hive.
  • Εδώ εμφανίζονται τα ονόματα των στηλών με τους αντίστοιχους τύπους δεδομένων τους που υπάρχουν στο σχήμα του πίνακα
  • Στο τέλος, θα εμφανιστεί ο χρόνος που χρειάστηκε για την εκτέλεση αυτής της εντολής και ο αριθμός των γραμμών που ανακτήθηκαν.

Δείγμα κώδικα για τη δημιουργία μιας βάσης δεδομένων σε Κυψέλη (για αυτοέλεγχο)

1) Δημιουργήστε τον πίνακα product(product int, pname string, price float)

Row format delimited
Fields terminated by ',';

2) περιγραφή του προϊόντος·

Μόλις ο πίνακας ανταποκριθεί στην περιγραφή, το κέλυφος, το metastore και το HDFS συνδέονται μεταξύ τους. Από εδώ, η ίδια συνεδρία δέχεται το ευρύτερο δημιουργία, τροποποίηση και απόθεση πίνακα δηλώσεις και οι ταξινόμηση κατά, ομαδοποίηση κατά και ομαδοποίηση κατά ερωτήματα.

Συνηθισμένα σφάλματα εγκατάστασης κυψέλης στο Ubuntu και πώς να τα διορθώσετε

Οι περισσότερες αποτυχίες κατά την πρώτη εκτέλεση προέρχονται από το περιβάλλον γύρω από το Hive και όχι από το ίδιο το Hive. Ο παρακάτω πίνακας αντιστοιχίζει τα μηνύματα που εμφανίζονται πιο συχνά με την αιτία τους και την εντολή που τα διαγράφει.

Μήνυμα στην οθόνη Πιθανή αιτία σταθερός
hive: η εντολή δεν βρέθηκε Το HIVE_HOME/bin δεν βρίσκεται στο PATH Ελέγξτε ξανά τις γραμμές εξαγωγής στο bashrc και, στη συνέχεια, εκτελέστε πηγή ~ / .bashrc
Δεν βρέθηκαν πληροφορίες έκδοσης στο metastore Το σχήμα μετααποθήκευσης δεν αρχικοποιήθηκε ποτέ Εκτελέστε το schematool με -initSchema για τον επιλεγμένο τύπο βάσης δεδομένων
Η κλήση στο localhost:9000 απέτυχε λόγω εξαίρεσης σύνδεσης Το HDFS δεν εκτελείται Ξεκινήστε τους δαίμονες Hadoop και επιβεβαιώστε ότι εμφανίζονται οι NameNode και DataNode. jps
Ο κόμβος ονόματος βρίσκεται σε ασφαλή λειτουργία Το NameNode βρίσκεται ακόμα σε ασφαλή λειτουργία εκκίνησης Έξοδος από την ασφαλή λειτουργία με hdfs dfsadmin -safemode άδεια
Άρνηση άδειας: access=WRITE στο /user/hive/warehouse Ο κατάλογος αποθήκης δεν έχει δικαίωμα ομαδικής εγγραφής Κάντε ξανά αίτηση hdfs dfs -chmod g+w στους καταλόγους αποθήκης και tmp
NoSuchMethodError στο Preconditions.checkArgument Η Hive και η Hadoop διαθέτουν διαφορετικές εκδόσεις βάζων Guava. Διαγράψτε το παλαιότερο jar Guava στον κατάλογο Hive lib και αντιγράψτε αυτό του Hadoop στη θέση του.

Ένας γρήγορος τρόπος για να διαχωρίσετε ένα πρόβλημα Hive από ένα πρόβλημα Hadoop είναι να εκτελέσετε jps πρώτα. Εάν οι δαίμονες λείπουν, το σύμπλεγμα είναι το σφάλμα. εάν υπάρχουν και το κέλυφος εξακολουθεί να αποτυγχάνει, το σφάλμα βρίσκεται στη διαμόρφωση του Hive ή στο σχήμα του μετα-αποθηκευτικού συστήματος. Μόλις το κέλυφος είναι σταθερό, το Τελεστές HiveQL και ενσωματωμένες συναρτήσεις Η αναφορά είναι η φυσική επόμενη στάση.

Συχνές Ερωτήσεις

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

Το Hive εκτελείται οπουδήποτε, όπου εκτελείται JVM και Hadoop, αλλά τα shell scripts υποθέτουν διάταξη Unix. Windows οι περισσότερες ομάδες χρησιμοποιούν WSL2 ή μια εικόνα Docker. macOS Το ίδιο αρχείο tar λειτουργεί μόλις εξαχθούν τα JAVA_HOME και HADOOP_HOME.

Το Beeline είναι ένα πρόγραμμα-πελάτης JDBC που συνδέεται με το HiveServer2 αντί να φορτώνει το Hive μέσα στη διεργασία shell. Υποστηρίζει ταυτόχρονους χρήστες και έλεγχο ταυτότητας, και το παλαιότερο Hive CLI έχει καταργηθεί, επομένως οι νέες εγκαταστάσεις θα πρέπει να τυποποιηθούν στο Beeline.

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

Το Copilot δημιουργεί γρήγορα προσχέδια για εξαγωγές bashrc, μπλοκ hive-site.xml και κλήσεις schematool, και οι εκτελεστές agentic μπορούν να τα εκτελέσουν σε ένα sandbox. Αντιμετωπίστε το αποτέλεσμα ως πρώτο προσχέδιο: οι αριθμοί έκδοσης, οι θύρες και οι διαδρομές καταλόγου χρειάζονται ακόμη επαλήθευση σε σχέση με το δικό σας σύμπλεγμα.

Περίπου 4 GB μνήμης RAM και 20 GB ελεύθερου δίσκου είναι άνετα για εκμάθηση, καθώς το ίδιο το Hive είναι ένα thin client. Οι κόμβοι παραγωγής έχουν μέγεθος γύρω από το σύμπλεγμα Hadoop και τη βάση δεδομένων metastore και όχι γύρω από το Hive.

Αποσυμπιέστε τη νέα έκδοση δίπλα στην παλιά, επανατοποθετήστε το HIVE_HOME και, στη συνέχεια, εκτελέστε το schematool με -upgradeSchema, ώστε το metastore να ταιριάζει. Η αφαίρεση είναι απλώς η διαγραφή του καταλόγου Hive και η διαγραφή του.ping οι γραμμές εξαγωγής από το bashrc· τα δεδομένα της αποθήκης HDFS επιβιώνουν.

Όχι. Το MapReduce έχει καταργηθεί ως μηχανή εκτέλεσης Hive και το Hive 4.x εκτελείται σε Apache Tez από προεπιλογή. ΜΕΙΩΣΗ ΧΑΡΤΗ Το μοντέλο εξακολουθεί να αξίζει να κατανοηθεί επειδή ο Tez ακολουθεί το ίδιο κατευθυνόμενο μοντέλο εργασίας.

Συνοψίστε αυτήν την ανάρτηση με: