Hvorfor bruke MySQL i Hive som Metastore:
- Som standard kommer Hive med derby-database som metastore.
- Derby-database kan bare støtte én aktiv bruker om gangen
- Derby anbefales ikke i produksjonsmiljø
Så løsningen her er
- Bruk MYSQL som metalagring på backend for å koble flere brukere med Hive om gangen
- MYSQL er det beste valget for frittstående metastore
Fremgangsmåte for å installere og konfigurere MySQL-databasen i Hive på Hadoop
Trinn 1) I dette trinnet skal vi utføre to oppgaver
- Installasjon av mysql-server
- Kontrollerer mysql-serveren og prosessen
- Ved hjelp av sudo apt-get install mysql-server kommando, kan vi laste ned mysql server
Installer MySQL som vist på skjermbildet
- Etter vellykket installasjon på slutten, kjører MySQL som vist i skjermbildet nedenfor
Trinn 2) Installere MySQL Java Connector. Dette er for Java-avhengigheter og tilkoblingsformål
Trinn 3) Opprette softlink for kontakt i Hive lib-katalogen . Dette er for myk kobling mellom Java og MySql.
Trinn 4) Konfigurere MySql-lagring i Hive
- Skriv MySql -u root -p etterfulgt av passord
- Her representerer -u root brukernavn, p betegner passord
- Etter at du har angitt kommandoen ovenfor, må brukeren angi gyldig passord og deretter klikke enter
- Deretter går den inn i MySql-skallmodus
Trinn 5) Opprette brukernavn og passord for MySql, og gi rettigheter.
Vi må utføre kommandoene som vist nedenfor,
mysql> CREATE USER 'hiveuser'@'%' IDENTIFIED BY 'hivepassword';mysql> GRANT all on *.* to 'hiveuser'@localhost identified by 'hivepassword';mysql> flush privileges;
Trinn 6) Konfigurere hive-site.xml
- Etter trinn 5 tilordne brukernavn og passord til MySQL-databasen og gitt rettigheter.
- Her vil vi konfigurere noen egenskaper i Hive for å få en forbindelse med MySQL-databasen .
Fra skjermbildet ovenfor observerer vi følgende. Her definerer vi 4 egenskaper som kan være nødvendige for å etablere MYSQL som Meta-butikk i Hive
Disse er som følger:
- Denne egenskapen er for tilkoblings-URL. Her definerer vi ConnectionURL i denne egenskapen. Den fungerer som JDBC-forbindelse og representerer også metastore-plassering
- Denne egenskapen er for tilkoblingsdriverens navn. Her er mysql.jdbc.Driver den respekterte verdien vi må nevne i verdikoden
- Denne egenskapen brukes til å definere tilkoblingsbrukernavn. I dette definerte vi "hiveguru" som brukernavn
- Denne egenskapen brukes til å nevne tilkoblingspassord. I dette definerte vi passord som brukerpassord.
Når egenskapene er plassert i bikube -site.xml, må vi lagre manuelt (Ctrl + S) og lukke filen. Etter å ha lukket denne filen, må vi opprette Hive-tabellen og sjekke tabelldetaljene i MySQL-lagring.
Plasser denne koden 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
Trinn 7) Lag tabellen "guru99" i Hive.
Fra skjermbildet ovenfor kan vi observere følgende
- Oppretting av tabellnavnet "guru99" med to kolonnenavn
- Kolonnenavnene nevnt med datatypen som ett er heltall, og en annen er av strengtype
I neste trinn skal vi sjekke om den er lagret i MySql eller ikke
Trinn 8) Gå inn i MySql shell-modus
Fra skjermbildet ovenfor kan vi observere følgende
- Først må vi bruke databasen som "bruk metastore"
- Når den velger metabutikk, kan vi sjekke tabellene i dette ved å bruke "vis" tabellkommandoen som vist på skjermbildet
- Uansett hvilke tabeller som er opprettet i Hive, tilsvarer metadataene at tabellene er lagret under TBLS i MySQL-databasen.
- "Guur99-tabellen" er opprettet i Hive, så de tilsvarende metadataene lagres i MySQL under TBLS.
Trinn 9) Sjekke om opprettet tabell presenterer MySQL eller ikke
Ved å angi select * fra TBLS, vil det vise tabellene vi opprettet i Hive shell-modus
Fra skjermbildet ovenfor kan vi observere følgende ting:
- Tabellnavnet "guru99" som er opprettet er Hive, kan vises i MySQL-skallmodus
- Ved siden av dette vil det også gi informasjon som opprettelsestid for bord, tilgangstid og andre egenskaper som vist på skjermbildet ovenfor.