Perché utilizzare MySQL in Hive come metastore:
- Per impostazione predefinita, Hive viene fornito con il database derby come metastore.
- Il database Derby può supportare un solo utente attivo alla volta
- Derby non è consigliato nell'ambiente di produzione
Quindi la soluzione qui è
- Usa MYSQL come meta storage nel back-end per connettere più utenti con Hive alla volta
- MYSQL è la scelta migliore per il metastore autonomo
Passaggi per installare e configurare il database MySQL in Hive su Hadoop
Passaggio 1) In questo passaggio, eseguiremo due attività
- Installazione di mysql-server
- Controllo del server mysql e del suo processo
- Usando il comando sudo apt-get install mysql-server, possiamo scaricare il server mysql
Installa MySQL come mostrato nello screenshot
- Al termine dell'installazione, MySQL verrà eseguito come mostrato nella schermata seguente
Passaggio 2) Installazione di MySQL Java Connector. Questo è per le dipendenze java e lo scopo della connessione
Passaggio 3) Creazione di un collegamento software per il connettore nella directory lib di Hive . Questo è per il collegamento software tra Java e MySql.
Passaggio 4) Configurazione dell'archiviazione MySql in Hive
- Digita MySql -u root -p seguito dalla password
- Qui -u rappresenta il nome utente di root, p denota la password
- Dopo aver inserito il comando precedente, l'utente deve inserire una password valida e quindi fare clic su Invio
- Quindi entrerà in modalità shell MySql
Passaggio 5) Creazione di nome utente e password per MySql, concessione dei privilegi.
Dobbiamo eseguire i comandi come mostrato di seguito,
mysql> CREATE USER 'hiveuser'@'%' IDENTIFIED BY 'hivepassword';mysql> GRANT all on *.* to 'hiveuser'@localhost identified by 'hivepassword';mysql> flush privileges;
Passaggio 6) Configurazione di hive-site.xml
- Dopo il passaggio 5, assegna nome utente e password al database MySQL e concedi i privilegi.
- Qui configureremo alcune proprietà in Hive per ottenere una connessione con il database MySQL .
Dallo screenshot sopra, osserviamo quanto segue. Qui stiamo definendo 4 proprietà che potrebbero essere necessarie per stabilire MYSQL come Meta store in Hive
Questi sono i seguenti:
- Questa proprietà serve per l'URL di connessione. Qui stiamo definendo ConnectionURL in questa proprietà. Funziona come connessione JDBC e rappresenta anche la posizione del metastore
- Questa proprietà è per il nome del driver di connessione. Qui mysql.jdbc.Driver è il valore rispettato che dobbiamo menzionare nel tag value
- Questa proprietà viene utilizzata per definire il nome utente di connessione. In questo, abbiamo definito "hiveguru" come nome utente
- Questa proprietà viene utilizzata per menzionare la password di connessione. In questo, abbiamo definito la password come password utente.
Una volta inserite le proprietà in hive -site.xml dobbiamo salvare manualmente (Ctrl + S) e chiudere il file. Dopo aver chiuso questo file, dobbiamo creare la tabella Hive e controllare i dettagli della tabella nell'archivio MySQL.
Inserisci questo codice in 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
Step7) Crea la tabella "guru99" in Hive.
Dallo screenshot qui sopra, possiamo osservare quanto segue
- Creazione del nome della tabella "guru99" con due nomi di colonna
- I nomi delle colonne menzionati con il relativo tipo di dati come uno è intero e un altro è di tipo stringa
Nel passaggio successivo, controlleremo se è memorizzato in MySql o meno
Passaggio 8) Entrare in modalità shell MySql
Dallo screenshot qui sopra, possiamo osservare quanto segue
- Per prima cosa dobbiamo usare il database come "usa metastore"
- Una volta scelto il meta store possiamo controllare le tabelle presenti in questo utilizzando il comando "show" tables come mostrato nello screenshot
- Qualunque siano le tabelle create in Hive, i metadati corrispondono a che le tabelle sono archiviate in TBLS nel database MySQL.
- La "tabella Guur99" viene creata in Hive, quindi i metadati corrispondenti vengono archiviati in MySQL sotto TBLS.
Passaggio 9) Verificare se la tabella creata presenta MySQL o no
Inserendo select * da TBLS, verranno visualizzate le tabelle che abbiamo creato in modalità shell Hive
Dallo screenshot qui sopra possiamo osservare le seguenti cose:
- Il nome della tabella "guru99" che ha creato è l'alveare può essere visualizzato in modalità shell MySQL
- Oltre a questo, fornirà anche informazioni come l'ora di creazione della tabella, l'ora di accesso e altre proprietà come mostrato nella schermata sopra.