Looking for hive Answers? Try Ask4KnowledgeBase
Looking for hive Keywords? Try Ask4Keywords

hiveCommencer avec la ruche


Remarques

  • Hive est un outil d'entrepôt de données construit sur Hadoop .
  • Il fournit un langage de type SQL pour interroger les données.
  • Nous pouvons exécuter presque toutes les requêtes SQL dans Hive, à la seule différence que cela exécute un travail de réduction de carte au niveau du serveur principal pour récupérer le résultat du cluster Hadoop. À cause de cela, Hive prend parfois plus de temps pour récupérer le jeu de résultats.

Installation de ruche avec métastore externe sous Linux

Conditions préalables:

  1. Java 7
  2. Hadoop (Voir ici pour l'installation de Hadoop)
  3. Mysql Server et Client

Installation:

Étape 1: Téléchargez la dernière archive tar Hive à partir de la page des téléchargements .

Étape 2: Extraire l'archive tar téléchargée ( Hypothèse: l'archive tar est téléchargée dans $ HOME )

tar -xvf /home/username/apache-hive-x.y.z-bin.tar.gz
 

Étape 3: Mettez à jour le fichier d'environnement ( ~/.bashrc )

export HIVE_HOME=/home/username/apache-hive-x.y.z-bin
export PATH=$HIVE_HOME/bin:$PATH
 

source du fichier pour définir les nouvelles variables d'environnement.

source ~/.bashrc
 

Étape 4: Télécharger le connecteur JDBC pour MySQL à partir d' ici et l' extraire.

tar -xvf mysql-connector-java-a.b.c.tar.gz
 

Le répertoire extrait contient le fichier jar de connecteur mysql-connector-java-abcjar . Copiez-le dans la lib de $HIVE_HOME

cp mysql-connector-java-a.b.c.jar $HIVE_HOME/lib/
 

Configuration:

Créez le fichier de configuration de hive-site.xml sous le hive-site.xml $HIVE_HOME/conf/ et ajoutez les propriétés associées au métastore suivantes.

<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>
 

Mettez à jour les valeurs de MySQL "username" et "password" en conséquence dans les propriétés.

Créez le schéma Metastore:

Les scripts $HIVE_HOME/scripts/metastore/upgrade/mysql/ sont disponibles sous $HIVE_HOME/scripts/metastore/upgrade/mysql/

Connectez-vous à MySQL et fournissez le schéma,

mysql -u username -ppassword

mysql> create database hive_meta;
mysql> use hive_meta;
mysql> source hive-schema-x.y.z.mysql.sql;
mysql> exit;
 

Démarrer Metastore:

hive --service metastore
 

Pour l'exécuter en arrière-plan,

nohup hive --service metastore &
 

Démarrer HiveServer2: (à utiliser si nécessaire)

hiveserver2
 

Pour l'exécuter en arrière-plan,

nohup hiveserver2 metastore &
 

Remarque: Ces exécutables sont disponibles sous $HIVE_HOME/bin/

Relier:

Utilisez soit hive , beeline ou Hue pour vous connecter avec Hive.

Hive CLI est obsolète, l'utilisation de Beeline ou de Hue est recommandée.

Configurations supplémentaires pour Hue:

Mettez à jour cette valeur dans $HUE_HOME/desktop/conf/hue.ini

[beeswax] 
    hive_conf_dir=/home/username/apache-hive-x.y.z-bin/conf
 

Installation de Hive (linux)

Commencez par télécharger la dernière version stable depuis https://hive.apache.org/downloads.html

-> Maintenant, décompressez le fichier avec

$ tar -xvf hive-2.xy-bin.tar.gz

-> Créez un répertoire dans / usr / local / with

$ sudo mkdir / usr / local / hive

-> Déplacer le fichier avec root

$ mv ~ / Téléchargements / hive-2.xy / usr / local / ruche

-> Modifier les variables d'environnement pour hadoop et ruche dans .bashrc

$ gedit ~ / .bashrc

comme ça

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/* :.

-> Maintenant, démarrez hadoop si ce n'est pas déjà fait. Et assurez-vous qu'il fonctionne et qu'il n'est pas en mode sans échec.

$ hadoop fs -mkdir / user / hive / warehouse

Le répertoire "warehouse" est l'emplacement où stocker la table ou les données liées à la ruche.

$ hadoop fs -mkdir / tmp

Le répertoire temporaire «tmp» est l'emplacement temporaire pour stocker le résultat intermédiaire du traitement.

-> Définir les autorisations pour lire / écrire sur ces dossiers.

$ hadoop fs -chmod g + w / user / ruche / entrepôt

$ hadoop fs -chmod g + w / user / tmp

-> Maintenant lancez HIVE avec cette commande dans la console

$ ruche

Exemple de compte de mots dans Hive

Fichier de documentation (fichier d'entrée)

Mary avait un petit agneau

sa toison était blanche comme neige

et partout où Marie est allée

l'agneau était sûr d'y aller.

Requête Ruche

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;
 

Sortie de la table word_counts dans Hive

Marie, 2 ans

eu, 1

un, 1

peu 1

agneau, 2

sa, 1

polaire, 1

était, 2

blanc, 1

comme 1

neige, 1

et 1

partout, 1

ça, 1

est allé, 1

le, 1

bien sûr, 1

à, 1

allez, 1