hive Tutorial
Iniziare con l'alveare
Ricerca…
Osservazioni
- Hive è uno strumento di data warehouse costruito su Hadoop .
- Fornisce un linguaggio simile a SQL per interrogare i dati.
- Possiamo eseguire quasi tutte le query SQL in Hive, l'unica differenza è che esegue un lavoro di riduzione della mappa sul back-end per recuperare i risultati da Hadoop Cluster. A causa di questo Hive a volte impiega più tempo a recuperare il set di risultati.
Esempio di conteggio parole in Hive
File di documenti (file di input)
Mary ha un piccolo agnello
il suo vello era bianco come la neve
e dappertutto che Mary è andata
l'agnello era sicuro di andare.
Hive Query
CREATE TABLE FILES (line STRING);
LOAD DATA INPATH 'docs' OVERWRITE INTO TABLE FILES;
CREATE TABLE word_counts AS
SELECT word, count(1) AS count FROM
(SELECT explode(split(line, ' ')) AS word FROM FILES) w
GROUP BY word
ORDER BY word;
Output della tabella word_counts in Hive
Mary, 2
aveva, 1
a, 1
poco, 1
agnello, 2
sua, 1
vello, 1
era, 2
bianco, 1
come, 1
neve, 1
e, 1
ovunque, 1
che, 1
è andato, 1
la, 1
certo, 1
a, 1
andare, 1
Installazione di Hive (linux)
Inizia scaricando l'ultima versione stabile da https://hive.apache.org/downloads.html
-> Ora decomprimere il file con
$ tar -xvf hive-2.xy-bin.tar.gz
-> Crea una directory in / usr / local / con
$ sudo mkdir / usr / local / hive
-> Sposta il file su root con
$ mv ~ / Download / hive-2.xy / usr / local / hive
-> Modifica le variabili d'ambiente per hadoop e hive in .bashrc
$ gedit ~ / .bashrc
come questo
export HIVE_HOME = / usr / local / hive / apache-hive-2.0.1-bin /
export PATH = $ PATH: $ HIVE_HOME / bin
export CLASSPATH = $ CLASSPATH: / usr / local / Hadoop / lib / * :.
export CLASSPATH = $ CLASSPATH: /usr/local/hive/apache-hive-2.0.1-bin/lib/* :.
-> Ora, avvia hadoop se non è già in esecuzione. Assicurati che sia in esecuzione e che non sia in modalità provvisoria.
$ hadoop fs -mkdir / user / hive / warehouse
La directory "warehouse" è la posizione in cui archiviare la tabella oi dati relativi all'alveare.
$ hadoop fs -mkdir / tmp
La directory temporanea "tmp" è la posizione temporanea in cui archiviare il risultato intermedio dell'elaborazione.
-> Imposta i permessi per leggere / scrivere su quelle cartelle.
$ hadoop fs -chmod g + w / user / hive / warehouse
$ hadoop fs -chmod g + w / user / tmp
-> Ora attiva HIVE con questo comando in console
$ hive
Installazione di Hive con Metastore esterno in Linux
Pre-requisiti:
- Java 7
- Hadoop (fare riferimento qui per l'installazione di Hadoop)
- Mysql Server e Client
Installazione:
Passo 1: Scarica l'ultimo tarball di Hive dalla pagina dei download .
Passo 2: Estrai il tarball scaricato ( Presupposto: il tarball viene scaricato in $ HOME )
tar -xvf /home/username/apache-hive-x.y.z-bin.tar.gz
Passaggio 3: aggiornare il file di ambiente ( ~/.bashrc
)
export HIVE_HOME=/home/username/apache-hive-x.y.z-bin
export PATH=$HIVE_HOME/bin:$PATH
fonte il file per impostare le nuove variabili di ambiente.
source ~/.bashrc
Passo 4: Scarica il connettore JDBC per mysql da qui ed estrai.
tar -xvf mysql-connector-java-a.b.c.tar.gz
La directory estratta contiene il file jar del connettore mysql-connector-java-abcjar
. $HIVE_HOME
sulla lib
di $HIVE_HOME
cp mysql-connector-java-a.b.c.jar $HIVE_HOME/lib/
Configurazione:
Creare il file di configurazione hive hive-site.xml
nella $HIVE_HOME/conf/
e aggiungere le seguenti proprietà relative a metastore.
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/hive_meta</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>mysqluser</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>mysqlpass</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>datanucleus.autoCreateSchema</name>
<value>false</value>
</property>
<property>
<name>datanucleus.fixedDatastore</name>
<value>true</value>
</property>
</configuration>
Aggiorna i valori di MySQL "username" e "password" di conseguenza nelle proprietà.
Creare lo schema Metastore:
Gli script dello schema metastore sono disponibili in $HIVE_HOME/scripts/metastore/upgrade/mysql/
Accedi a MySQL e avvia lo schema,
mysql -u username -ppassword
mysql> create database hive_meta;
mysql> use hive_meta;
mysql> source hive-schema-x.y.z.mysql.sql;
mysql> exit;
Starting Metastore:
hive --service metastore
Per eseguirlo in background,
nohup hive --service metastore &
Avvio di HiveServer2: (utilizzare se richiesto)
hiveserver2
Per eseguirlo in background,
nohup hiveserver2 metastore &
Nota: questi file eseguibili sono disponibili in $HIVE_HOME/bin/
Collegare:
Usa entrambi hive
, beeline
o Hue per connetterti con Hive.
La CLI di Hive è obsoleta, si consiglia di utilizzare Beeline o Hue.
Configurazioni aggiuntive per la tonalità:
Aggiorna questo valore in $HUE_HOME/desktop/conf/hue.ini
[beeswax]
hive_conf_dir=/home/username/apache-hive-x.y.z-bin/conf