HIVE Metastore-konfigurasjon med MYSQL

Anonim

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ø

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

  1. Installasjon av mysql-server
  2. Kontrollerer mysql-serveren og prosessen
  1. Ved hjelp av sudo apt-get install mysql-server kommando, kan vi laste ned mysql server

Installer MySQL som vist på skjermbildet

  1. 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:

  1. Denne egenskapen er for tilkoblings-URL. Her definerer vi ConnectionURL i denne egenskapen. Den fungerer som JDBC-forbindelse og representerer også metastore-plassering
  2. Denne egenskapen er for tilkoblingsdriverens navn. Her er mysql.jdbc.Driver den respekterte verdien vi må nevne i verdikoden
  3. Denne egenskapen brukes til å definere tilkoblingsbrukernavn. I dette definerte vi "hiveguru" som brukernavn
  4. 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.ConnectionURLjdbc:mysql://localhost/metastore?createDatabaseIfNotExist=truemetadata is stored in a MySQL server
javax.jdo.option.ConnectionDriverNamecom.mysql.jdbc.DriverMySQL JDBC driver class
javax.jdo.option.ConnectionUserNamehiveuseruser name for connecting to mysql server
javax.jdo.option.ConnectionPasswordhivepasswordpassword 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.