Kuidas installida ja konfigureerida HIVE metastore MYSQL-iga
โก Nutikas kokkuvรตte
Hive'i metasalvestus salvestab kรตik tabeli definitsioonid, veeru nimed ja andmetรผรผbid Apache Hive'i taha ning selle hoidla teisaldamine Derby vaikeandmebaasist... MySQL mis vรตimaldab mitmel kasutajal korraga รผhenduse luua.

Mis on HIVE metastore?
Hive'i metasalvestus on hoidla, mis salvestab metaandmeid (veergude nimed, andmetรผรผbid, kommentaarid jne), mis on seotud Apache taru kasutamine MySQL or PostgreSQL. See Hive'i metapood on realiseeritud relatsiooniandmebaasi tabelite abil.
Metasalvestuses ei ole ridu endid. Kirjed jรครคvad HDFS-i ja metasalvestus salvestab ainult iga tabeli asukoha ja veergude nimed, mistรตttu selle kaotamine maksab pigem skeemi kui andmeid.
Miks kasutada MySQL tarus metasalvestusena
Metastore'i taustsรผsteem on valik, mitte Hive'i fikseeritud osa, ja tehaseseaded on tahtlikult minimaalsed. Kolm piirangut lรผkkavad peaaegu iga installi sellest eemale.
- Vaikimisi on Hive'il metasalvestusena kaasas Derby andmebaas.
- Derby saab korraga toetada ainult รผhte aktiivset kasutajat.
- Derbyt ei soovitata tootmiskeskkonnas kasutada.
Seega lahendus on siin
- Kasutama MySQL metasalvestusruumina taustsรผsteemis, et รผhendada korraga mitu kasutajat Hive'iga
- MySQL on parim valik eraldiseisva metasalvestusruumi jaoks
Kuidas installida ja konfigureerida Hive metastore MySQL andmebaas
Allolevad รผheksa sammu toimivad jรคrjekorras masinas, kuhu on juba installitud Hadoop ja Hive. Iga sammu lรตpus on ekraanipilt terminali vรตi shelli vรคljundist.
Samm 1) Installige MySQL server
Selles etapis tรคidame kaks รผlesannet
- Mysql-serveri installimine
- Mysql-serveri ja selle protsessi kontrollimine
kasutades sudo apt-get install mysql-server kรคsuga saame alla laadida MySQL server. Installi MySQL nagu on nรคidatud alloleval ekraanipildil.
Pรคrast edukat installimist MySQL kรคivitub nagu alloleval ekraanipildil nรคidatud, kus protsessikontroll kinnitab teenuse toimimist.
Samm 2) Installige MySQL Java Connector
Paigaldamine MySQL Java pistik. See on mรตeldud Java sรตltuvuste ja รผhenduse eesmรคrgil, kuna Hive jรตuab MySQL JDBC kaudu. Jรคrgmine ekraanipilt nรคitab paketi installimist.
Samm 3) Looge konnektori jaoks pehme link
Hive'i lib-kataloogis oleva konnektori jaoks pehme lingi loomine. See on pehme link jรคrgmiste vahel: Java ja MySQL, ja see asetab draiveri JAR-i Hive'i klassiteele. Kรคsk ja selle tulemus on toodud allpool.
4. samm) Konfigureerimine MySQL hoiustamine tarus
. MySQL Enne mis tahes Hive'i kasutaja loomist tuleb shell avada juurkasutajana, nagu jรคrgmisena nรคidatud.
- Tippige mysql โu root โp ja seejรคrel parool
- Siin tรคhistab โu root kasutajanime ja โp tรคhistab parooli
- Pรคrast รผlaltoodud kรคsu sisestamist peab kasutaja sisestama kehtiva parooli ja seejรคrel vajutama sisestusklahvi.
- Siis siseneb see MySQL kesta reลพiim
Samm 5) Loo kasutajanimi ja parool
Kasutajanime ja parooli loomine MySQLja รตiguste andmist. Allolev ekraanipilt nรคitab kolme lauset, mis tรถรถtavad MySQL kest.
Peame tรคitma kรคsud, nagu allpool nรคidatud,
mysql> CREATE USER 'hiveuser'@'%' IDENTIFIED BY 'hivepassword'; mysql> GRANT all on *.* to 'hiveuser'@localhost identified by 'hivepassword'; mysql> flush privileges;
On MySQL 8. Teise lause kombineeritud vorm enam ei parsi, kuna IDENTIFIED BY eemaldati kรคsust GRANT. Looge esmalt konto ja seejรคrel andke sellele รตigused ning korrake CREATE USER rida nii localhost hosti kui ka metamรคrgiga hosti jaoks.
6. samm) Hive-site.xml-i seadistamine
- Pรคrast 5. sammu mรครคrab kasutajanimi ja parool MySQL andmebaas ja annab รตigused.
- Siin konfigureerime Hive'is mรตned omadused, et luua รผhendus MySQL andmebaas.
Konfiguratsioonifail avatakse Hive'i konfiguratsioonikataloogist, nagu on nรคha jรคrgmisel ekraanipildil.
Jรคrgnev ekraanipilt nรคitab valmis faili, millel on kรตik neli atribuuti paigas.
รlaltoodud ekraanipildilt nรคeme jรคrgmist. Siin defineerime 4 omadust, mis on vajalikud jรคrgmise loomiseks: MySQL kui metasalvestus Hive'is.
Need on jรคrgmised.
- See omadus on รผhenduse jaoks URLSiin me defineerime รผhendustURL selles atribuudis. See toimib JDBC รผhendusstringina ja esindab ka metasalvestuse asukohta.
- See omadus on รผhenduse draiveri nime jaoks. Siin on com.mysql.jdbc.Driver vรครคrtus, mida peame vรครคrtuse sildil mainima.
- Seda omadust kasutatakse รผhenduse kasutajanime mรครคratlemiseks. Selles defineerisime kasutajanimeks โhiveuserโ.
- Seda omadust kasutatakse รผhenduse parooli mainimiseks. Selles defineerisime kasutaja paroolina โhivepasswordโ.
Kui omadused on faili hive-site.xml paigutatud, peame faili kรคsitsi salvestama (Ctrl+S) ja sulgema. Pรคrast faili sulgemist peame looma Hive'i tabeli ja kontrollima tabeli รผksikasju. MySQL Ladustamine.
Asetage see kood faili hive-site.xml
hive-site.xml
<configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost/metastore?createDatabaseIfNotExist=true</value> <description>metadata is stored in a MySQL server</description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>MySQL JDBC driver class</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hiveuser</value> <description>user name for connecting to mysql server</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hivepassword</value> <description>password for connecting to mysql server</description> </property> </configuration>
Kaks รผlaltoodud vรครคrtust sรตltuvad kasutatavast pistiku versioonist. MySQL Connector/J 8 nimetas draiveriklassi รผmber com.mysql.cj.jdbc.Driver ja see ootab ka selgesรตnalist porti ja SSL-i seadistust, seega moodne URL Tavaliselt loetakse parooli jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=true&useSSL=false. Kuna parool on selge tekstina, peaks faili saama lugeda ainult Hive'i teenusekonto.
Samm 7) Looge tabel
Loo Hive'is tabel โguru99โ, nagu on nรคidatud alloleval Hive'i kestal.
รlaltoodud ekraanipildi pรตhjal vรตime jรคlgida jรคrgmist
- Kahe veerunimega tabeli โguru99โ loomine
- Veergude nimed on nimetatud koos nende andmetรผรผpidega, รผks on tรคisarv ja teine โโstring
Jรคrgmises etapis kontrollime, kas see on salvestatud MySQL vรตi mitte.
8. samm) Sisesta MySQL kesta reลพiim
Esmalt valitakse metasalvestuse andmebaas ja jรคrgnev tabeli loend on nรคidatud allpool.
รlaltoodud ekraanipildi pรตhjal vรตime jรคlgida jรคrgmist
- Esmalt peame valima andmebaasi, kasutades kรคsku โkasuta metastoreโiโ.
- Kui metasalvestus on valitud, saame selles olevaid tabeleid kontrollida kรคsuga โnรคita tabeleidโ, nagu ekraanipildil nรคidatud.
- รkskรตik, milliseid tabeleid Hive'is luuakse, salvestatakse nendele tabelitele vastavad metaandmed TBLS-i alla. MySQL andmebaas
- โGuru99โ tabel luuakse Hive'is, seega salvestatakse vastavad metaandmed sinna MySQL TBLS-i all
Samm 9) Sisestage TBLS-ist vali *
Kontrollitakse, kas loodud tabel on olemas MySQL vรตi mitte. Pรคring ja selle tulemus kuvatakse alloleval ekraanipildil.
Sisestades TBLS-ist vali *, kuvatakse tabelid, mille lรตime Hive kestareลพiimis
รlaltoodud ekraanipildilt vรตime jรคlgida jรคrgmisi asju:
- Hive'is loodud tabeli nime โguru99โ saab kuvada MySQL kesta reลพiim
- Lisaks pakub see ka teavet tabeli loomise aja, juurdepรครคsuaja ja muude omaduste kohta, nagu on nรคidatud รผlaltoodud ekraanipildil.
Kuidas Hive'i metasalvestusskeemi schematooliga initsialiseerida
รhenduse lipp createDatabaseIfNotExist URL loob tรผhja metasalvestusandmebaasi, aga ei loo umbes seitsekรผmmend tabelit, mida Hive selle sees ootab. Hive 1.x ja hilisemates versioonides kuulub see รผlesanne schematool utiliidile ja jรคetakse vahele.ping See on kรตige levinum pรตhjus, miks vรคrskelt konfigureeritud metasalvestus keeldub kรคivitumast.
$HIVE_HOME/bin/schematool -dbType mysql -initSchema
Kรคsk loeb failist hive-site.xml samad neli atribuuti, loob รผhenduse hiveuseri kontoga ja kรคivitab Hive'i versioonile vastava komplekteeritud SQL-skripti. Edukas kรคivitamine lรตpeb lรตpuleviimisteatega, mille jรคrel saab olekut igal ajal kinnitada.
$HIVE_HOME/bin/schematool -dbType mysql -info
Allolevad lipud hรตlmavad kogu metasalvestusskeemi eluiga.
| valik | Mida see teeb |
|---|---|
| -dbType | Nimetab taustaprogrammi, nรคiteks mysql, derby, postgres, oracle vรตi msql |
| -initSchema | Loob praeguse Hive'i versiooni metasalvestustabelid |
| -info | Kuvab andmebaasis salvestatud skeemi versiooni. |
| -uuendatudSkeem | Migreerib olemasoleva skeemi pรคrast Hive'i uuendamist |
| -valideeri | Kontrollib skeemi puuduvate tabelite ja versioonide mittevastavuste suhtes |
Enne esmakordset kรคivitamist tasub teada รผhte seotud omadust. Kui hive.metastore.schema.verification on tรตene, vรตrdleb Hive skeemi versiooni MySQL omaenda vastu ja keeldub mittevastavuse korral tรถรถtamast. See kontroll on kaitsemeede, seega on รตige vastus uuenduse kรคivitamine, mitte selle vรคljalรผlitamine. Sama MySQL Hive'i installatsioon kasutab taustsรผsteemi, mida kรคsitletakse jaotises installige Hive'i Ubuntu.
Levinumad Hive'i metasalvestuse vead ja kuidas neid parandada
Enamik selles etapis esinevatest ebaรตnnestumistest annab รผhe vรคhestest teadetest ja igaรผks neist osutab pigem konkreetsele sammule eespool, mitte Hive'ile endale.
| Sรผmptom | Pรตhjus ja lahendus |
|---|---|
| Metasalvestusest versiooniinfot ei leitud | Skeemi ei loodud kunagi. Kรคivita schematool valikuga -initSchema sama andmebaasi peal, mille รผhenduses mainiti. URL |
| JDBC draiveri ClassNotFoundException | Hive'i lib-kataloogist puudub รผhendusjuurdepรครคsu JAR vรตi on kasutusel รผhendusjuur/J8 ja klass on nรผรผd com.mysql.cj.jdbc.Driver. Kontrollige uuesti 3. sammu pehmet linki. |
| Kasutajale hiveuser juurdepรครคs keelatud | รigused anti ainult รผhele hostile. Loo konto nii localhostile kui ka wildcard-hostile ja seejรคrel kรคivita flush privilegies. |
| Sรผntaksi viga IDENTIFICED BY lรคhedal | MySQL 8 eemaldas GRANT-lausest IDENTIFIED BY. Kรคivita esmalt CREATE USER ja seejรคrel GRANT. |
| Avaliku vรตtme hankimine pole lubatud | Connector/J 8 keeldub vaikimisi krรผpteerimata kรคepigistusest. Lisage JDBC-le useSSL=false ja allowPublicKeyRetrieval=true. URL usaldusvรครคrses vรตrgus |
| Pรคrast Hive'i uuendamist puuduvad tabelid | Skeem vastab endiselt vanale versioonile. Kรคivita schematool valikuga -upgradeSchema skeemi kontrollimise keelamise asemel. |
Kui metasalvestus annab usaldusvรครคrse vastuse, luuakse selle salvestatud tabeli definitsioonid, kasutades jaotises kirjeldatud lauseid. Taru loomine, muutmine ja tabeli kustutamine.








