Γιατί να χρησιμοποιήσετε το MySQL στο Hive ως Metastore:
- Από προεπιλογή, το Hive έρχεται με βάση δεδομένων derby ως metastore.
- Η βάση δεδομένων Derby μπορεί να υποστηρίζει μόνο έναν ενεργό χρήστη κάθε φορά
- Το Derby δεν συνιστάται σε περιβάλλον παραγωγής
Έτσι, η λύση εδώ είναι
- Χρησιμοποιήστε το MYSQL ως Meta storage στο backend για να συνδέσετε πολλούς χρήστες με το Hive κάθε φορά
- Το MYSQL είναι η καλύτερη επιλογή για το αυτόνομο metastore
Βήματα για την εγκατάσταση και ρύθμιση παραμέτρων της βάσης δεδομένων MySQL στο Hive on Hadoop
Βήμα 1) Σε αυτό το βήμα, θα εκτελέσουμε δύο εργασίες
- Εγκατάσταση του διακομιστή mysql
- Έλεγχος του διακομιστή mysql και της διαδικασίας του
- Χρησιμοποιώντας την εντολή sudo apt-get install mysql-server, μπορούμε να πραγματοποιήσουμε λήψη του διακομιστή mysql
Εγκαταστήστε το MySQL όπως φαίνεται στο στιγμιότυπο οθόνης
- Μετά την επιτυχή εγκατάσταση στο τέλος, η MySQL θα εκτελεστεί όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης
Βήμα 2) Εγκατάσταση του MySQL Java Connector. Αυτό είναι για εξαρτήσεις java και σκοπό σύνδεσης
Βήμα 3) Δημιουργία μαλακού συνδέσμου για σύνδεση στον κατάλογο Hive lib . Αυτό είναι για μαλακό σύνδεσμο μεταξύ Java και MySql.
Βήμα 4) Διαμόρφωση χώρου αποθήκευσης MySql στην ομάδα
- Πληκτρολογήστε MySql -u root -p ακολουθούμενο από κωδικό πρόσβασης
- Εδώ -u αντιπροσωπεύει το όνομα χρήστη ρίζας, το p δηλώνει τον κωδικό πρόσβασης
- Αφού εισαγάγετε την παραπάνω εντολή, ο χρήστης πρέπει να εισαγάγει έγκυρο κωδικό πρόσβασης και μετά να κάνει κλικ στο enter
- Στη συνέχεια, θα μπει σε λειτουργία κελύφους MySql
Βήμα 5) Δημιουργία ονόματος χρήστη και κωδικού πρόσβασης για το MySql, παραχώρηση δικαιωμάτων.
Πρέπει να εκτελέσουμε τις εντολές όπως φαίνεται παρακάτω,
mysql> CREATE USER 'hiveuser'@'%' IDENTIFIED BY 'hivepassword';mysql> GRANT all on *.* to 'hiveuser'@localhost identified by 'hivepassword';mysql> flush privileges;
Βήμα 6) Διαμόρφωση hive-site.xml
- Μετά το Βήμα 5 εκχωρήστε το όνομα χρήστη και τον κωδικό πρόσβασης στη βάση δεδομένων MySQL και δίνετε προνόμια.
- Εδώ θα διαμορφώσουμε ορισμένες ιδιότητες στο Hive για να αποκτήσουμε σύνδεση με τη βάση δεδομένων MySQL .
Από το παραπάνω στιγμιότυπο οθόνης, παρατηρούμε τα ακόλουθα. Εδώ ορίζουμε 4 ιδιότητες που θα μπορούσαν να είναι απαραίτητες για να καθιερωθεί το MYSQL ως Meta store στο Hive
Αυτά είναι τα εξής:
- Αυτή η ιδιότητα προορίζεται για τη διεύθυνση URL σύνδεσης. Εδώ ορίζουμε το ConnectionURL σε αυτήν την ιδιότητα. Λειτουργεί ως σύνδεση JDBC και αντιπροσωπεύει επίσης τη θέση του metastore
- Αυτή η ιδιότητα είναι για το όνομα προγράμματος οδήγησης σύνδεσης. Εδώ mysql.jdbc.Driver είναι η σεβαστή τιμή που πρέπει να αναφέρουμε στην τιμή
- Αυτή η ιδιότητα χρησιμοποιείται για τον ορισμό του ονόματος χρήστη σύνδεσης. Σε αυτό, ορίσαμε το "hiveguru" ως όνομα χρήστη
- Αυτή η ιδιότητα χρησιμοποιείται για την αναφορά του κωδικού πρόσβασης σύνδεσης. Σε αυτό, ορίσαμε τον κωδικό πρόσβασης ως κωδικό πρόσβασης χρήστη.
Μόλις οι ιδιότητες τοποθετηθούν στο hive -site.xml πρέπει να αποθηκεύσουμε μη αυτόματα (Ctrl + S) και να κλείσουμε το αρχείο. Μετά το κλείσιμο αυτού του αρχείου, πρέπει να δημιουργήσουμε πίνακα Hive και να ελέγξουμε τις λεπτομέρειες του πίνακα στο MySQL storage.
Τοποθετήστε αυτόν τον κωδικό στο hive-site.xml
hive-site.xml
javax.jdo.option.ConnectionURL jdbc:mysql://localhost/metastore?createDatabaseIfNotExist=true metadata is stored in a MySQL server javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver MySQL JDBC driver class javax.jdo.option.ConnectionUserName hiveuser user name for connecting to mysql server javax.jdo.option.ConnectionPassword hivepassword password for connecting to mysql server
Βήμα7) Δημιουργία πίνακα "γκουρού99" στην Κυψέλη.
Από το παραπάνω στιγμιότυπο οθόνης, μπορούμε να παρατηρήσουμε τα ακόλουθα
- Δημιουργία ονόματος πίνακα "guru99" με δύο ονόματα στηλών
- Τα ονόματα των στηλών που αναφέρονται με τον τύπο δεδομένων ως ένα είναι ακέραιο και ένα άλλο είναι τύπου συμβολοσειράς
Στο επόμενο βήμα, θα ελέγξουμε εάν είναι αποθηκευμένο στο MySql ή όχι
Βήμα 8) Είσοδος στη λειτουργία κελύφους MySql
Από το παραπάνω στιγμιότυπο οθόνης, μπορούμε να παρατηρήσουμε τα ακόλουθα
- Πρώτα πρέπει να χρησιμοποιήσουμε τη βάση δεδομένων ως "use metastore"
- Μόλις επιλέξει το meta store, μπορούμε να ελέγξουμε τους πίνακες που υπάρχουν σε αυτό χρησιμοποιώντας την εντολή "show" tables όπως φαίνεται στο screenshot
- Όποιοι και αν είναι οι πίνακες που δημιουργούνται στο Hive, τα μεταδεδομένα αντιστοιχούν σε αυτούς τους πίνακες που αποθηκεύονται στο TBLS στη βάση δεδομένων MySQL.
- Ο "πίνακας Guur99" δημιουργείται στο Hive, οπότε τα αντίστοιχα μεταδεδομένα αποθηκεύονται στη MySQL στο TBLS.
Βήμα 9) Έλεγχος εάν ο πίνακας που δημιουργήθηκε παρουσιάζει MySQL ή όχι
Με την εισαγωγή select * from TBLS, θα εμφανίσει τους πίνακες που δημιουργήσαμε σε λειτουργία κελύφους κυψελών
Από το παραπάνω στιγμιότυπο οθόνης μπορούμε να παρατηρήσουμε τα ακόλουθα πράγματα:
- Το όνομα του πίνακα "guru99" που δημιούργησε είναι η κυψέλη που μπορεί να εμφανιστεί σε λειτουργία κελύφους MySQL
- Εκτός από αυτό, θα παρέχει επίσης πληροφορίες όπως ο χρόνος δημιουργίας τραπεζιού, ο χρόνος πρόσβασης και άλλες ιδιότητες όπως φαίνεται στο στιγμιότυπο οθόνης παραπάνω.