hive Tutoriel
Commencer avec la ruche
Recherche…
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.
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
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
Installation de ruche avec métastore externe sous Linux
Conditions préalables:
- Java 7
- Hadoop (Voir ici pour l'installation de Hadoop)
- 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