Le prérequis à une installation de Hive est une installation complète et fonctionnelle de Hadoop. Assurez vous que l’ensemble des démons d’Hadoop tourne. Vous pouvez consulter notre article sur l’installation complète d’Apache Hadoop pour de plus amples détails.
Télécharger Hive
Vous pouvez télécharger un binaire de Hive depuis le site officiel de Apache Hive.
Pour ce tutoriel, nous allons installer une version stable de Hive. Vous allez donc utiliser le binaire disponible dans le sous répertoire stable-2/.
Téléchargez le binaire avec la commande « wget » et décompressez le fichier tar.gz. Enfin placez le répertoire dans /user/local/. Voici les commandes à exécuter dans un terminal pour réaliser ces opérations:
wget https://dlcdn.apache.org/hive/stable-2/apache-hive-2.3.9-bin.tar.gz
tar -xvf apache-hive-2.3.9-bin.tar.gz
sudo mv apache-hive-2.3.9-bin /usr/local/apache-hive-2.3.9
Ajouter les variables d’environnement Hive
Hive utilise la variable d’environnement HADOOP_HOME pour situer les fichiers de configuration d’Hadoop et les JAR associés. Cette variable d’environnement doit être obligatoirement renseignée dans le fichier .bashrc (voir le tutoriel Installer Hadoop sur Ubuntu).
De plus, nous allons devoir ajouter une variable d’environnement HIVE_HOME. Ouvrez le fichier .bashrc et renseignez les lignes suivantes:
Rechargez les variables d’environnement avec la commande « source .bashrc« . Vous pouvez alors vérifier que la variable d’environnement pointe bien vers le répertoire d’installation de Hive:
Configurer les composants Hive
Hive a besoin d’avoir accès à HDFS (Hadoop Distributed File System). Pour cela, ouvrez le fichier de configuration Hive « $HIVE_HOME/bin/hive-config.sh » et ajoutez la variable HADOOP_HOME avec le chemin d’installation de Hadoop sur votre machine.
export HADOOP_HOME=/usr/local/hadoop-3.3.3
Créer les répertoires Hive sur HDFS
Nous allons créer l’entrepôt des données Hive sur HDFS. Ouvrez un terminal pour créer le répertoire « /user/hive/warehouse » sur HDFS avec la commande:
hdfs dfs -p /user/hive/warehouse
Modifiez les droits d’écriture et d’exécution sur ce dépôt avec la commande suivante:
hdfs dfs -chmod g+w /user/hive/warehouse
Vous pouvez vérifier que le dépôt a été créé avec les permissions souhaitées de la façon suivante:
Initialiser la base de données Derby
Hive utilise une base de données Derby pour stocker les métadonnées. Dans un terminal, initialisez la base de données Derby avec la commande:
schematool -dbType derby -initSchema
Une fois cette initialisation terminée avec succès, vous devriez avoir un message du type:
Lancer le client shell Hive
Vous pouvez à présent lancer Hive en ligne de commande. Dans un terminal, tapez « hive« :
Conclusion
Vous disposez à présent d’une installation d’Apache Hive opérationnelle. Vous pouvez interagir avec vos données sur HDFS en utilisant le langage HiveQL de façon similaire avec le langage SQL avec les bases de données relationnelles.
Référence
Les références ayant servi à la rédaction de cet article:
Ce tutoriel présente les commandes pour manipuler des fichiers sur HDFS (Hadoop Distributed File System).
Deux options sont possibles pour gérer vos données sur HDFS: avec l’API Java ou alors en ligne de commande Hadoop. C’est cette deuxième option qui est présentée dans ce tutoriel.
Prérequis
Vous devez avoir au préalable installé Apache Hadoop. En cas de besoin, un tutoriel sur comment Installer Hadoop sur Ubuntu est disponible sur ce site. Assurez vous d’avoir lancé votre serveur Hadoop comme cela est décrit dans cet article.
Récupération des données MovieLens
Dans cet article, nous proposons d’utiliser un jeu de données mis à disposition par le laboratoire MovieLens. Il s’agit de jeu de données public classiquement utilisé pour les démonstrations des moteurs de recommandations. Vous pouvez télécharger les données MovieLens 100K Dataset depuis le site officiel ou bien depuis notre page GitHub.
Après avoir téléchargé ces données, décompressez les sur le local de la session sur lequel vous avez accès au système de fichiers HDFS.
Structure générale des commandes HDFS
Les commandes HDFS sont très similaires aux commandes UNIX. Ainsi, les utilisateurs de machine Linux verront immédiatement les similarités avec les commandes qu’ils utilisent habituellement. L’ensemble des commandes HDFS se présente sous la forme suivante:
hdfs dfs <commande> [option] <args>
L’expression <commande> sont des commandes de type UNIX dont nous allons donner des exemples ci-dessous. [option] permet de spécifier des options de la commande. Enfin <args> sont les arguments donnés par l’utilisateur.
Ces commandes Shell vont vous permettre d’interagir directement avec les fichiers stockés sur HDFS depuis un terminal. La liste complète des commandes est disponible sur la documentation Hadoop.
Commande shell pour HDFS
Voici la liste des commandes que nous allons voir ensemble:
Lister le contenu d’un répertoire
Créer un répertoire
Afficher le contenu d’un fichier
Charger un fichier sur HDFS
Récupérer un fichier depuis HDFS
Déplacer un fichier
Copier un fichier
Supprimer un fichier
Supprimer un répertoire
Pour chaque commande, nous allons donner la syntaxe générale. Puis nous donnerons des exemples d’utilisation avec les données MovieLens.
Lister le contenu d’un répertoire
La commande ls permet de lister le contenu d’un répertoire.
hdfs dfs -ls <chemin du répertoire>
Exemple: Lister le contenu du dossier
Le répertoire courant contient un seul dossier « /user« . Nous allons utiliser la commande ls dans la suite de cet article pour montrer les résultats des commandes qui sont présentés.
Créer un répertoire
La commande mkdir permet de créer un dossier dans HDFS.
hdfs dfs -mkdir <chemin du nouveau répertoire>
Exemple: Créer le répertoire /user avec la commande mkdir.
Exemple: Créer les sous-répertoires /hdoop/ml-100k dans /user. L’option -p permet de créer les répertoires parents s’ils n’existent pas.
Afficher le contenu d’un fichier
La commande cat permet d’afficher dans le terminal le contenu d’un fichier. Tandis que la commande tail affiche le dernier kilo bytes d’un fichier.
hdfs dfs -cat <chemin du fichier>
Exemple: Afficher le contenu du fichier « /user/hdoop/ml-100k/u.data » avec la commande cat. L’option | more permet de contrôler le nombre de lignes affichées lorsque le fichier contient un nombre de lignes important.
Exemple: Afficher dans le terminal le contenu du fichier « /user/hdoop/ml-100k/u.data » avec la commande tail.
Charger un fichier sur HDFS
Les commandes put et copyFromLocal permettent de charger un ou plusieurs fichiers du local sur HDFS. Les deux commandes sont similaires.
hdfs dfs -put <local src path> <dst path on HDFS>
hadoop fs -copyFromLocal <local src path> <dst path on HDFS>
Exemple: Copier le fichier « u.info » dans /user/hdoop/ml-100k sur HDFS avec la commande put.
Exemple: Copier les fichiers « u.user » et « u.item » dans /user/hdoop/ml-100K sur HDFS avec la commande copyFromLocal.
Récupérer un fichier depuis HDFS
Les commandes get et copyToLocal permettent de récupérer des fichier HDFS sur votre local. Ces deux commandes fonctionnent de façon similaire.
Exemple: Copier le fichier « u.data » de HDFS dans un répertoire local (ici /home/hdoop/data/ml-100k_hdfs) avec la commande get.
Exemple: Copier les fichier « u.user » et « u.item » de HDFS dans un répertoire local avec la commande copyToLocal.
Dans ces deux exemples, la commande ls sur votre localhost (ls /home/hdoop/ml-100k_hdfs) permet de retrouver les fichiers récupérés depuis votre système de fichier HDFS.
Déplacer un fichier
La commande mv est utilisée pour déplacer des fichiers sur HDFS.
hdfs dfs -mv <HDFS src path> <HDFS dst path>
Exemple: Commencer par créer un répertoire /user/hdoop/examples en utilisant la commande mkdir. Puis déplacer le fichier « u.data » du dossier /user/hdoop/ml-100k vers /user/hdoop/examples en utilisant la commande mv.
La commande ls sur le répertoire HDFS source (/user/hdoop/ml-100k) montre que le fichier « u.data’ a bien été déplacé. Tandis que la commande ls sur le répertoire HDFS de destination(/user/hdoop/examples) montre que le fichier « u.data’ est présent.
Copier un fichier
La commande cp est utilisée pour copier des fichiers sur HDFS.
hdfs dfs -cp <HDFS src path> <HDFS dst path>
Exemple: Copier le fichier « u.user » du répertoire /user/hdoop/ml-100k vers /user/hdoop/examples
Supprimer un fichier
La commande rm permet de supprimer un fichier dans HDFS.
hdfs dfs -rm <HDFS file path>
Exemple: Supprimer les fichiers conformes au pattern /user/hdoop/example/u.*
La commande ls permet de confirmer que le répertoire « /user/hdoop/examples » est dorénavant vide.
Supprimer un répertoire
La commande rmdir permet de supprimer un répertoire HDFS vide. Pour supprimer un répertoire non vide de manière récursive, il faut utiliser la commande rm -r.
hdfs dfs -rmdir <empty HDFS dir path>
hdfs dfs -rm -r <non empty HDFS dir path>
Exemple: Supprimer le répertoire vide « /user/hdoop/examples » avec la commande rmdir. Ensuite supprimer le répertoire non vide « /user/hdoop/ml-100k » avec la commande rm -r.
Liste complète des commandes HDFS
Pour une liste exhaustive des commandes disponibles sur HDFS, tapez la commande « hdfs dfs -help » pour les afficher dans le terminal. Pour chaque commande, les options disponibles sont indiquées.
Pour afficher la documentation spécifique d’une commande, il suffit d’ajouter le nom de commande. Par exemple, la documentation de la commande stat s’obtient de la façon suivante:
Interface Utilisateur
Apache Hadoop est fourni avec une interface utilisateur qui permet de visualiser le contenu de votre serveur Hadoop HDFS à la manière d’un explorateur de fichiers. Ouvrez votre navigateur web pour aller sur l’adresse http://localhost:9870. Cliquez sur le Menu « Utilities » puis sur l’onglet « Browse the file system« . Vous arrivez alors sur cette page:
Vous pouvez alors naviguer dans les répertoires de système de fichiers. Sur l’image ci-dessus, vous retrouvez le répertoire « user/« .
En cliquant sur un fichier, un menu propose de télécharger ou bien de visualiser les premières ou dernières lignes du fichier dans l’interface.
Conclusion
Félicitations, vous avez réalisé vos premières manipulations sur HDFS en ligne de commandes.
L’objectif de ce tutoriel est de vous permettre de réaliser l’installation complète de Apache Hadoop sous Ubuntu.
Dans le cas présent, les versions utilisées sont les suivantes: Hadoop en version 3.3.3 et Ubuntu 22.01.
Ce tutoriel se veut être pédagogique. C’est pour cela que nous allons détailler chacune des étapes de l’installation.
Une fois arrivé à la fin de ce tutoriel, vous disposerez d’un environnement complet pour commencer à tester vos développements Hadoop.
Cet article fait partie d’un ensemble d’articles sur l’écosystème Hadoop.
Etapes de l’installation
Voici les étapes nécessaires pour réaliser notre installation de Apache Hadoop:
Vérifier les prérequis
Créer un groupe d’utilisateur Hadoop
Configurer SSH
Télécharger Hadoop
Ajouter les variables d’environnement pour Hadoop
Configurer les composants Hadoop
Initialiser le système de fichier HDFS
Démarrer le serveur Hadoop
Tester l’installation
Arrêter le serveur Hadoop
Vérifier les prérequis
Hadoop a deux prérequis: Java et SSH.
Si vous disposez déjà de Java 8 et de SSH sur votre machine, vous pouvez ignorez les deux paragraphes suivants.
Avant de commencer les installations sur Ubuntu, mettez à jour le cache des paquets de vos dépôts avec la commande:
sudo apt-get update
JAVA
Hadoop est développé en Java d’où le besoin qu’une version compatible soit installée sur votre machine. Pour connaître la version de Java compatible avec la version d’Hadoop, il est conseillé de consulter la page wiki d’Hadoop. Dans ce tutoriel, nous allons installer Hadoop en version 3.3.3 supporté par Java 8. Pour commencer, ouvrez un terminal et entrez les commandes suivantes:
sudo apt install openjdk8-jdk
Une fois l’installation de Java terminée, utilisez la commande « java -version » pour vérifier que Java est installé en version 8. Cette commande doit vous retourner un message dans votre terminal du type:
SSH
Pour utiliser les scripts de lancement et d’arrêt des démons d’Hadoop, vous devez installer SSH. Pour cela, tapez la commande suivante dans un terminal:
sudo apt install ssh
Créer un groupe d’utilisateur Hadoop
Bien que cette étape soit facultative, elle permet de séparer les installations de logiciels pour assurer la sécurité et gérer les permissions. Ainsi, il est conseillé de créer un groupe hadoop et un utilisateur spécifique hdoop avec un accès administrateur. Cela est réalisé avec les trois commandes suivantes:
Une fois l’utilisateur hdoop créé, connectez vous avec cet utilisateur de la façon suivante:
su - hdoop
Configurer SSH
Hadoop a besoin d’un accès SSH à tous les nœuds. Même en mode pseudo distribué sur un seul nœud, on doit donner accès au localhost à l’utilisateur hdoop. Pour cela, nous allons commencer par générer une clé SSH pour l’utilisateur hdoop avec la commande suivante:
ssh-keygen -t rsa -P ''
Puis nous devons autoriser l’accès SSH au localhost pour cette nouvelle clé RSA:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Enfin, vous pouvez vérifier que la connexion SSH au localhost pour l’utilisateur hdoop fonctionne correctement avec la commande « ssh localhhost » qui devra vous retourner un message du type:
Télécharger Hadoop
Il est conseillé d’utiliser le site officiel d’Apache Hadoop pour télécharger une version stable de Hadoop. Dans ce tutoriel, nous allons utiliser le binaire de Hadoop en version 3.3.3.
Utilisez le miroir suggéré pour lancer le téléchargement via la commande wget.
Ensuite vous pourrez extraire les fichiers du fichier compressé .tar.gz en utilisant la commande tar. Enfin assurez vous que le répertoire « hadoop-3.3.2 » est positionné dans /usr/local. Les commandes suivantes vous permettent de réaliser ces opérations:
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.3/hadoop-3.3.3.tar.gz
tar -xvf hadoop-3.3.2.tar.gz
mv hadoop-3.3.2 /usr/local/
Ajouter les variables d’environnement pour Hadoop
Des variables d’environnements ont besoin d’être ajouté au fichier .bashrc pour définir les répertoires d’Hadoop. Ouvrez le fichier .bashrc dans un éditeur de texte et ajoutez les lignes suivantes:
Tapez la commande la commande « source .basrc » dans un terminal pour recharger ces nouvelles variables d’environnement. Enfin vérifiez que la variable $HADOOP_HOME renvoie le chemin du répertoire où Hadoop a été positionné avec la commande « echo »:
Modifier les variables d’environnement d’Hadoop
Nous allons modifier la variable JAVA_HOME pour indiquer à Hadoop quelle version de java installée est à utiliser. En l’occurence ici, il s’agit de Java 8 conformément au prérequis. Ouvrez le fichier $HADOOP_HOME/etc//hadoop/hadoop-env.sh pour modifier la variable JAVA_HOME comme ceci:
# The java implementation to use. By default, this environment
# variable is REQUIRED on ALL platforms except OS X!
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
A présent en tapant dans un terminal la commande « hadoop version« , vous devez avoir un message du type:
Configurer les composants de Hadoop
La configuration de chacun des composants de Hadoop est définie à partir de fichiers XML. Les propriétés communes de votre installation Hadoop sont faites dans le fichier core-site.xml. Et les différents composants HDFS, MapReduce et YARN sont paramétrés respectivement dans les fichiers hdfs-site.xml, mapred-site.xml et yarn-site.xml. L’ensemble de ces fichiers se trouvent dans le répertoire de votre installation $HADOOP_HOME/etc/hadoop. Pour chacun de ces fichiers, nous allons voir les paramètres qu’il est nécessaire de renseigner.
Hadoop Core
Ouvrez le fichier core-site.xml pour modifier les deux variables:
hadoop.tmp.dir: répertoire contenant tout les fichiers de travail de Hadoop,
Avant de lancer votre serveur Hadoop, vous devez formater le système de fichier HDFS. Toujours en utilisant l’utilisateur hdoop, exécutez dans un terminal la commande suivante:
hdfs namenode -format
Démarrer le serveur Hadoop
A présent, vous allez pouvoir démarrer votre serveur Hadoop en deux étapes.
Pour démarrer le namenode et le datanode, vous devez lancer le démon HDFS avec la commande:
start-dfs.sh
Pour démarrer YARN et le NodeManagers, vous devez lancer le démon YARN avec la commande:
start-yarn.sh
Afin de vous assurer que tous les démons sont actifs et s’exécutent en tant que processus Java, exécutez la commande « jps » dans un terminal. Cette commande doit vous retourner des messages similaires à:
Tester l’installation
Une fois l’ensemble des démons démarrés, il est également possible de vérifier leur bon fonctionnement via trois interfaces utilisateurs incluses dans l’installation d’Hadoop:
Hadoop NameNode: http://localhost:9870
Individual DataNodes: http://localhost:9864
YARN ResourceManager: http://localhost:8088
Arrêter le serveur Hadoop
L’arrêt du serveur Hadoop se fait par des commandes spécifiques comme pour le démarrage du serveur.
Arrêtez les démons HDFS avec la commande suivante:
stop-dfs.sh
Arrêtez les démons YARN avec la commande suivante:
stop-yarn.sh
Conclusion
Félicitations, vous avez maintenant une installation complète et opérationnelle de Apache Hadoop. Vous pouvez commencer à tester vos développements dans l’écosystème Hadoop.
Pour aller plus loin, vous pouvez consulter nos articles:
Dans cet article, nous allons réaliser ensemble l’installation de PostgreSQL sur Windows. Cette base de données vous permettra de stocker vos données et de les interroger vie le langage SQL. Nous vous proposons également d’installer PgAdmin: l’interface utilisateur qui vous servira à vous connecter à votre base PostgreSQL.
Télécharger PostgreSQL
Commencez par vous rendre sur le site de PostgreSQL:
Cliquez sur le menu « Download » et choisir le système d’exploitation Windows:
Cliquez sur le lien des installateurs:
Choisissez la version de PostgreSQL que vous souhaitez installer puis lancez le téléchargement du fichier exécutable d’installation. Dans le cas présent, nous allons télécharger la version 14.4 de PostgreSQL pour le système d’exploitation Windows en 64 bits.
Installation de PostgreSQL et pgAdmin
Une fois le téléchargement de l’exécutable d’installation terminé, double cliquez sur ce fichier pour lancer l’installation. Puis dans la fenêtre d’installation, sélectionnez « suivant » puis acceptez l’ensemble des suggestions proposées par défaut pour l’installation:
Un mot de passe « super utilisateur » vous sera demandé, renseignez en un et retenez le. Ce mot de passe vous sera utile notamment pour l’administration de votre base de données PostgreSQL.
Un numéro de port sur lequel le serveur PostgreSQL est proposé par défaut. Retenez le !
Ensuite, laissez l’installation se dérouler. Cela peut prendre quelques minutes. Une fois l’installation terminée avec succès, il est conseillé de redémarrer Windows.
Lancement de PgAdmin
Une fois l’installation terminée, lancez PgAdmin à partir du menu Windows. Le mot de passe renseigné dans l’étape de l’installation vous est demandé. Une fois dans l’interface PgAdmin, cliquez sur le serveur que vous venez d’installer, ici PostgreSQL 14.
Test: Chargement d’une base de données et première requête
Nous pouvons, dès à présent, tester le bon fonctionnement de notre base PostgreSQL. Pour cela, nous allons utiliser un jeu de données mise à disposition dans la documentation de PostgreSQL. Commencez par télécharger l’archive et la décompresser.
Dans PgAdmin, cliquez droit sur « Databases » puis sur le menu « Create > Database«
Puis dans la fenêtre « Create – Database« , entrez le nom de base « dvdrental » et cliquer sur le bouton ‘Save’:
Vous allez pouvoir charger les données du fichier dvdrental.tar que vous avez préalablement téléchargé. Cliquez droit sur la base ‘dvdrental‘ et le menu « restore« :
Dans la fenêtre « Restore », indiquez le chemin où se trouve le fichier « dvdrental.tar » et cliquez sur le bouton « Restore ».
Vous allez pouvoir requêter sur les données de la base « dvdrental » en utilisant l’outil de requêtage de PgAdmin. Cliquez droit sur la base « dvdrental » puis sur le menu « Query Tool« :
Dans la fenêtre de requête, vous pouvez désormais écrire vos requêtes SQL et les exécuter en cliquant sur le bouton ‘Execute/Refersh » ou F5:
Dans cette exemple, une simple reqête SQL ‘SELECT * FROM film ;’ permet de retourner l’ensemble des lignes et colonnes de la « film » de la base « dvdrental ».
Conclusion
Vous disposez à présent de PostgreSQL sur votre machine Windows ainsi que l’interface utilisateur PgAdmin. Vous pouvez dès maintenant charger vos données et commencez à les interroger par requête SQL.
Référence
Les références ayant servi à la rédaction de cet article: