Prečo používať MySQL v Hive ako Metastore:
- V predvolenom nastavení je Úľ dodávaný s databázou derby ako metastore.
- Databáza Derby môže podporovať iba jedného aktívneho používateľa naraz
- Derby sa v produkčnom prostredí neodporúča
Takže riešením je tu
- Použite MYSQL ako Meta úložisko na backende na pripojenie viacerých používateľov pomocou Hive súčasne
- MYSQL je najlepšou voľbou pre samostatný metastore
Kroky na inštaláciu a konfiguráciu databázy MySQL v úli na serveri Hadoop
Krok 1) V tomto kroku vykonáme dve úlohy
- Inštalácia mysql-servera
- Kontrola mysql-servera a jeho procesu
- Pomocou príkazu sudo apt-get install mysql-server si môžeme stiahnuť server mysql
Nainštalujte MySQL podľa obrázka
- Po úspešnej inštalácii na konci bude MySQL bežať tak, ako je to znázornené na nasledujúcom obrázku
Krok 2) Inštalácia MySQL Java Connector. Toto je pre java závislosti a účel pripojenia
Krok 3) Vytvorenie mäkkého odkazu pre konektor v adresári Hive lib . Toto slúži na mäkké prepojenie medzi programami Java a MySql.
Krok 4) Konfigurácia úložiska MySql v úli
- Zadajte príkaz MySql -u root -p a potom heslo
- Tu -u predstavuje užívateľské meno root, p označuje heslo
- Po zadaní vyššie uvedeného príkazu musí používateľ zadať platné heslo a potom kliknúť na kláves Enter
- Potom prejde do režimu shellu MySql
Krok 5) Vytvorenie používateľského mena a hesla pre MySql, udelenie privilégií.
Musíme vykonať príkazy, ako je uvedené nižšie,
mysql> CREATE USER 'hiveuser'@'%' IDENTIFIED BY 'hivepassword';mysql> GRANT all on *.* to 'hiveuser'@localhost identified by 'hivepassword';mysql> flush privileges;
Krok 6) Konfigurácia súboru hive-site.xml
- Po kroku 5 priraďte používateľské meno a heslo k databáze MySQL a dané oprávnenia.
- Tu nakonfigurujeme niektoré vlastnosti v Hive, aby sme získali spojenie s databázou MySQL .
Z vyššie uvedeného screenshotu sledujeme nasledovné. Tu definujeme 4 vlastnosti, ktoré by mohli byť potrebné na založenie MYSQL ako Meta obchodu v Hive
Sú to tieto:
- Táto vlastnosť slúži na účely adresy URL pripojenia. Tu v tejto vlastnosti definujeme ConnectionURL. Funguje ako spojenie JDBC a tiež predstavuje miesto metastázy
- Táto vlastnosť je určená pre názov ovládača pripojenia. Tu je mysql.jdbc.Driver rešpektovaná hodnota, ktorú musíme spomenúť v značke hodnoty
- Táto vlastnosť sa používa na definovanie mena používateľa pripojenia. V tomto sme definovali „hiveguru“ ako meno používateľa
- Táto vlastnosť sa používala na uvedenie hesla pripojenia. V tomto sme definovali heslo ako heslo používateľa.
Keď sú vlastnosti umiestnené v úli -site.xml, musíme ich manuálne uložiť (Ctrl + S) a zavrieť súbor. Po zatvorení tohto súboru musíme vytvoriť tabuľku Hive a skontrolovať podrobnosti tabuľky v úložisku MySQL.
Tento kód umiestnite do súboru 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
Krok 7) Vytvorte tabuľku „guru99“ v úli.
Z vyššie uvedeného screenshotu môžeme sledovať nasledujúce
- Vytvorenie názvu tabuľky „guru99“ s dvoma názvami stĺpcov
- Názvy stĺpcov, ktorých údajový typ je uvedený ako jeden, je celé číslo a druhý je reťazcového typu
V ďalšom kroku ideme skontrolovať, či je uložený v MySql alebo nie
Krok 8) Vstup do režimu shellu MySql
Z vyššie uvedeného screenshotu môžeme sledovať nasledujúce
- Najprv musíme použiť databázu ako „použiť metastore“
- Len čo si vyberie metaobchod, môžeme skontrolovať tabuľky, ktoré sa v ňom nachádzajú, pomocou príkazu „zobraziť“ tabuľky, ako je to znázornené na snímke obrazovky
- Bez ohľadu na tabuľky, ktoré sú vytvorené v úli, metaúdaje zodpovedajú týmto tabuľkám, ktoré sú uložené v databáze TBLS v databáze MySQL.
- „Tabuľka Guur99“ je vytvorená v úli, takže príslušné metadáta sú uložené v MySQL pod TBLS.
Krok 9) Kontrola, či vytvorená tabuľka predstavuje MySQL alebo nie
Po zadaní príkazu select * z TBLS sa zobrazia tabuľky, ktoré sme vytvorili v režime shellu Hive
Z vyššie uvedeného screenshotu môžeme sledovať nasledujúce veci:
- Názov tabuľky „guru99“, ktorá bola vytvorená, je Hive, je možné zobraziť v režime MySQL shell
- Okrem toho bude tiež poskytovať informácie, ako je čas vytvorenia tabuľky, čas prístupu a ďalšie vlastnosti, ako je to znázornené na snímke obrazovky vyššie.