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:

  1. Java 7
  2. Hadoop (fare riferimento qui per l'installazione di Hadoop)
  3. 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


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow