Varför använda MySQL i Hive som Metastore:
- Som standard kommer Hive med derby-databas som metastore.
- Derby-databasen kan endast stödja enstaka aktiva användare åt gången
- Derby rekommenderas inte i produktionsmiljön
Så lösningen här är
- Använd MYSQL som metalagring i backend för att ansluta flera användare med Hive åt gången
- MYSQL är det bästa valet för fristående metastore
Steg för att installera och konfigurera MySQL-databasen i Hive på Hadoop
Steg 1) I det här steget ska vi utföra två uppgifter
- Installation av mysql-server
- Kontrollerar mysql-servern och dess process
- Med sudo apt-get install mysql-server-kommandot kan vi ladda ner mysql-servern
Installera MySQL som visas på skärmdumpen
- Efter framgångsrik installation i slutet kommer MySQL att köras som visas nedan
Steg 2) Installera MySQL Java Connector. Detta är för Java-beroenden och anslutningsändamål
Steg 3) Skapa mjuklänk för anslutning i Hive lib-katalogen . Detta är för mjuk länk mellan Java och MySql.
Steg 4) Konfigurera MySql-lagring i Hive
- Skriv MySql -u root -p följt av lösenord
- Här representerar -u root-användarnamn, p anger lösenord
- Efter att ha angett ovanstående kommando måste användaren ange ett giltigt lösenord och sedan klicka på Enter
- Då går det in i MySql-skalläge
Steg 5) Skapa användarnamn och lösenord för MySql, bevilja behörigheter.
Vi måste utföra kommandona enligt nedan,
mysql> CREATE USER 'hiveuser'@'%' IDENTIFIED BY 'hivepassword';mysql> GRANT all on *.* to 'hiveuser'@localhost identified by 'hivepassword';mysql> flush privileges;
Steg 6) Konfigurera hive-site.xml
- Efter steg 5 tilldela användarnamn och lösenord till MySQL-databasen och givna behörigheter.
- Här konfigurerar vi några egenskaper i Hive för att få en anslutning till MySQL-databasen .
Från ovanstående skärmdump observerar vi följande. Här definierar vi fyra egenskaper som kan vara nödvändiga för att etablera MYSQL som Meta-butik i Hive
Dessa är som följer:
- Den här egenskapen är avsedd för anslutnings-URL. Här definierar vi ConnectionURL i den här egenskapen. Det fungerar som JDBC-anslutning och dess representerar metastore plats också
- Den här egenskapen är för Connection-drivrutinsnamn. Här är mysql.jdbc.Driver det respekterade värdet vi måste nämna i värdetaggen
- Den här egenskapen används för att definiera anslutningsanvändarnamn. I detta definierade vi "hiveguru" som användarnamn
- Den här egenskapen används för att nämna anslutningslösenord. I detta definierade vi lösenord som användarlösenord.
När egenskaperna placeras i hive -site.xml måste vi spara manuellt (Ctrl + S) och stänga filen. Efter att ha stängt den här filen måste vi skapa Hive-tabellen och kontrollera tabellinformationen i MySQL-lagring.
Placera den här 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
Steg 7) Skapa tabellen "guru99" i Hive.
Från ovanstående skärmdump kan vi observera följande
- Skapande av tabellnamn "guru99" med två kolumnnamn
- Kolumnnamnen som nämns med dess datatyp som ett är heltal och ett annat är av strängtyp
I nästa steg ska vi kontrollera om den lagras i MySql eller inte
Steg 8) Gå in i MySql-skalläge
Från ovanstående skärmdump kan vi observera följande
- Först måste vi använda databasen som "använd metastore"
- När den väl väljer meta store kan vi kontrollera tabellerna i detta genom att använda kommandot "visa" tabeller som visas på skärmdumpen
- Oavsett vilka tabeller som skapas i Hive, motsvarar metadata att tabeller lagras under TBLS i MySQL-databasen.
- "Guur99-tabellen" skapas i Hive, så motsvarande metadata lagras i MySQL under TBLS.
Steg 9) Kontrollera om skapad tabell presenterar MySQL eller inte
Genom att ange select * från TBLS kommer det att visa tabellerna som vi skapade i Hive-skalläge
Från ovanstående skärmdump kan vi observera följande saker:
- Tabellnamnet "guru99" som skapades är Hive kan visas i MySQL-skalläge
- Förutom detta kommer det också att ge information som tid för att skapa bord, åtkomsttid och andra egenskaper som visas i skärmdumpen ovan.