Hvorfor bruge MySQL i Hive som Metastore:
- Som standard kommer Hive med derby-database som metastore.
- Derby-database kan kun understøtte en enkelt aktiv bruger ad gangen
- Derby anbefales ikke i produktionsmiljøet
Så løsningen her er
- Brug MYSQL som metalagring i backend for at forbinde flere brugere med Hive ad gangen
- MYSQL er det bedste valg til den enkeltstående metastore
Trin til installation og konfiguration af MySQL-database i Hive på Hadoop
Trin 1) I dette trin skal vi udføre to opgaver
- Installation af mysql-server
- Kontrol af mysql-serveren og dens proces
- Ved hjælp af sudo apt-get install mysql-server kommando kan vi downloade mysql server
Installer MySQL som vist på skærmbilledet
- Efter vellykket installation i slutningen kører MySQL som vist i nedenstående skærmbillede
Trin 2) Installation af MySQL Java Connector. Dette er til Java-afhængigheder og forbindelsesformål
Trin 3) Oprettelse af softlink til stik i Hive lib-biblioteket . Dette er til softlink mellem Java og MySql.
Trin 4) Konfiguration af MySql-lagring i Hive
- Skriv MySql -u root -p efterfulgt af adgangskode
- Her repræsenterer -u root-brugernavn, p angiver adgangskode
- Efter indtastning af ovenstående kommando skal brugeren indtaste gyldig adgangskode og derefter klikke på enter
- Derefter går det ind i MySql shell-tilstand
Trin 5) Oprettelse af brugernavn og adgangskode til MySql og tildeling af privilegier.
Vi er nødt til at udføre kommandoerne som vist nedenfor,
mysql> CREATE USER 'hiveuser'@'%' IDENTIFIED BY 'hivepassword';mysql> GRANT all on *.* to 'hiveuser'@localhost identified by 'hivepassword';mysql> flush privileges;
Trin 6) Konfiguration af hive-site.xml
- Efter trin 5 tildel brugernavn og adgangskode til MySQL-databasen og givet privilegier.
- Her konfigurerer vi nogle egenskaber i Hive for at få forbindelse til MySQL-database .
Fra ovenstående skærmbillede observerer vi følgende. Her definerer vi 4 egenskaber, der kan være nødvendige for at etablere MYSQL som Meta-butik i Hive
Disse er som følger:
- Denne egenskab er beregnet til forbindelses-URL-formål. Her definerer vi ConnectionURL i denne egenskab. Det fungerer som JDBC-forbindelse og dets repræsenterer også metastore-placering
- Denne egenskab er til navnet på forbindelsesdriveren. Her er mysql.jdbc.Driver den respekterede værdi, vi skal nævne i værdikoden
- Denne egenskab bruges til at definere forbindelsesbrugernavn. I dette definerede vi "hiveguru" som brugernavn
- Denne egenskab bruges til at nævne forbindelsesadgangskode. I dette definerede vi adgangskoden som brugeradgangskode.
Når egenskaberne er placeret i hive -site.xml, skal vi manuelt gemme (Ctrl + S) og lukke filen. Efter at have lukket denne fil skal vi oprette Hive-tabel og kontrollere tabeloplysningerne i MySQL-lagring.
Placer denne kode i 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
Trin 7) Opret tabel "guru99" i Hive.
Fra ovenstående skærmbillede kan vi observere følgende
- Oprettelse af tabelnavn "guru99" med to kolonnenavne
- Kolonnenavnene nævnt med datatypen som en er heltal, og en anden er af strengtype
I det næste trin skal vi kontrollere, om det er gemt i MySql eller ej
Trin 8) Gå ind i MySql shell-tilstand
Fra ovenstående skærmbillede kan vi observere følgende
- Først skal vi bruge databasen som "brug metastore"
- Når det vælger meta-butik, kan vi kontrollere tabellerne i dette ved hjælp af kommandoen "Vis" tabeller som vist på skærmbilledet
- Uanset hvilke tabeller der oprettes i Hive, svarer metadataene til, at tabellerne er gemt under TBLS i MySQL-databasen.
- "Guur99-tabel" oprettes i Hive, så de tilsvarende metadata gemmes i MySQL under TBLS.
Trin 9) Kontroller, om oprettet tabel præsenterer MySQL eller ej
Ved at indtaste select * fra TBLS vil det vise de tabeller, som vi oprettede i Hive shell-tilstand
Fra ovenstående skærmbillede kan vi observere følgende ting:
- Tabelnavn "guru99", der er oprettet er Hive, kan vises i MySQL-shell-tilstand
- Udover dette vil det også give information som bordets oprettelsestid, adgangstid og andre egenskaber som vist i skærmbillede ovenfor.